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