diff --git a/.env b/.env index 26d65cd..f647e20 100644 --- a/.env +++ b/.env @@ -2,4 +2,5 @@ VUE_APP_I18N_LOCALE=zh-CN VUE_APP_I18N_FALLBACK_LOCALE=en-US VUE_APP_ROUTER_BASE_PATH=/ VUE_APP_PUBLIC_BASE_PATH=/ -VUE_APP_API_URL= +VUE_APP_API_URL=https://10.29.26.43:6443 +VUE_APP_AUTH=eyJhbGciOiJSUzI1NiIsImtpZCI6InBhOS1DUFJVTG9KTHItUTVPODhWTHBkc2lndFpsSUUyNkF2dUliRWxUNDAifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzI5MzA0NTIyLCJpYXQiOjE2OTc3Njg1MjIsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJkYXRhdHVuZXJ4Iiwic2VydmljZWFjY291bnQiOnsibmFtZSI6Im5zYWRtaW4iLCJ1aWQiOiI2N2FmMDNjZS1iYWJiLTRiNGUtYTNlNy01NzgxMmE5Y2Y5OGEifX0sIm5iZiI6MTY5Nzc2ODUyMiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OmRhdGF0dW5lcng6bnNhZG1pbiJ9.Q0j1YgBmFOztDPu2usYh9Sqqr8hGmwHC0yqkA4haoWblkwzb1KHZ7hbetWYmuWbyRdOKSsY7hHuMBLlhFgttF4C7OspovaI3UKGLWqnvENF9oK1_k9tm9cKt3LNnvCrSTXBxPWdyRvCMp71QtEvOt0J86iugG_JnUlW7FZswI2YUMohAAOfzxEXUztZj9doS_UTgilluhOfMaP-qe9H8okDWH5T57wDcFJir2O6bLVDkdWeDkIlINEGtJZRGOjFUPzIoXn1nnY3l32TE8kRYyci6od8RG6Z6Kz30QuwoYx04lW9Vu5ac9wznqxfN6r2jbViL_n30HUp3iHENk65bPA \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index 6dd2b76..bd33c63 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,7 +1,10 @@ -const path = require('path'); +const path = require("path"); const vuejsAccessibilityOff = Object.keys( - require(path.resolve(path.dirname(require.resolve('eslint-plugin-vuejs-accessibility')), '../dist/index')).rules, + require(path.resolve( + path.dirname(require.resolve("eslint-plugin-vuejs-accessibility")), + "../dist/index" + )).rules ).reduce((rules, rule) => { rules[`vuejs-accessibility/${rule}`] = 0; @@ -16,70 +19,69 @@ module.exports = { jest: true, browser: true, }, - parser: 'vue-eslint-parser', + parser: "vue-eslint-parser", parserOptions: { ecmaVersion: 2020, - parser: '@typescript-eslint/parser', - sourceType: 'module', - extraFileExtensions: ['.vue'], + parser: "@typescript-eslint/parser", + sourceType: "module", + extraFileExtensions: [".vue"], }, - plugins: ['vue', '@typescript-eslint'], + plugins: ["vue", "@typescript-eslint"], extends: [ - 'plugin:jsonc/recommended-with-json', - 'plugin:vue/vue3-recommended', - '@vue/airbnb', - '@vue/typescript/recommended', + "plugin:jsonc/recommended-with-json", + "plugin:vue/vue3-recommended", + "@vue/airbnb", + "@vue/typescript/recommended", ], rules: { - "jsonc/indent": ["error", 2], - '@typescript-eslint/padding-line-between-statements': [ - 'error', + "@typescript-eslint/padding-line-between-statements": [ + "error", { - blankLine: 'always', - prev: ['interface', 'type'], - next: '*', + blankLine: "always", + prev: ["interface", "type"], + next: "*", }, ], - 'padding-line-between-statements': [ - 'error', + "padding-line-between-statements": [ + "error", { - blankLine: 'always', - prev: ['const', 'let', 'var'], - next: '*', + blankLine: "always", + prev: ["const", "let", "var"], + next: "*", }, { - blankLine: 'any', - prev: ['const', 'let', 'var'], - next: ['const', 'let', 'var'], + blankLine: "any", + prev: ["const", "let", "var"], + next: ["const", "let", "var"], }, { - blankLine: 'always', - prev: '*', - next: 'return', + blankLine: "always", + prev: "*", + next: "return", }, { - blankLine: 'always', - prev: '*', - next: 'function', + blankLine: "always", + prev: "*", + next: "function", }, ], - 'brace-style': ['error', '1tbs', { allowSingleLine: false }], - 'eol-last': ['error', 'always'], - 'comma-spacing': [ - 'error', + "brace-style": ["error", "1tbs", { allowSingleLine: false }], + "eol-last": ["error", "always"], + "comma-spacing": [ + "error", { before: false, after: true, }, ], - quotes: ['error', 'single'], - 'jsx-quotes': ['error', 'prefer-double'], - 'vue/html-quotes': ['error', 'double', { avoidEscape: true }], - 'max-statements-per-line': ['error', { max: 1 }], - 'vue/multiline-html-element-content-newline': ['error'], // 多行html中的内容是否独占一行 - 'vue/singleline-html-element-content-newline': ['error'], - 'vue/max-attributes-per-line': [ - 'error', + quotes: ["error", "single"], + "jsx-quotes": ["error", "prefer-double"], + "vue/html-quotes": ["error", "double", { avoidEscape: true }], + "max-statements-per-line": ["error", { max: 1 }], + "vue/multiline-html-element-content-newline": ["error"], // 多行html中的内容是否独占一行 + "vue/singleline-html-element-content-newline": ["error"], + "vue/max-attributes-per-line": [ + "error", { singleline: { max: 1, @@ -89,43 +91,45 @@ module.exports = { }, }, ], - 'array-element-newline': ['error', 'consistent'], - 'array-bracket-newline': ['error', 'consistent'], // []新一行 - 'vue/array-bracket-newline': ['error', 'consistent'], - 'comma-dangle': ['error', 'always-multiline'], // 最后一个对象元素加逗号 - 'object-property-newline': ['error', { allowAllPropertiesOnSameLine: false }], - 'vue/object-property-newline': ['error', { allowAllPropertiesOnSameLine: false }], - 'vue/space-infix-ops': ['error', { int32Hint: true }], - // 'vue/space-infix-ops': 0, - // "template-curly-spacing": ["error", "never"], - 'vue/object-curly-spacing': ['error', 'always'], // 对象内的间距要求 - 'vue/comma-spacing': ['error'], // 对象内的逗号位置 - 'vue/key-spacing': ['error'], // 冒号位置 + "array-element-newline": ["error", "consistent"], + "array-bracket-newline": ["error", "consistent"], // []新一行 + "vue/array-bracket-newline": ["error", "consistent"], + "comma-dangle": ["error", "always-multiline"], // 最后一个对象元素加逗号 + "object-property-newline": ["error", { allowAllPropertiesOnSameLine: false }], + "vue/object-property-newline": ["error", { allowAllPropertiesOnSameLine: false }], + "vue/space-infix-ops": ["error", { int32Hint: true }], + "vue/multi-word-component-names": 0, - 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'import/prefer-default-export': 0, - 'import/no-extraneous-dependencies': 0, - 'import/no-unresolved': 0, - 'import/extensions': [ - 'error', - 'ignorePackages', + "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", + "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", + "import/prefer-default-export": 0, + "import/no-extraneous-dependencies": 0, + "import/no-unresolved": 0, + "import/extensions": [ + "error", + "ignorePackages", { - js: 'never', - mjs: 'never', - jsx: 'never', - ts: 'never', - tsx: 'never', + js: "never", + mjs: "never", + jsx: "never", + ts: "never", + tsx: "never", }, ], - 'no-shadow': 'off', - '@typescript-eslint/no-shadow': 'error', - curly: 'error', // 强制if括号包裹,无效 + "no-shadow": "off", + "@typescript-eslint/no-shadow": "error", + curly: "error", // 强制if括号包裹,无效 + "max-len": ["error", { code: 150, ignoreStrings: true }], + "jsonc/indent": ["error", + 2, + {} + ], + // "jsonc/auto": true, ...vuejsAccessibilityOff, }, overrides: [ { - files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'], + files: ["**/__tests__/*.{j,t}s?(x)", "**/tests/unit/**/*.spec.{j,t}s?(x)"], env: { jest: true, }, @@ -133,6 +137,11 @@ module.exports = { { files: ["*.json", "*.json5", "*.jsonc"], parser: "jsonc-eslint-parser", - } + }, ], + globals: { + defineProps: true, + defineEmits: true, + defineExpose: true, + }, }; diff --git a/Dockerfile b/Dockerfile index 9ce0f7a..d143dc2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,7 @@ RUN apk -U upgrade COPY dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/nginx.conf +COPY startup.sh /usr/share RUN chown -R nginx:nginx /var/cache/nginx && \ chown -R nginx:nginx /var/log/nginx && \ @@ -13,6 +14,10 @@ RUN chown -R nginx:nginx /var/cache/nginx && \ RUN touch /var/run/nginx.pid && \ chown -R nginx:nginx /var/run/nginx.pid +RUN chmod a+x /usr/share/startup.sh && chown nginx /etc/nginx + +EXPOSE 8443 + USER nginx -EXPOSE 8080 +CMD /usr/share/startup.sh && nginx -g 'daemon off;' diff --git a/Makefile b/Makefile index 5bc90c1..3b2a8eb 100644 --- a/Makefile +++ b/Makefile @@ -111,3 +111,8 @@ minor-release: .PHONY: patch-release patch-release: npx esno ./scripts/patch-release.ts + +.PHONY: build +build: + yarn build + docker buildx build --builder=builder --platform linux/amd64,linux/arm64 -t release.daocloud.io/max/datatunerx-ui:v0.0.4 -f Dockerfile . --push \ No newline at end of file diff --git a/deploy/application.yaml b/deploy/application.yaml new file mode 100644 index 0000000..862f3ee --- /dev/null +++ b/deploy/application.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: ns-admin + namespace: datatunerx +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: datatunerx-admin +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: ns-admin + namespace: datatunerx +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: datatunerx-ui + namespace: datatunerx + labels: + app: datatunerx-ui +spec: + replicas: 1 + selector: + matchLabels: + app: datatunerx-ui + template: + metadata: + name: datatunerx-ui + labels: + app: datatunerx-ui + spec: + containers: + - name: datatunerx-ui + image: release.daocloud.io/max/datatunerx-ui:v0.0.4 + env: + - name: 'API_URL' + value: "https://10.29.26.43:6443" + imagePullPolicy: Always + ports: + - containerPort: 8443 + resources: + limits: + cpu: 500m + memory: 0.5Gi + requests: + cpu: 500m + memory: 0.5Gi + serviceAccountName: ns-admin +--- +apiVersion: v1 +kind: Service +metadata: + name: datatunerx-ui + namespace: datatunerx +spec: + type: NodePort + ports: + - port: 8443 + protocol: TCP + targetPort: 8443 + selector: + app: datatunerx-ui diff --git a/nginx.conf b/nginx.conf index 00231b5..a0a85c1 100644 --- a/nginx.conf +++ b/nginx.conf @@ -32,7 +32,7 @@ http { gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript; server { - listen 8080; + listen 8443; server_name localhost; location / { @@ -56,12 +56,23 @@ http { root /usr/share/nginx/html; } - location = /basic_status { - stub_status; + location /api/ { + add_header 'Access-Control-Allow-Headers' 'Authorization,X-SAIC-TOKEN,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always; + add_header 'Access-Control-Max-Age' 86400 always; + add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, PATCH, DELETE' always; + add_header 'Access-Control-Allow-Credentials' "true" always; + + proxy_ssl_trusted_certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt; + proxy_ssl_certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt; + proxy_ssl_verify on; + proxy_ssl_verify_depth 2; + proxy_pass KUBERNETES_API_SERVER; + proxy_set_header Authorization "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InZ1b1pUaUxtZ2xEd0RlaTE3TFppRDNHSzBROUhMYno3blNvS2NUTlkzNDAifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjo1Mjk4ODI4NzYyLCJpYXQiOjE2OTg4MzIzNjIsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJkYXRhdHVuZXJ4LWRldiIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJuc2FkbWluIiwidWlkIjoiOTNlNWI3YTQtZjdkMy00YTY1LTkxMjAtYWYzYjc1ZGMzYzczIn19LCJuYmYiOjE2OTg4MzIzNjIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkYXRhdHVuZXJ4LWRldjpuc2FkbWluIn0.j4klPVqXkAHHbwtMR-Ng6fAOA2PUMFofu7u7ttYPBHeODEm6y7ZXOHGvcaqG7aClR9Td94HO4PmiW_IFJhPv7nzHSD2nYy3He6r_VD4fZFpvN9S9RRv2d_xKQ2sp_N0b88HWEuWk1snDbsWUTgMdUKNjIW-OGFLxSMHsHXQ8__pr02pEkBCfJLoGO9zyuBSltiPhwJUW7SOpThZO80slPsO1AwoOS3yB3BjQzz7aNIh76k9Im7p8mmeq1KTQohEpQfltN5vBwLOQ0kzY0QJ5uMPr_AMYsRCxH7KXBBssZ0kpwFCCk7uL3VHGQerw4RKsic92ySNMuNFLx6dIzFwIqg"; } - location = /metrics { - proxy_pass http://127.0.0.1:9113; + location /apis { + proxy_pass KUBERNETES_API_SERVER; + proxy_set_header Authorization "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6InZ1b1pUaUxtZ2xEd0RlaTE3TFppRDNHSzBROUhMYno3blNvS2NUTlkzNDAifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjo1Mjk4ODI4NzYyLCJpYXQiOjE2OTg4MzIzNjIsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJkYXRhdHVuZXJ4LWRldiIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJuc2FkbWluIiwidWlkIjoiOTNlNWI3YTQtZjdkMy00YTY1LTkxMjAtYWYzYjc1ZGMzYzczIn19LCJuYmYiOjE2OTg4MzIzNjIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkYXRhdHVuZXJ4LWRldjpuc2FkbWluIn0.j4klPVqXkAHHbwtMR-Ng6fAOA2PUMFofu7u7ttYPBHeODEm6y7ZXOHGvcaqG7aClR9Td94HO4PmiW_IFJhPv7nzHSD2nYy3He6r_VD4fZFpvN9S9RRv2d_xKQ2sp_N0b88HWEuWk1snDbsWUTgMdUKNjIW-OGFLxSMHsHXQ8__pr02pEkBCfJLoGO9zyuBSltiPhwJUW7SOpThZO80slPsO1AwoOS3yB3BjQzz7aNIh76k9Im7p8mmeq1KTQohEpQfltN5vBwLOQ0kzY0QJ5uMPr_AMYsRCxH7KXBBssZ0kpwFCCk7uL3VHGQerw4RKsic92ySNMuNFLx6dIzFwIqg"; } location = /ping { diff --git a/package-lock.json b/package-lock.json index 16eeae7..6c29872 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,16 +11,19 @@ "dependencies": { "@dao-style/core": "1.6.0", "@dao-style/extend": "1.6.1", + "@vee-validate/yup": "^4.11.8", + "axios": "^1.5.1", "clipboard-copy": "^4.0.1", "core-js": "^3.8.3", "dayjs": "1.11.10", + "kubernetes-types": "^1.26.0", "normalize.css": "^8.0.1", "pinia": "^2.0.9", - "vee-validate": "4.11.8", + "vee-validate": "^4.11.8", "vue": "^3.2.13", "vue-i18n": "9.5.0", "vue-router": "^4.0.3", - "yup": "^0.32.11" + "yup": "^1.3.2" }, "devDependencies": { "@commitlint/cli": "^16.0.2", @@ -51,7 +54,7 @@ "babel-jest": "^27.0.6", "commitizen": "^4.2.4", "eslint": "^8.7.0", - "eslint-plugin-import": "^2.25.3", + "eslint-plugin-import": "^2.25.4", "eslint-plugin-jsonc": "^2.7.0", "eslint-plugin-vue": "^8.4.0", "eslint-plugin-vuejs-accessibility": "^1.1.1", @@ -68,8 +71,10 @@ "stylelint-config-recess-order": "^4.0.0", "stylelint-config-recommended-vue": "^1.4.0", "stylelint-config-sass-guidelines": "^10.0.0", + "tailwindcss": "^3.0.24", "ts-jest": "^27.0.4", "typescript": "^4.9.5", + "utility-types": "^3.10.0", "vue-tsc": "^1.2.0", "yorkie": "^2.0.0" } @@ -99,6 +104,15 @@ "node": "8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -2141,6 +2155,7 @@ "version": "7.23.2", "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz", "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2851,7 +2866,6 @@ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, - "license": "MIT", "dependencies": { "sourcemap-codec": "^1.4.8" } @@ -3869,7 +3883,6 @@ "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", "dev": true, - "license": "MIT", "dependencies": { "estree-walker": "^2.0.1", "picomatch": "^2.2.2" @@ -4264,12 +4277,6 @@ "@types/node": "*" } }, - "node_modules/@types/lodash": { - "version": "4.14.199", - "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==", - "license": "MIT" - }, "node_modules/@types/mime": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-3.0.2.tgz", @@ -4674,6 +4681,24 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@vee-validate/yup": { + "version": "4.11.8", + "resolved": "https://registry.npmmirror.com/@vee-validate/yup/-/yup-4.11.8.tgz", + "integrity": "sha512-TUmL8UeUu5Iirth8XRg33VYyMYumt15ZMF4Ni5tjMHVluVcysSGdHIMxTJSwTN8BkMGs2/JR/28IM8eJGHnBQw==", + "dependencies": { + "type-fest": "^4.3.1", + "vee-validate": "4.11.8", + "yup": "^1.2.0" + } + }, + "node_modules/@vee-validate/yup/node_modules/type-fest": { + "version": "4.6.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-4.6.0.tgz", + "integrity": "sha512-rLjWJzQFOq4xw7MgJrCZ6T1jIOvvYElXT12r+y0CC6u67hegDHaxcPqb2fZHOGlqxugGQPNB1EnTezjBetkwkw==", + "engines": { + "node": ">=16" + } + }, "node_modules/@volar/language-core": { "version": "1.10.4", "resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.10.4.tgz", @@ -6485,7 +6510,6 @@ "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, "license": "MIT" }, "node_modules/at-least-node": { @@ -6549,6 +6573,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/axios": { + "version": "1.5.1", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.5.1.tgz", + "integrity": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/babel-jest": { "version": "27.5.1", "resolved": "https://registry.npmmirror.com/babel-jest/-/babel-jest-27.5.1.tgz", @@ -7073,6 +7120,15 @@ "node": ">=6" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz", @@ -7535,7 +7591,6 @@ "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" @@ -8990,7 +9045,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.4.0" @@ -9070,6 +9124,12 @@ "dev": true, "license": "MIT" }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz", @@ -9103,6 +9163,12 @@ "node": ">=8" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz", @@ -9544,8 +9610,7 @@ "version": "0.10.5", "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.10.5.tgz", "integrity": "sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/es-set-tostringtag": { "version": "2.0.1", @@ -10875,7 +10940,6 @@ "version": "1.15.3", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz", "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "dev": true, "funding": [ { "type": "individual", @@ -13851,6 +13915,15 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jiti": { + "version": "1.20.0", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.20.0.tgz", + "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/joi": { "version": "17.11.0", "resolved": "https://registry.npmmirror.com/joi/-/joi-17.11.0.tgz", @@ -14162,6 +14235,11 @@ "dev": true, "license": "MIT" }, + "node_modules/kubernetes-types": { + "version": "1.26.0", + "resolved": "https://registry.npmmirror.com/kubernetes-types/-/kubernetes-types-1.26.0.tgz", + "integrity": "sha512-jv0XaTIGW/p18jaiKRD85hLTYWx0yEj+cb6PDX3GdNa3dWoRxnD4Gv7+bE6C/ehcsp2skcdy34vT25jbPofDIQ==" + }, "node_modules/launch-editor": { "version": "2.6.1", "resolved": "https://registry.npmmirror.com/launch-editor/-/launch-editor-2.6.1.tgz", @@ -14390,6 +14468,7 @@ "version": "4.17.21", "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "license": "MIT" }, "node_modules/lodash-es": { @@ -14935,7 +15014,6 @@ "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -14945,7 +15023,6 @@ "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -15140,12 +15217,6 @@ "thenify-all": "^1.0.0" } }, - "node_modules/nanoclone": { - "version": "0.2.1", - "resolved": "https://registry.npmmirror.com/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==", - "license": "MIT" - }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", @@ -15402,6 +15473,15 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.13.0", "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.0.tgz", @@ -15896,6 +15976,15 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pinia": { "version": "2.1.7", "resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.7.tgz", @@ -16139,6 +16228,72 @@ "node": "^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.3.3.tgz", + "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/postcss-loader": { "version": "6.2.1", "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-6.2.1.tgz", @@ -16336,6 +16491,21 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, "node_modules/postcss-normalize-charset": { "version": "5.1.0", "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", @@ -16869,6 +17039,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz", @@ -17012,6 +17187,15 @@ "dev": true, "license": "MIT" }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz", @@ -17175,6 +17359,7 @@ "version": "0.14.0", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true, "license": "MIT" }, "node_modules/regenerator-transform": { @@ -18141,8 +18326,8 @@ "version": "1.4.8", "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true, - "license": "MIT" + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true }, "node_modules/spdx-correct": { "version": "3.2.0", @@ -18984,6 +19169,54 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz", @@ -19100,6 +19333,61 @@ "dev": true, "license": "MIT" }, + "node_modules/tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz", @@ -19350,6 +19638,11 @@ "dev": true, "license": "MIT" }, + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz", @@ -19468,6 +19761,12 @@ "node": ">=8" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, "node_modules/ts-jest": { "version": "27.1.5", "resolved": "https://registry.npmmirror.com/ts-jest/-/ts-jest-27.1.5.tgz", @@ -19936,7 +20235,6 @@ "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-0.3.3.tgz", "integrity": "sha512-WjZWpUqqcYPQ/efR00Zm2m1+J1LitwoZ4uhHV4VdZ+IpW0Nh/qnDYtVf+nLhozXdGxslMPecOshVR7NiWFl4gA==", "dev": true, - "license": "MIT", "dependencies": { "webpack-virtual-modules": "^0.4.3" }, @@ -20027,6 +20325,15 @@ "dev": true, "license": "MIT" }, + "node_modules/utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmmirror.com/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz", @@ -20104,7 +20411,6 @@ "version": "4.11.8", "resolved": "https://registry.npmmirror.com/vee-validate/-/vee-validate-4.11.8.tgz", "integrity": "sha512-ZuVpw0axWYBM3aVTD/bm94hcWHumqeUgNjptOqfBT0gyqyHaGYCrm0tSD/0bygEbWUDwEPJOQaEKaUGM82j8TQ==", - "license": "MIT", "dependencies": { "@vue/devtools-api": "^6.5.0", "type-fest": "^4.3.1" @@ -21248,21 +21554,22 @@ "license": "ISC" }, "node_modules/yup": { - "version": "0.32.11", - "resolved": "https://registry.npmmirror.com/yup/-/yup-0.32.11.tgz", - "integrity": "sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg==", - "license": "MIT", + "version": "1.3.2", + "resolved": "https://registry.npmmirror.com/yup/-/yup-1.3.2.tgz", + "integrity": "sha512-6KCM971iQtJ+/KUaHdrhVr2LDkfhBtFPRnsG1P8F4q3uUVQ2RfEM9xekpha9aA4GXWJevjM10eDcPQ1FfWlmaQ==", "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/lodash": "^4.14.175", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - }, + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "node_modules/yup/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "engines": { - "node": ">=10" + "node": ">=12.20" } } } diff --git a/package.json b/package.json index 6a5e3a5..5aea574 100644 --- a/package.json +++ b/package.json @@ -17,18 +17,21 @@ "test:unit:ci": "vue-cli-service test:unit --ci --coverage --reporters=default --reporters=jest-junit" }, "dependencies": { - "@dao-style/core": "1.6.0", - "@dao-style/extend": "1.6.1", + "@dao-style/core": "1.7.0", + "@dao-style/extend": "1.7.0", + "axios": "^1.5.1", "clipboard-copy": "^4.0.1", "core-js": "^3.8.3", "dayjs": "1.11.10", + "kubernetes-types": "^1.26.0", + "lodash": "^4.17.21", "normalize.css": "^8.0.1", - "pinia": "^2.0.9", - "vee-validate": "4.11.8", - "vue": "^3.2.13", - "vue-i18n": "9.5.0", - "vue-router": "^4.0.3", - "yup": "^0.32.11" + "pinia": "^2.1.7", + "vee-validate": "^4.11.8", + "vue": "^3.3.7", + "vue-i18n": "9.6.1", + "vue-router": "^4.2.5", + "yup": "^1.3.2" }, "devDependencies": { "@commitlint/cli": "^16.0.2", @@ -44,6 +47,7 @@ "@dao-style/vue-cli-plugin-router": "latest", "@intlify/vue-i18n-loader": "^3.0.0", "@types/fs-extra": "^11.0.2", + "@types/lodash": "^4.14.200", "@types/jest": "^27.0.1", "@typescript-eslint/eslint-plugin": "^5.55.0", "@typescript-eslint/parser": "^5.55.0", @@ -59,7 +63,7 @@ "babel-jest": "^27.0.6", "commitizen": "^4.2.4", "eslint": "^8.7.0", - "eslint-plugin-import": "^2.25.3", + "eslint-plugin-import": "^2.25.4", "eslint-plugin-jsonc": "^2.7.0", "eslint-plugin-vue": "^8.4.0", "eslint-plugin-vuejs-accessibility": "^1.1.1", @@ -76,8 +80,10 @@ "stylelint-config-recess-order": "^4.0.0", "stylelint-config-recommended-vue": "^1.4.0", "stylelint-config-sass-guidelines": "^10.0.0", + "tailwindcss": "^3.0.24", "ts-jest": "^27.0.4", "typescript": "^4.9.5", + "utility-types": "^3.10.0", "vue-tsc": "^1.2.0", "yorkie": "^2.0.0" }, diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..12a703d --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/src/App.vue b/src/App.vue index 7ed29b3..e4ab3de 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,9 +1,9 @@