diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..5821008 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/gringotts-configuration/src/main/java/com/eshore/gringotts/configuration/WebConfiguration.java b/gringotts-configuration/src/main/java/com/eshore/gringotts/configuration/WebConfiguration.java index 0fe315c..f66afa4 100644 --- a/gringotts-configuration/src/main/java/com/eshore/gringotts/configuration/WebConfiguration.java +++ b/gringotts-configuration/src/main/java/com/eshore/gringotts/configuration/WebConfiguration.java @@ -1,8 +1,12 @@ package com.eshore.gringotts.configuration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; /** * web配置 @@ -11,14 +15,25 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; * @date 2024-11-14 */ @Configuration -public class WebConfiguration implements WebMvcConfigurer { - @Override - public void addCorsMappings(CorsRegistry registry) { - // 避免跨域影响调试 - registry.addMapping("/**") - .allowedOriginPatterns("*") - .allowCredentials(true) - .allowedMethods("*") - .maxAge(3600); +public class WebConfiguration { + private static final Logger logger = LoggerFactory.getLogger(WebConfiguration.class); + + @Bean + public CorsFilter corsFilter() { + CorsConfiguration config = new CorsConfiguration(); + config.setAllowCredentials(true); + // 设置访问源地址 + config.addAllowedOriginPattern("*"); + // 设置访问源请求头 + config.addAllowedHeader("*"); + // 设置访问源请求方法 + config.addAllowedMethod("*"); + // 有效期 1800秒 + config.setMaxAge(1800L); + // 添加映射路径,拦截一切请求 + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", config); + // 返回新的CorsFilter + return new CorsFilter(source); } } diff --git a/gringotts-frontend/.gitignore b/gringotts-frontend/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/gringotts-frontend/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/gringotts-web/src/main/resources/static/assets/component/common.js b/gringotts-frontend/components/constants.js similarity index 85% rename from gringotts-web/src/main/resources/static/assets/component/common.js rename to gringotts-frontend/components/constants.js index 28a8a36..81b0163 100644 --- a/gringotts-web/src/main/resources/static/assets/component/common.js +++ b/gringotts-frontend/components/constants.js @@ -1,3 +1,28 @@ +const information = { + debug: false, + // baseUrl: '', + baseUrl: 'http://127.0.0.1:20080', + title: '可信供给中心', +} + +export function useAmis(amisObject) { + document.title = information.title + let amis = amisRequire('amis/embed') + amis.embed( + '#app', + amisObject(information), + { + data: { + base: information.baseUrl, + }, + }, + { + theme: 'antd', + enableAMISDebug: information.debug, + } + ) +} + export function crudCommonOptions() { return { affixHeader: false, diff --git a/gringotts-frontend/components/user/dialog-user-change-password.js b/gringotts-frontend/components/user/dialog-user-change-password.js new file mode 100644 index 0000000..f036c05 --- /dev/null +++ b/gringotts-frontend/components/user/dialog-user-change-password.js @@ -0,0 +1,38 @@ +import {horizontalFormOptions, apiPost} from '../constants.js' +import {confirmPasswordFormItem, passwordFormItem} from "./dialog-user-item.js"; + +export function userChangePasswordDialog() { + return { + actionType: 'dialog', + dialog: { + title: '修改密码', + actions: [ + { + type: 'reset', + label: '清空', + }, + { + type: 'submit', + label: '修改', + level: 'primary', + } + ], + body: { + type: 'form', + api: apiPost('${base}/user_management/change_password'), + ...horizontalFormOptions(), + body: [ + { + type: 'input-password', + name: 'oldPassword', + label: '旧密码', + placeholder: '请输入旧密码', + required: true, + }, + passwordFormItem('newPassword', '新密码'), + confirmPasswordFormItem('confirmNewPassword', 'newPassword', '新密码'), + ] + } + } + } +} \ No newline at end of file diff --git a/gringotts-frontend/components/user/dialog-user-check.js b/gringotts-frontend/components/user/dialog-user-check.js new file mode 100644 index 0000000..d4bd6b3 --- /dev/null +++ b/gringotts-frontend/components/user/dialog-user-check.js @@ -0,0 +1,61 @@ +import {apiGet, horizontalFormOptions, mappingField, userRoleMapping, userStateMapping} from "../constants.js"; + +export function userCheckDialog() { + return { + actionType: 'dialog', + dialog: { + title: '用户注册', + actions: [ + { + type: 'action', + label: '同意', + level: 'primary', + actionType: 'ajax', + api: apiGet('${base}/user_management/enable/${username}'), + confirmTitle: '审核通过', + confirmText: '确认通过账号为${username}通过审核吗?审核通过后将无法撤销。', + reload: '9200849e-a8e9-4752-b4fc-ae52dc46a205', + }, + ], + body: { + type: 'form', + initApi: apiGet('${base}/user_management/detail/${username}'), + ...horizontalFormOptions(), + static: true, + body: [ + { + type: 'input-email', + name: 'username', + label: '邮箱', + }, + { + type: 'control', + name: 'role', + label: '角色', + body: [ + mappingField('role', userRoleMapping), + ] + }, + { + type: 'control', + name: 'state', + label: '账号状态', + body: [ + mappingField('state', userStateMapping) + ] + }, + { + type: 'input-datetime', + name: 'createTime', + label: '创建时间', + }, + { + type: 'input-datetime', + name: 'updateTime', + label: '更新时间', + }, + ] + } + } + } +} \ No newline at end of file diff --git a/gringotts-frontend/components/user/dialog-user-item.js b/gringotts-frontend/components/user/dialog-user-item.js new file mode 100644 index 0000000..b8827e9 --- /dev/null +++ b/gringotts-frontend/components/user/dialog-user-item.js @@ -0,0 +1,49 @@ +export function emailFormItem(name) { + return { + type: 'input-email', + name: name, + label: '邮箱', + placeholder: '请输入邮箱', + required: true, + clearable: true, + clearValueOnEmpty: true, + validateApi: '${base}/user/exists_username/${username}', + } +} + +export function passwordFormItem(name, label = '密码') { + return { + type: 'input-password', + name: name, + label: label, + placeholder: `请输入${label}`, + required: true, + clearable: true, + clearValueOnEmpty: true, + validations: { + matchRegexp: + /^(?=.*\d)(?!.*(\d)\1{2})(?!.*(012|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210))(?=.*[a-zA-Z])(?=.*[^\da-zA-Z\s]).{8,16}$/, + }, + validationErrors: { + matchRegexp: + `${label}至少包含字母、数字、特殊字符,8-16位,并且不能连续出现3个大小连续或相同的数字`, + }, + } +} + +export function confirmPasswordFormItem(name, target, label = '密码') { + return { + type: 'input-password', + name: name, + label: `确认${label}`, + placeholder: `请再次输入${label}`, + required: true, + clearable: true, + validations: { + equalsField: target, + }, + validationErrors: { + equalsField: `两次输入${label}不一致`, + }, + } +} \ No newline at end of file diff --git a/gringotts-frontend/components/user/dialog-user-register.js b/gringotts-frontend/components/user/dialog-user-register.js new file mode 100644 index 0000000..a250708 --- /dev/null +++ b/gringotts-frontend/components/user/dialog-user-register.js @@ -0,0 +1,89 @@ +import {apiPost, horizontalFormOptions} from '../constants.js' +import {confirmPasswordFormItem, emailFormItem, passwordFormItem} from "./dialog-user-item.js"; + +export function userRegisterDialog() { + return { + actionType: 'dialog', + dialog: { + title: '用户注册', + actions: [ + { + type: 'reset', + label: '清空', + }, + { + type: 'submit', + label: '注册', + level: 'primary', + }, + ], + body: { + type: 'form', + api: apiPost('${base}/user/register'), + ...horizontalFormOptions(), + body: [ + emailFormItem('username'), + passwordFormItem('password'), + confirmPasswordFormItem('confirm-password', 'password'), + { + type: 'radios', + name: 'role', + label: '角色', + required: true, + selectFirst: true, + options: [ + { label: '数据提供方', value: 'PROVIDER' }, + { label: '数据使用方', value: 'CUSTOMER' }, + { label: '审查监管方', value: 'CHECKER' }, + ], + }, + ], + }, + }, + } +} + +export function userAdministratorRegisterDialog() { + return { + actionType: 'dialog', + dialog: { + title: '用户注册', + actions: [ + { + type: 'reset', + label: '清空', + }, + { + type: 'submit', + label: '注册', + level: 'primary', + }, + ], + body: { + type: 'form', + api: apiPost('${base}/user_management/register'), + ...horizontalFormOptions(), + body: [ + emailFormItem('username'), + passwordFormItem('password'), + confirmPasswordFormItem('confirm-password', 'password'), + { + type: 'radios', + name: 'role', + label: '角色', + required: true, + selectFirst: true, + inline: false, + columnsCount: 2, + options: [ + { label: '数据提供方', value: 'PROVIDER' }, + { label: '数据使用方', value: 'CUSTOMER' }, + { label: '审查监管方', value: 'CHECKER' }, + { label: '系统管理员', value: 'ADMINISTRATOR' }, + ], + }, + ], + }, + }, + } +} diff --git a/gringotts-frontend/index.html b/gringotts-frontend/index.html new file mode 100644 index 0000000..6b5bba1 --- /dev/null +++ b/gringotts-frontend/index.html @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/gringotts-frontend/package.json b/gringotts-frontend/package.json new file mode 100644 index 0000000..0478854 --- /dev/null +++ b/gringotts-frontend/package.json @@ -0,0 +1,14 @@ +{ + "name": "vite-project", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^5.4.10" + } +} diff --git a/gringotts-frontend/pages/index/index.html b/gringotts-frontend/pages/index/index.html new file mode 100644 index 0000000..dae0101 --- /dev/null +++ b/gringotts-frontend/pages/index/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + +
+ + + + diff --git a/gringotts-frontend/pages/index/main.js b/gringotts-frontend/pages/index/main.js new file mode 100644 index 0000000..1453c23 --- /dev/null +++ b/gringotts-frontend/pages/index/main.js @@ -0,0 +1,64 @@ +import {apiGet, useAmis} from '../../components/constants.js' +import {userChangePasswordDialog} from "../../components/user/dialog-user-change-password.js"; +import {tabUser} from "./tab-user.js"; +import {tabOverview} from "./tab-overview.js"; + +useAmis(information => { + return { + id: 'header-service', + className: 'h-full', + type: 'service', + api: apiGet('${base}/user/state'), + onEvent: { + fetchInited: { + actions: [ + { + expression: '${!event.data.responseData.token}', + actionType: 'url', + args: { + url: '/pages/login/index.html', + blank: false, + } + } + ] + } + }, + body: [ + { + type: 'page', + title: information.title, + subTitle: '提供合法合规的数据要素可信供给工具', + toolbar: [ + { + type: 'dropdown-button', + label: '${username}', + align: 'right', + trigger: 'hover', + buttons: [ + { + label: '修改密码', + ...userChangePasswordDialog(), + }, + { + label: '退出登陆', + actionType: 'ajax', + api: apiGet('${base}/user/logout'), + reload: 'header-service', + } + ] + } + ], + bodyClassName: 'p-0', + body: { + className: 'h-full border-0', + type: 'tabs', + tabsMode: 'vertical', + tabs: [ + tabOverview(), + tabUser(), + ] + }, + } + ] + } +}) diff --git a/gringotts-web/src/main/resources/static/assets/component/pages/tab-overview.js b/gringotts-frontend/pages/index/tab-overview.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/component/pages/tab-overview.js rename to gringotts-frontend/pages/index/tab-overview.js diff --git a/gringotts-web/src/main/resources/static/assets/component/pages/tab-user.js b/gringotts-frontend/pages/index/tab-user.js similarity index 84% rename from gringotts-web/src/main/resources/static/assets/component/pages/tab-user.js rename to gringotts-frontend/pages/index/tab-user.js index 5831393..6d972ab 100644 --- a/gringotts-web/src/main/resources/static/assets/component/pages/tab-user.js +++ b/gringotts-frontend/pages/index/tab-user.js @@ -1,12 +1,15 @@ -import {userRegisterDialog} from './user/dialog-user-register.js' -import {apiGet, crudCommonOptions, mappingField, userRoleMapping, userStateMapping} from '../common.js' +import {apiGet, crudCommonOptions, mappingField, userRoleMapping, userStateMapping} from '../../components/constants.js' +import {userCheckDialog} from "../../components/user/dialog-user-check.js"; +import {userAdministratorRegisterDialog} from "../../components/user/dialog-user-register.js"; export function tabUser() { return { + visibleOn: '${role === "ADMINISTRATOR"}', title: '用户管理', icon: 'fa fa-user', body: [ { + id: '9200849e-a8e9-4752-b4fc-ae52dc46a205', type: 'crud', api: apiGet('${base}/user_management/list'), ...crudCommonOptions(), @@ -16,7 +19,7 @@ export function tabUser() { type: 'action', icon: 'fa fa-plus', tooltip: '新增账号', - ...userRegisterDialog(), + ...userAdministratorRegisterDialog(), }, ], columns: [ @@ -59,6 +62,7 @@ export function tabUser() { icon: 'fa fa-fingerprint', level: 'primary', size: 'xs', + ...userCheckDialog(), }, { visibleOn: "${state === 'NORMAL' && role !== 'ADMINISTRATOR'}", @@ -69,9 +73,8 @@ export function tabUser() { confirmText: '确认禁用账号${username}?', confirmTitle: '禁用账号', actionType: 'ajax', - api: 'get:${base}/user_management/disable/${username}', + api: apiGet('${base}/user_management/disable/${username}'), }, - { visibleOn: "${state === 'DISABLED' && role !== 'ADMINISTRATOR'}", label: '启用', @@ -81,7 +84,7 @@ export function tabUser() { confirmText: '确认启用账号${username}?', confirmTitle: '启用账号', actionType: 'ajax', - api: 'get:${base}/user_management/enable/${username}', + api: apiGet('${base}/user_management/enable/${username}'), } ] }, diff --git a/gringotts-frontend/pages/login/index.html b/gringotts-frontend/pages/login/index.html new file mode 100644 index 0000000..dae0101 --- /dev/null +++ b/gringotts-frontend/pages/login/index.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + +
+ + + + diff --git a/gringotts-frontend/pages/login/main.js b/gringotts-frontend/pages/login/main.js new file mode 100644 index 0000000..1f8d5f3 --- /dev/null +++ b/gringotts-frontend/pages/login/main.js @@ -0,0 +1,77 @@ +import {useAmis} from '../../components/constants.js' +import {userRegisterDialog} from '../../components/user/dialog-user-register.js' + +useAmis(information => { + return { + type: 'page', + title: information.title, + subTitle: '统一登陆入口', + body: [ + { + type: 'grid', + columns: [ + { + xs: 0, + sm: 0, + md: 4, + body: [], + }, + { + xs: 12, + sm: 12, + md: 4, + body: [ + { + type: 'form', + title: '用户登陆', + api: '${base}/user/login', + redirect: '/pages/index/index.html?token=${token}', + mode: 'horizontal', + horizontal: { + left: 2, + }, + actions: [ + { + type: 'action', + label: '注册', + ...userRegisterDialog(), + }, + { + type: 'action', + actionType: 'submit', + label: '登陆', + level: 'primary', + }, + ], + body: [ + { + type: 'input-email', + name: 'username', + label: '邮箱', + placeholder: '请输入邮箱', + required: true, + clearable: true, + clearValueOnEmpty: true, + }, + { + type: 'input-password', + name: 'password', + label: '密码', + placeholder: '请再次输入密码', + required: true, + }, + ], + }, + ], + }, + { + xs: 0, + sm: 0, + md: 4, + body: [], + }, + ], + }, + ], + } +}) diff --git a/gringotts-frontend/pnpm-lock.yaml b/gringotts-frontend/pnpm-lock.yaml new file mode 100644 index 0000000..dbdca13 --- /dev/null +++ b/gringotts-frontend/pnpm-lock.yaml @@ -0,0 +1,508 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + vite: + specifier: ^5.4.10 + version: 5.4.11 + +packages: + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@rollup/rollup-android-arm-eabi@4.27.3': + resolution: {integrity: sha512-EzxVSkIvCFxUd4Mgm4xR9YXrcp976qVaHnqom/Tgm+vU79k4vV4eYTjmRvGfeoW8m9LVcsAy/lGjcgVegKEhLQ==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.3.tgz} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.27.3': + resolution: {integrity: sha512-LJc5pDf1wjlt9o/Giaw9Ofl+k/vLUaYsE2zeQGH85giX2F+wn/Cg8b3c5CDP3qmVmeO5NzwVUzQQxwZvC2eQKw==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.3.tgz} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.27.3': + resolution: {integrity: sha512-OuRysZ1Mt7wpWJ+aYKblVbJWtVn3Cy52h8nLuNSzTqSesYw1EuN6wKp5NW/4eSre3mp12gqFRXOKTcN3AI3LqA==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.3.tgz} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.27.3': + resolution: {integrity: sha512-xW//zjJMlJs2sOrCmXdB4d0uiilZsOdlGQIC/jjmMWT47lkLLoB1nsNhPUcnoqyi5YR6I4h+FjBpILxbEy8JRg==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.3.tgz} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.27.3': + resolution: {integrity: sha512-58E0tIcwZ+12nK1WiLzHOD8I0d0kdrY/+o7yFVPRHuVGY3twBwzwDdTIBGRxLmyjciMYl1B/U515GJy+yn46qw==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.3.tgz} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.27.3': + resolution: {integrity: sha512-78fohrpcVwTLxg1ZzBMlwEimoAJmY6B+5TsyAZ3Vok7YabRBUvjYTsRXPTjGEvv/mfgVBepbW28OlMEz4w8wGA==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.3.tgz} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.27.3': + resolution: {integrity: sha512-h2Ay79YFXyQi+QZKo3ISZDyKaVD7uUvukEHTOft7kh00WF9mxAaxZsNs3o/eukbeKuH35jBvQqrT61fzKfAB/Q==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.3.tgz} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.27.3': + resolution: {integrity: sha512-Sv2GWmrJfRY57urktVLQ0VKZjNZGogVtASAgosDZ1aUB+ykPxSi3X1nWORL5Jk0sTIIwQiPH7iE3BMi9zGWfkg==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.3.tgz} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.27.3': + resolution: {integrity: sha512-FPoJBLsPW2bDNWjSrwNuTPUt30VnfM8GPGRoLCYKZpPx0xiIEdFip3dH6CqgoT0RnoGXptaNziM0WlKgBc+OWQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.3.tgz} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.27.3': + resolution: {integrity: sha512-TKxiOvBorYq4sUpA0JT+Fkh+l+G9DScnG5Dqx7wiiqVMiRSkzTclP35pE6eQQYjP4Gc8yEkJGea6rz4qyWhp3g==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.3.tgz} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': + resolution: {integrity: sha512-v2M/mPvVUKVOKITa0oCFksnQQ/TqGrT+yD0184/cWHIu0LoIuYHwox0Pm3ccXEz8cEQDLk6FPKd1CCm+PlsISw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.3.tgz} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.27.3': + resolution: {integrity: sha512-LdrI4Yocb1a/tFVkzmOE5WyYRgEBOyEhWYJe4gsDWDiwnjYKjNs7PS6SGlTDB7maOHF4kxevsuNBl2iOcj3b4A==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.3.tgz} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.27.3': + resolution: {integrity: sha512-d4wVu6SXij/jyiwPvI6C4KxdGzuZOvJ6y9VfrcleHTwo68fl8vZC5ZYHsCVPUi4tndCfMlFniWgwonQ5CUpQcA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.3.tgz} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.27.3': + resolution: {integrity: sha512-/6bn6pp1fsCGEY5n3yajmzZQAh+mW4QPItbiWxs69zskBzJuheb3tNynEjL+mKOsUSFK11X4LYF2BwwXnzWleA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.3.tgz} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.27.3': + resolution: {integrity: sha512-nBXOfJds8OzUT1qUreT/en3eyOXd2EH5b0wr2bVB5999qHdGKkzGzIyKYaKj02lXk6wpN71ltLIaQpu58YFBoQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.3.tgz} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.27.3': + resolution: {integrity: sha512-ogfbEVQgIZOz5WPWXF2HVb6En+kWzScuxJo/WdQTqEgeyGkaa2ui5sQav9Zkr7bnNCLK48uxmmK0TySm22eiuw==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.3.tgz} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.27.3': + resolution: {integrity: sha512-ecE36ZBMLINqiTtSNQ1vzWc5pXLQHlf/oqGp/bSbi7iedcjcNb6QbCBNG73Euyy2C+l/fn8qKWEwxr+0SSfs3w==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.3.tgz} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.27.3': + resolution: {integrity: sha512-vliZLrDmYKyaUoMzEbMTg2JkerfBjn03KmAw9CykO0Zzkzoyd7o3iZNam/TpyWNjNT+Cz2iO3P9Smv2wgrR+Eg==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.3.tgz} + cpu: [x64] + os: [win32] + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz} + engines: {node: '>=12'} + hasBin: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, tarball: https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, tarball: https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz} + engines: {node: ^10 || ^12 || >=14} + + rollup@4.27.3: + resolution: {integrity: sha512-SLsCOnlmGt9VoZ9Ek8yBK8tAdmPHeppkw+Xa7yDlCEhDTvwYei03JlWo1fdc7YTfLZ4tD8riJCUyAgTbszk1fQ==, tarball: https://registry.npmjs.org/rollup/-/rollup-4.27.3.tgz} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, tarball: https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz} + engines: {node: '>=0.10.0'} + + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==, tarball: https://registry.npmjs.org/vite/-/vite-5.4.11.tgz} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + +snapshots: + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@rollup/rollup-android-arm-eabi@4.27.3': + optional: true + + '@rollup/rollup-android-arm64@4.27.3': + optional: true + + '@rollup/rollup-darwin-arm64@4.27.3': + optional: true + + '@rollup/rollup-darwin-x64@4.27.3': + optional: true + + '@rollup/rollup-freebsd-arm64@4.27.3': + optional: true + + '@rollup/rollup-freebsd-x64@4.27.3': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.27.3': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.27.3': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.27.3': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.27.3': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.27.3': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.27.3': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.27.3': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.27.3': + optional: true + + '@rollup/rollup-linux-x64-musl@4.27.3': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.27.3': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.27.3': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.27.3': + optional: true + + '@types/estree@1.0.6': {} + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + fsevents@2.3.3: + optional: true + + nanoid@3.3.7: {} + + picocolors@1.1.1: {} + + postcss@8.4.49: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + rollup@4.27.3: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.27.3 + '@rollup/rollup-android-arm64': 4.27.3 + '@rollup/rollup-darwin-arm64': 4.27.3 + '@rollup/rollup-darwin-x64': 4.27.3 + '@rollup/rollup-freebsd-arm64': 4.27.3 + '@rollup/rollup-freebsd-x64': 4.27.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.27.3 + '@rollup/rollup-linux-arm-musleabihf': 4.27.3 + '@rollup/rollup-linux-arm64-gnu': 4.27.3 + '@rollup/rollup-linux-arm64-musl': 4.27.3 + '@rollup/rollup-linux-powerpc64le-gnu': 4.27.3 + '@rollup/rollup-linux-riscv64-gnu': 4.27.3 + '@rollup/rollup-linux-s390x-gnu': 4.27.3 + '@rollup/rollup-linux-x64-gnu': 4.27.3 + '@rollup/rollup-linux-x64-musl': 4.27.3 + '@rollup/rollup-win32-arm64-msvc': 4.27.3 + '@rollup/rollup-win32-ia32-msvc': 4.27.3 + '@rollup/rollup-win32-x64-msvc': 4.27.3 + fsevents: 2.3.3 + + source-map-js@1.2.1: {} + + vite@5.4.11: + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.27.3 + optionalDependencies: + fsevents: 2.3.3 diff --git a/gringotts-web/src/main/resources/static/assets/sdk/ang-ie11.css b/gringotts-frontend/public/assets/sdk/ang-ie11.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/ang-ie11.css rename to gringotts-frontend/public/assets/sdk/ang-ie11.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/ang.css b/gringotts-frontend/public/assets/sdk/ang.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/ang.css rename to gringotts-frontend/public/assets/sdk/ang.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/antd-ie11.css b/gringotts-frontend/public/assets/sdk/antd-ie11.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/antd-ie11.css rename to gringotts-frontend/public/assets/sdk/antd-ie11.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/antd.css b/gringotts-frontend/public/assets/sdk/antd.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/antd.css rename to gringotts-frontend/public/assets/sdk/antd.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/barcode.js b/gringotts-frontend/public/assets/sdk/barcode.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/barcode.js rename to gringotts-frontend/public/assets/sdk/barcode.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/charts.js b/gringotts-frontend/public/assets/sdk/charts.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/charts.js rename to gringotts-frontend/public/assets/sdk/charts.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/codemirror.js b/gringotts-frontend/public/assets/sdk/codemirror.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/codemirror.js rename to gringotts-frontend/public/assets/sdk/codemirror.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/color-picker.js b/gringotts-frontend/public/assets/sdk/color-picker.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/color-picker.js rename to gringotts-frontend/public/assets/sdk/color-picker.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/cropperjs.js b/gringotts-frontend/public/assets/sdk/cropperjs.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/cropperjs.js rename to gringotts-frontend/public/assets/sdk/cropperjs.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/cxd-ie11.css b/gringotts-frontend/public/assets/sdk/cxd-ie11.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/cxd-ie11.css rename to gringotts-frontend/public/assets/sdk/cxd-ie11.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/cxd.css b/gringotts-frontend/public/assets/sdk/cxd.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/cxd.css rename to gringotts-frontend/public/assets/sdk/cxd.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/dark-ie11.css b/gringotts-frontend/public/assets/sdk/dark-ie11.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/dark-ie11.css rename to gringotts-frontend/public/assets/sdk/dark-ie11.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/dark.css b/gringotts-frontend/public/assets/sdk/dark.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/dark.css rename to gringotts-frontend/public/assets/sdk/dark.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/exceljs.js b/gringotts-frontend/public/assets/sdk/exceljs.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/exceljs.js rename to gringotts-frontend/public/assets/sdk/exceljs.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/fomula-doc.js b/gringotts-frontend/public/assets/sdk/fomula-doc.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/fomula-doc.js rename to gringotts-frontend/public/assets/sdk/fomula-doc.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/helper.css b/gringotts-frontend/public/assets/sdk/helper.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/helper.css rename to gringotts-frontend/public/assets/sdk/helper.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/iconfont.css b/gringotts-frontend/public/assets/sdk/iconfont.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/iconfont.css rename to gringotts-frontend/public/assets/sdk/iconfont.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/iconfont.eot b/gringotts-frontend/public/assets/sdk/iconfont.eot similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/iconfont.eot rename to gringotts-frontend/public/assets/sdk/iconfont.eot diff --git a/gringotts-web/src/main/resources/static/assets/sdk/iconfont.svg b/gringotts-frontend/public/assets/sdk/iconfont.svg similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/iconfont.svg rename to gringotts-frontend/public/assets/sdk/iconfont.svg diff --git a/gringotts-web/src/main/resources/static/assets/sdk/iconfont.ttf b/gringotts-frontend/public/assets/sdk/iconfont.ttf similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/iconfont.ttf rename to gringotts-frontend/public/assets/sdk/iconfont.ttf diff --git a/gringotts-web/src/main/resources/static/assets/sdk/iconfont.woff b/gringotts-frontend/public/assets/sdk/iconfont.woff similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/iconfont.woff rename to gringotts-frontend/public/assets/sdk/iconfont.woff diff --git a/gringotts-web/src/main/resources/static/assets/sdk/ie11-patch.css b/gringotts-frontend/public/assets/sdk/ie11-patch.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/ie11-patch.css rename to gringotts-frontend/public/assets/sdk/ie11-patch.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/json-view.js b/gringotts-frontend/public/assets/sdk/json-view.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/json-view.js rename to gringotts-frontend/public/assets/sdk/json-view.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/locale/de-DE.js b/gringotts-frontend/public/assets/sdk/locale/de-DE.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/locale/de-DE.js rename to gringotts-frontend/public/assets/sdk/locale/de-DE.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/markdown.js b/gringotts-frontend/public/assets/sdk/markdown.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/markdown.js rename to gringotts-frontend/public/assets/sdk/markdown.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/office-viewer.js b/gringotts-frontend/public/assets/sdk/office-viewer.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/office-viewer.js rename to gringotts-frontend/public/assets/sdk/office-viewer.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/papaparse.js b/gringotts-frontend/public/assets/sdk/papaparse.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/papaparse.js rename to gringotts-frontend/public/assets/sdk/papaparse.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/pdf-viewer.js b/gringotts-frontend/public/assets/sdk/pdf-viewer.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/pdf-viewer.js rename to gringotts-frontend/public/assets/sdk/pdf-viewer.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/rest.js b/gringotts-frontend/public/assets/sdk/rest.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/rest.js rename to gringotts-frontend/public/assets/sdk/rest.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/rich-text.js b/gringotts-frontend/public/assets/sdk/rich-text.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/rich-text.js rename to gringotts-frontend/public/assets/sdk/rich-text.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/sdk-ie11.css b/gringotts-frontend/public/assets/sdk/sdk-ie11.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/sdk-ie11.css rename to gringotts-frontend/public/assets/sdk/sdk-ie11.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/sdk.css b/gringotts-frontend/public/assets/sdk/sdk.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/sdk.css rename to gringotts-frontend/public/assets/sdk/sdk.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/sdk.js b/gringotts-frontend/public/assets/sdk/sdk.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/sdk.js rename to gringotts-frontend/public/assets/sdk/sdk.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf b/gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf rename to gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 b/gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 rename to gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf b/gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf rename to gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 b/gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 rename to gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf b/gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf rename to gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 b/gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 rename to gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf b/gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf rename to gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 b/gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 rename to gringotts-frontend/public/assets/sdk/thirds/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/hls.js/hls.js b/gringotts-frontend/public/assets/sdk/thirds/hls.js/hls.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/hls.js/hls.js rename to gringotts-frontend/public/assets/sdk/thirds/hls.js/hls.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/moment-timezone/data/packed/latest.json b/gringotts-frontend/public/assets/sdk/thirds/moment-timezone/data/packed/latest.json similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/moment-timezone/data/packed/latest.json rename to gringotts-frontend/public/assets/sdk/thirds/moment-timezone/data/packed/latest.json diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/base/browser/ui/codicons/codicon/codicon.ttf diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/base/worker/workerMain.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/base/worker/workerMain.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/base/worker/workerMain.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/base/worker/workerMain.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/apex/apex.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/apex/apex.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/apex/apex.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/apex/apex.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/azcli/azcli.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/azcli/azcli.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/azcli/azcli.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/azcli/azcli.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/bat/bat.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/bat/bat.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/bat/bat.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/bat/bat.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/clojure/clojure.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/clojure/clojure.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/clojure/clojure.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/clojure/clojure.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/coffee/coffee.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/coffee/coffee.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/coffee/coffee.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/coffee/coffee.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/cpp/cpp.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/cpp/cpp.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/cpp/cpp.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/cpp/cpp.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/csharp/csharp.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/csharp/csharp.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/csharp/csharp.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/csharp/csharp.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/css/css.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/css/css.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/css/css.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/css/css.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/dockerfile/dockerfile.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/fsharp/fsharp.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/go/go.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/go/go.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/go/go.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/go/go.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/handlebars/handlebars.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/html/html.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/html/html.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/html/html.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/html/html.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/ini/ini.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/ini/ini.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/ini/ini.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/ini/ini.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/java/java.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/java/java.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/java/java.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/java/java.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/javascript/javascript.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/javascript/javascript.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/javascript/javascript.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/javascript/javascript.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/less/less.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/less/less.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/less/less.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/less/less.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/lua/lua.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/lua/lua.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/lua/lua.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/lua/lua.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/markdown/markdown.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/markdown/markdown.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/markdown/markdown.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/markdown/markdown.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/msdax/msdax.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/msdax/msdax.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/msdax/msdax.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/msdax/msdax.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/objective-c/objective-c.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/objective-c/objective-c.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/objective-c/objective-c.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/objective-c/objective-c.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/php/php.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/php/php.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/php/php.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/php/php.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/postiats/postiats.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/postiats/postiats.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/postiats/postiats.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/postiats/postiats.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/powershell/powershell.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/powershell/powershell.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/powershell/powershell.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/powershell/powershell.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/pug/pug.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/pug/pug.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/pug/pug.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/pug/pug.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/python/python.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/python/python.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/python/python.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/python/python.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/r/r.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/r/r.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/r/r.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/r/r.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/razor/razor.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/razor/razor.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/razor/razor.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/razor/razor.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/redis/redis.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/redis/redis.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/redis/redis.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/redis/redis.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/redshift/redshift.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/redshift/redshift.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/redshift/redshift.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/redshift/redshift.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/ruby/ruby.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/ruby/ruby.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/ruby/ruby.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/ruby/ruby.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/rust/rust.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/rust/rust.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/rust/rust.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/rust/rust.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/sb/sb.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/sb/sb.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/sb/sb.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/sb/sb.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/scheme/scheme.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/scheme/scheme.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/scheme/scheme.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/scheme/scheme.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/scss/scss.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/scss/scss.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/scss/scss.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/scss/scss.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/shell/shell.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/shell/shell.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/shell/shell.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/shell/shell.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/solidity/solidity.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/solidity/solidity.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/solidity/solidity.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/solidity/solidity.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/sql/sql.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/sql/sql.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/sql/sql.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/sql/sql.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/st/st.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/st/st.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/st/st.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/st/st.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/swift/swift.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/swift/swift.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/swift/swift.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/swift/swift.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/typescript/typescript.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/typescript/typescript.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/typescript/typescript.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/typescript/typescript.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/vb/vb.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/vb/vb.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/vb/vb.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/vb/vb.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/xml/xml.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/xml/xml.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/xml/xml.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/xml/xml.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/yaml/yaml.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/yaml/yaml.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/yaml/yaml.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/basic-languages/yaml/yaml.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.css b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.css similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.css rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.css diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.nls.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.nls.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.nls.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.nls.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/editor/editor.main.nls.zh-cn.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/css/cssMode.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/css/cssMode.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/css/cssMode.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/css/cssMode.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/css/cssWorker.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/css/cssWorker.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/css/cssWorker.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/css/cssWorker.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/html/htmlMode.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/html/htmlMode.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/html/htmlMode.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/html/htmlMode.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/html/htmlWorker.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/html/htmlWorker.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/html/htmlWorker.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/html/htmlWorker.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/json/jsonMode.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/json/jsonMode.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/json/jsonMode.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/json/jsonMode.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/json/jsonWorker.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/json/jsonWorker.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/json/jsonWorker.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/json/jsonWorker.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/typescript/tsMode.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/typescript/tsMode.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/typescript/tsMode.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/typescript/tsMode.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/typescript/tsWorker.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/typescript/tsWorker.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/language/typescript/tsWorker.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/language/typescript/tsWorker.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/loader.js b/gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/loader.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/monaco-editor/min/vs/loader.js rename to gringotts-frontend/public/assets/sdk/thirds/monaco-editor/min/vs/loader.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/mpegts.js/mpegts.js b/gringotts-frontend/public/assets/sdk/thirds/mpegts.js/mpegts.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/mpegts.js/mpegts.js rename to gringotts-frontend/public/assets/sdk/thirds/mpegts.js/mpegts.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/pdfjs-dist/build/pdf.js b/gringotts-frontend/public/assets/sdk/thirds/pdfjs-dist/build/pdf.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/pdfjs-dist/build/pdf.js rename to gringotts-frontend/public/assets/sdk/thirds/pdfjs-dist/build/pdf.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/pdfjs-dist/build/pdf.worker.min.mjs b/gringotts-frontend/public/assets/sdk/thirds/pdfjs-dist/build/pdf.worker.min.mjs similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/thirds/pdfjs-dist/build/pdf.worker.min.mjs rename to gringotts-frontend/public/assets/sdk/thirds/pdfjs-dist/build/pdf.worker.min.mjs diff --git a/gringotts-web/src/main/resources/static/assets/sdk/tinymce.js b/gringotts-frontend/public/assets/sdk/tinymce.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/tinymce.js rename to gringotts-frontend/public/assets/sdk/tinymce.js diff --git a/gringotts-web/src/main/resources/static/assets/sdk/xlsx.js b/gringotts-frontend/public/assets/sdk/xlsx.js similarity index 100% rename from gringotts-web/src/main/resources/static/assets/sdk/xlsx.js rename to gringotts-frontend/public/assets/sdk/xlsx.js diff --git a/gringotts-frontend/vite.config.js b/gringotts-frontend/vite.config.js new file mode 100644 index 0000000..bfe2b43 --- /dev/null +++ b/gringotts-frontend/vite.config.js @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import { resolve } from 'path' + +export default defineConfig(({ comand, mode }) => { + return { + build: { + target: 'modules', + sourcemap: false, + rollupOptions: { + input: { + entrence: resolve(__dirname, 'index.html'), + index: resolve(__dirname, 'pages/index/index.html'), + login: resolve(__dirname, 'pages/login/index.html'), + }, + }, + }, + } +}) diff --git a/gringotts-web/gringotts-web.iml b/gringotts-web/gringotts-web.iml new file mode 100644 index 0000000..7211c27 --- /dev/null +++ b/gringotts-web/gringotts-web.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/configuration/SaTokenConfiguration.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/configuration/SaTokenConfiguration.java index 940c4ee..55395e2 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/configuration/SaTokenConfiguration.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/configuration/SaTokenConfiguration.java @@ -1,9 +1,14 @@ package com.eshore.gringotts.web.configuration; +import cn.dev33.satoken.context.SaHolder; +import cn.dev33.satoken.filter.SaServletFilter; import cn.dev33.satoken.interceptor.SaInterceptor; +import cn.dev33.satoken.router.SaHttpMethod; +import cn.dev33.satoken.router.SaRouter; import cn.dev33.satoken.stp.StpUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -20,15 +25,19 @@ public class SaTokenConfiguration implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor( + registry + .addInterceptor( new SaInterceptor(handler -> { - logger.info("Handler {}", handler); - StpUtil.checkLogin(); + SaRouter + .match("/**") + .notMatch("/") + .notMatch("/index.html") + .notMatch("/assets/**") + .notMatch("/pages/**") + .notMatch("/user/**") + .check(r -> StpUtil.checkLogin()); }) ) - .addPathPatterns("/**") - .excludePathPatterns("/*.html") - .excludePathPatterns("/assets/**") - .excludePathPatterns("/user/**"); + .addPathPatterns("/**"); } } diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/user/controller/UserManagementController.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/user/controller/UserManagementController.java index 9a09a8b..09b5e10 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/user/controller/UserManagementController.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/user/controller/UserManagementController.java @@ -2,6 +2,7 @@ package com.eshore.gringotts.web.domain.user.controller; import com.eshore.gringotts.web.configuration.amis.AmisListResponse; import com.eshore.gringotts.web.configuration.amis.AmisResponse; +import com.eshore.gringotts.web.domain.user.entity.User; import com.eshore.gringotts.web.domain.user.service.UserService; import lombok.Data; import org.slf4j.Logger; @@ -40,6 +41,12 @@ public class UserManagementController { return AmisResponse.responseSuccess(userService.detail(username)); } + @PostMapping("/register") + public void register(@RequestBody RegisterRequest request) { + logger.info("Register request: {}", request); + userService.registerFromAdministrator(request.username, request.password, request.role); + } + @PostMapping("/change_password") public AmisResponse changePassword(@RequestBody ChangePasswordRequest request) { userService.changePassword(request.oldPassword, request.newPassword); @@ -63,4 +70,11 @@ public class UserManagementController { private String oldPassword; private String newPassword; } + + @Data + public static final class RegisterRequest { + private String username; + private String password; + private User.Role role; + } } diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/user/service/UserService.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/user/service/UserService.java index b45a632..bea248d 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/user/service/UserService.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/user/service/UserService.java @@ -94,6 +94,10 @@ public class UserService { * 注册操作 */ public void register(String username, String password, User.Role role) { + // 不允许通过这个入口注册管理员 + if (User.Role.ADMINISTRATOR.equals(role)) { + throw new RegisterFailureException(); + } User user = new User(); user.setUsername(username); user.setPassword(encryptPassword(password)); @@ -101,6 +105,19 @@ public class UserService { userRepository.save(user); } + /** + * 管理员注册操作 + * 直接成功 + */ + public void registerFromAdministrator(String username, String password, User.Role role) { + User user = new User(); + user.setUsername(username); + user.setPassword(encryptPassword(password)); + user.setRole(role); + user.setState(User.State.NORMAL); + userRepository.save(user); + } + /** * 是否存在用户名 */ @@ -150,6 +167,12 @@ public class UserService { } } + public static class RegisterFailureException extends RuntimeException { + public RegisterFailureException() { + super("不允许注册的用户类型"); + } + } + public static class LoginFailureException extends RuntimeException { public LoginFailureException() { super("邮箱或密码错误"); @@ -224,7 +247,6 @@ public class UserService { @Data public static class UserDetail { - private Long id; private String username; private User.Role role; private User.State state; @@ -232,7 +254,6 @@ public class UserService { private LocalDateTime updateTime; public UserDetail(User user) { - this.id = user.getId(); this.username = user.getUsername(); this.role = user.getRole(); this.state = user.getState(); diff --git a/gringotts-web/src/main/resources/application.yml b/gringotts-web/src/main/resources/application.yml index cad59ad..70c1596 100644 --- a/gringotts-web/src/main/resources/application.yml +++ b/gringotts-web/src/main/resources/application.yml @@ -18,6 +18,7 @@ fenix: print-sql: false sa-token: is-print: false + is-read-cookie: false token-name: token logging: level: diff --git a/gringotts-web/src/main/resources/static/assets/component/constants.js b/gringotts-web/src/main/resources/static/assets/component/constants.js deleted file mode 100644 index ff8bbfa..0000000 --- a/gringotts-web/src/main/resources/static/assets/component/constants.js +++ /dev/null @@ -1,6 +0,0 @@ -export const information = { - debug: true, - baseUrl: '', - // baseUrl: 'http://127.0.0.1:20080', - title: '可信供给中心', -} diff --git a/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-change-password.js b/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-change-password.js deleted file mode 100644 index 950cec4..0000000 --- a/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-change-password.js +++ /dev/null @@ -1,64 +0,0 @@ -import {horizontalFormOptions, apiPost} from '../../common.js' - -export function userChangePasswordDialog() { - return { - actionType: 'dialog', - dialog: { - title: '修改密码', - actions: [ - { - type: 'reset', - label: '清空', - }, - { - type: 'submit', - label: '修改', - level: 'primary', - } - ], - body: { - type: 'form', - api: apiPost('${base}/user_management/change_password'), - ...horizontalFormOptions(), - body: [ - { - type: 'input-password', - name: 'oldPassword', - label: '旧密码', - placeholder: '请输入旧密码', - required: true, - }, - { - type: 'input-password', - name: 'newPassword', - label: '新密码', - placeholder: '请输入新密码', - required: true, - clearable: true, - clearValueOnEmpty: true, - validations: { - matchRegexp: /^(?=.*\d)(?!.*(\d)\1{2})(?!.*(012|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210))(?=.*[a-zA-Z])(?=.*[^\da-zA-Z\s]).{8,16}$/ - }, - validationErrors: { - matchRegexp: '密码至少包含字母、数字、特殊字符,8-16位,并且不能连续出现3个大小连续或相同的数字', - } - }, - { - type: 'input-password', - name: 'confirmNewPassword', - label: '确认新密码', - placeholder: '请再次输入新密码', - required: true, - clearable: true, - validations: { - equalsField: 'newPassword' - }, - validationErrors: { - equalsField: '两次输入密码不一致', - } - }, - ] - } - } - } -} \ No newline at end of file diff --git a/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-detail.js b/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-detail.js deleted file mode 100644 index 246ca27..0000000 --- a/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-detail.js +++ /dev/null @@ -1,34 +0,0 @@ -import {horizontalFormOptions} from "../../common.js"; - -export function userDetailDialog() { - return { - actionType: 'dialog', - dialog: { - title: '用户注册', - actions: [], - body: { - type: 'form', - api: '${base}/user_management/detail/${username}', - ...horizontalFormOptions(), - static: true, - body: [ - { - type: 'input-email', - name: 'username', - label: '邮箱', - }, - { - type: 'input-password', - name: 'password', - label: '密码', - }, - { - type: 'radios', - name: 'role', - label: '角色', - }, - ] - } - } - } -} \ No newline at end of file diff --git a/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-register.js b/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-register.js deleted file mode 100644 index 40f11cf..0000000 --- a/gringotts-web/src/main/resources/static/assets/component/pages/user/dialog-user-register.js +++ /dev/null @@ -1,79 +0,0 @@ -import {horizontalFormOptions} from "../../common.js"; - -export function userRegisterDialog() { - return { - actionType: 'dialog', - dialog: { - title: '用户注册', - actions: [ - { - type: 'reset', - label: '清空', - }, - { - type: 'submit', - label: '注册', - level: 'primary', - } - ], - body: { - type: 'form', - api: '${base}/user/register', - ...horizontalFormOptions(), - body: [ - { - type: 'input-email', - name: 'username', - label: '邮箱', - placeholder: '请输入邮箱', - required: true, - clearable: true, - clearValueOnEmpty: true, - validateApi: '${base}/user/exists_username/${username}' - }, - { - type: 'input-password', - name: 'password', - label: '密码', - placeholder: '请输入密码', - required: true, - clearable: true, - clearValueOnEmpty: true, - validations: { - matchRegexp: /^(?=.*\d)(?!.*(\d)\1{2})(?!.*(012|123|234|345|456|567|678|789|987|876|765|654|543|432|321|210))(?=.*[a-zA-Z])(?=.*[^\da-zA-Z\s]).{8,16}$/ - }, - validationErrors: { - matchRegexp: '密码至少包含字母、数字、特殊字符,8-16位,并且不能连续出现3个大小连续或相同的数字', - } - }, - { - type: 'input-password', - name: 'confirm-password', - label: '确认密码', - placeholder: '请再次输入密码', - required: true, - clearable: true, - validations: { - equalsField: 'password' - }, - validationErrors: { - equalsField: '两次输入密码不一致', - } - }, - { - type: 'radios', - name: 'role', - label: '角色', - required: true, - selectFirst: true, - options: [ - {label: '数据提供方', value: 'PROVIDER'}, - {label: '数据使用方', value: 'CUSTOMER'}, - {label: '审查监管方', value: 'CHECKER'}, - ] - }, - ] - } - } - } -} \ No newline at end of file diff --git a/gringotts-web/src/main/resources/static/assets/sdk/thirds/markdown-it/node_modules/entities/lib/maps/entities.json b/gringotts-web/src/main/resources/static/assets/sdk/thirds/markdown-it/node_modules/entities/lib/maps/entities.json deleted file mode 100644 index c5b1c4e..0000000 --- a/gringotts-web/src/main/resources/static/assets/sdk/thirds/markdown-it/node_modules/entities/lib/maps/entities.json +++ /dev/null @@ -1 +0,0 @@ -{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\"","QUOT":"\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"} diff --git a/gringotts-web/src/main/resources/static/index.html b/gringotts-web/src/main/resources/static/index.html deleted file mode 100644 index 3a84c80..0000000 --- a/gringotts-web/src/main/resources/static/index.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - 可信供给中心 - - - - - - -
- - - - \ No newline at end of file diff --git a/gringotts-web/src/main/resources/static/login.html b/gringotts-web/src/main/resources/static/login.html deleted file mode 100644 index 944a486..0000000 --- a/gringotts-web/src/main/resources/static/login.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - 可信供给平台 - - - - - - -
- - - - - \ No newline at end of file diff --git a/gringotts.iml b/gringotts.iml new file mode 100644 index 0000000..0591655 --- /dev/null +++ b/gringotts.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file