From 3cd59337e7333ba8094b786de4a1ceebf5436b3e Mon Sep 17 00:00:00 2001 From: Chuck1sn Date: Wed, 14 May 2025 10:16:48 +0800 Subject: [PATCH] init --- .gitignore | 171 + .vscode/settings.json | 2 + LICENSE.txt | 21 + README.md | 133 + assets/class.png | Bin 0 -> 263264 bytes assets/depbind.png | Bin 0 -> 365517 bytes assets/posbind.png | Bin 0 -> 327020 bytes assets/qq.jpg | Bin 0 -> 475785 bytes backend/.dockerignore | 217 + backend/.env | 17 + backend/.gitignore | 229 + backend/build.gradle.kts | 194 + backend/gradle.properties | 3 + backend/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43583 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + backend/gradlew | 251 + backend/gradlew.bat | 94 + backend/pmd-rules.xml | 17 + backend/settings.gradle.kts | 1 + .../java/com/zl/mjga/ApplicationService.java | 12 + .../java/com/zl/mjga/config/CorsConfig.java | 45 + .../java/com/zl/mjga/config/QuartzConfig.java | 79 + .../com/zl/mjga/config/cache/CacheConfig.java | 31 + .../config/security/HttpFireWallConfig.java | 30 + .../java/com/zl/mjga/config/security/Jwt.java | 79 + .../security/JwtAuthenticationFilter.java | 44 + .../security/JwtAuthenticationToken.java | 57 + .../security/PasswordEncoderConfig.java | 14 + ...estfulAuthenticationEntryPointHandler.java | 28 + .../security/UserDetailsServiceImpl.java | 38 + .../config/security/WebSecurityConfig.java | 77 + .../mjga/controller/DepartmentController.java | 51 + .../controller/IdentityAccessController.java | 177 + .../mjga/controller/PositionController.java | 51 + .../mjga/controller/SchedulerController.java | 58 + .../zl/mjga/controller/SignController.java | 43 + .../java/com/zl/mjga/dto/PageRequestDto.java | 129 + .../java/com/zl/mjga/dto/PageResponseDto.java | 22 + .../dto/department/DepartmentBindDto.java | 6 + .../dto/department/DepartmentQueryDto.java | 16 + .../dto/department/DepartmentRespDto.java | 20 + .../dto/department/DepartmentUpsertDto.java | 17 + .../dto/permission/PermissionBindDto.java | 8 + .../zl/mjga/dto/position/PositionBindDto.java | 6 + .../mjga/dto/position/PositionQueryDto.java | 15 + .../zl/mjga/dto/position/PositionRespDto.java | 19 + .../mjga/dto/position/PositionUpsertDto.java | 17 + .../com/zl/mjga/dto/role/RoleBindDto.java | 8 + .../com/zl/mjga/dto/scheduler/JobKeyDto.java | 5 + .../zl/mjga/dto/scheduler/JobTriggerDto.java | 26 + .../com/zl/mjga/dto/scheduler/QueryDto.java | 3 + .../com/zl/mjga/dto/scheduler/TriggerDto.java | 21 + .../zl/mjga/dto/scheduler/TriggerKeyDto.java | 5 + .../java/com/zl/mjga/dto/sign/SignInDto.java | 16 + .../java/com/zl/mjga/dto/sign/SignUpDto.java | 15 + .../zl/mjga/dto/urp/PermissionQueryDto.java | 18 + .../zl/mjga/dto/urp/PermissionRespDto.java | 14 + .../zl/mjga/dto/urp/PermissionUpsertDto.java | 15 + .../java/com/zl/mjga/dto/urp/RoleDto.java | 17 + .../com/zl/mjga/dto/urp/RoleQueryDto.java | 18 + .../com/zl/mjga/dto/urp/RoleUpsertDto.java | 15 + .../com/zl/mjga/dto/urp/UserQueryDto.java | 10 + .../mjga/dto/urp/UserRolePermissionDto.java | 34 + .../com/zl/mjga/dto/urp/UserUpsertDto.java | 17 + .../zl/mjga/exception/BusinessException.java | 25 + .../exception/GlobalExceptionHandler.java | 90 + .../java/com/zl/mjga/job/DataBackupJob.java | 19 + .../main/java/com/zl/mjga/job/EmailJob.java | 19 + .../java/com/zl/mjga/model/urp/BindState.java | 7 + .../com/zl/mjga/model/urp/EPermission.java | 12 + .../java/com/zl/mjga/model/urp/ERole.java | 6 + .../com/zl/mjga/model/urp/SchedulerType.java | 8 + .../mjga/repository/DepartmentRepository.java | 67 + .../mjga/repository/PermissionRepository.java | 81 + .../mjga/repository/PositionRepository.java | 60 + .../zl/mjga/repository/QrtzJobRepository.java | 46 + .../RolePermissionMapRepository.java | 33 + .../zl/mjga/repository/RoleRepository.java | 84 + .../UserDepartmentMapRepository.java | 14 + .../repository/UserPositionMapRepository.java | 14 + .../zl/mjga/repository/UserRepository.java | 151 + .../repository/UserRoleMapRepository.java | 33 + .../com/zl/mjga/service/CacheService.java | 28 + .../zl/mjga/service/DepartmentService.java | 47 + .../mjga/service/IdentityAccessService.java | 291 + .../com/zl/mjga/service/PositionService.java | 44 + .../com/zl/mjga/service/SchedulerService.java | 103 + .../java/com/zl/mjga/service/SignService.java | 51 + backend/src/main/resources/application.yml | 31 + .../db/migration/V1_0_0__init_table.sql | 67 + .../migration/V1_0_1__insert_init_table.sql | 29 + .../db/migration/V1_0_2__init_quartz.sql | 194 + .../zl/mjga/integration/cache/CacheTest.java | 51 + .../zl/mjga/integration/e2e/SignE2ETest.java | 121 + .../mvc/JacksonAnnotationMvcTest.java | 78 + .../zl/mjga/integration/mvc/SignMvcTest.java | 144 + .../mvc/UserRolePermissionMvcTest.java | 225 + .../AbstractDataAccessLayerTest.java | 33 + .../persistence/JooqTutorialsTest.java | 160 + .../persistence/SortByDALTest.java | 71 + .../UserRolePermissionDALTest.java | 219 + .../quartz/AbstractQuartzTest.java | 32 + .../integration/quartz/DataBackupJobTest.java | 84 + .../integration/quartz/SendEmailJobTest.java | 72 + .../quartz/TaskManagementTest.java | 92 + .../AuthenticationAndAuthorityTest.java | 128 + .../java/com/zl/mjga/unit/JwtUnitTest.java | 79 + .../zl/mjga/unit/PageRequestDtoUnitTest.java | 70 + .../java/com/zl/mjga/unit/SignUnitTest.java | 103 + .../mjga/unit/UserRolePermissionUnitTest.java | 408 ++ .../db/migration/test/V1_0_0__init_table.sql | 67 + .../db/migration/test/V1_0_2__init_quartz.sql | 194 + frontend/.env | 9 + frontend/.gitignore | 181 + frontend/.nvmrc | 1 + frontend/.vscode/extensions.json | 7 + frontend/.vscode/settings.json | 18 + frontend/biome.json | 34 + frontend/e2e/tsconfig.json | 4 + frontend/e2e/vue.spec.ts | 8 + frontend/env.d.ts | 25 + frontend/index.html | 13 + frontend/package-lock.json | 6449 +++++++++++++++++ frontend/package.json | 55 + frontend/playwright.config.ts | 111 + frontend/public/favicon.ico | Bin 0 -> 4286 bytes frontend/public/mockServiceWorker.js | 307 + frontend/public/trump.jpg | Bin 0 -> 29021 bytes frontend/src/App.vue | 11 + frontend/src/api/client.ts | 69 + frontend/src/api/mocks/authHandlers.ts | 10 + frontend/src/api/mocks/departmentHandlers.ts | 39 + frontend/src/api/mocks/permissionHandlers.ts | 43 + frontend/src/api/mocks/positionHandlers.ts | 35 + frontend/src/api/mocks/roleHandlers.ts | 77 + frontend/src/api/mocks/schedulerHandlers.ts | 53 + frontend/src/api/mocks/setup.ts | 17 + frontend/src/api/mocks/userHandlers.ts | 188 + frontend/src/api/schema/openapi.json | 1651 +++++ frontend/src/api/types/schema.d.ts | 1512 ++++ frontend/src/assets/base.css | 26 + frontend/src/assets/logo.svg | 1 + frontend/src/assets/main.css | 1 + frontend/src/components/Alert.vue | 15 + frontend/src/components/Breadcrumbs.vue | 36 + frontend/src/components/Dashboard.vue | 14 + .../src/components/DepartmentUpsertModal.vue | 113 + frontend/src/components/Headbar.vue | 135 + .../src/components/PermissionUpsertModal.vue | 103 + frontend/src/components/PopupModal.vue | 52 + .../src/components/PositionUpsertModal.vue | 102 + frontend/src/components/RoleUpsertModal.vue | 107 + .../src/components/SchedulerUpdateModal.vue | 88 + frontend/src/components/Sidebar.vue | 147 + frontend/src/components/TablePagination.vue | 78 + frontend/src/components/UserUpsertModal.vue | 150 + frontend/src/composables/auth/useUserAuth.ts | 71 + .../department/useDepartmentBind.ts | 38 + .../department/useDepartmentDelete.ts | 18 + .../department/useDepartmentQuery.ts | 45 + .../department/useDepartmentUpsert.ts | 18 + frontend/src/composables/job/useJobControl.ts | 38 + frontend/src/composables/job/useJobQuery.ts | 36 + frontend/src/composables/job/useJobUpdate.ts | 24 + frontend/src/composables/page.ts | 67 + .../permission/usePermissionBind.ts | 36 + .../permission/usePermissionDelete.ts | 19 + .../permission/usePermissionQuery.ts | 48 + .../permission/usePermissionUpsert.ts | 19 + .../composables/position/usePositionBind.ts | 38 + .../composables/position/usePositionDelete.ts | 18 + .../composables/position/usePositionQuery.ts | 45 + .../composables/position/usePositionUpsert.ts | 16 + frontend/src/composables/role/useRoleBind.ts | 28 + .../src/composables/role/useRoleDelete.ts | 19 + .../src/composables/role/useRoleUpsert.ts | 17 + .../src/composables/role/useRolesQuery.ts | 61 + .../src/composables/store/useAlertStore.ts | 57 + .../src/composables/store/useAuthStore.ts | 28 + .../src/composables/store/useUserStore.ts | 44 + .../src/composables/user/useUserDelete.ts | 19 + frontend/src/composables/user/useUserQuery.ts | 50 + .../src/composables/user/useUserUpsert.ts | 20 + frontend/src/main.ts | 33 + frontend/src/router/constants.ts | 63 + frontend/src/router/guards.ts | 47 + frontend/src/router/index.ts | 29 + frontend/src/router/modules/auth.ts | 19 + frontend/src/router/modules/dashboard.ts | 67 + frontend/src/router/modules/error.ts | 12 + frontend/src/router/modules/user.ts | 70 + frontend/src/types/alert.d.ts | 6 + frontend/src/types/department.d.ts | 5 + frontend/src/types/error.ts | 53 + frontend/src/types/permission.d.ts | 5 + frontend/src/types/position.d.ts | 4 + frontend/src/types/role.d.ts | 5 + frontend/src/types/router.d.ts | 11 + frontend/src/types/user.d.ts | 8 + frontend/src/utils/errorHandler.ts | 50 + frontend/src/views/BindDepartmentView.vue | 242 + frontend/src/views/BindPermissionView.vue | 241 + frontend/src/views/BindPositionView.vue | 233 + frontend/src/views/BindRoleView.vue | 235 + frontend/src/views/DepartmentView.vue | 233 + frontend/src/views/LoginView.vue | 76 + frontend/src/views/NotFound.vue | 17 + frontend/src/views/OverView.vue | 584 ++ frontend/src/views/PermissionView.vue | 214 + frontend/src/views/PositionView.vue | 224 + frontend/src/views/RoleView.vue | 233 + frontend/src/views/SchedulerView.vue | 277 + frontend/src/views/SettingsView.vue | 154 + frontend/src/views/UserView.vue | 288 + frontend/tsconfig.app.json | 12 + frontend/tsconfig.json | 14 + frontend/tsconfig.node.json | 19 + frontend/tsconfig.vitest.json | 10 + frontend/vite.config.ts | 29 + frontend/vitest.config.ts | 26 + 220 files changed, 23768 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 assets/class.png create mode 100644 assets/depbind.png create mode 100644 assets/posbind.png create mode 100644 assets/qq.jpg create mode 100644 backend/.dockerignore create mode 100644 backend/.env create mode 100644 backend/.gitignore create mode 100644 backend/build.gradle.kts create mode 100644 backend/gradle.properties create mode 100644 backend/gradle/wrapper/gradle-wrapper.jar create mode 100644 backend/gradle/wrapper/gradle-wrapper.properties create mode 100755 backend/gradlew create mode 100644 backend/gradlew.bat create mode 100644 backend/pmd-rules.xml create mode 100644 backend/settings.gradle.kts create mode 100644 backend/src/main/java/com/zl/mjga/ApplicationService.java create mode 100644 backend/src/main/java/com/zl/mjga/config/CorsConfig.java create mode 100644 backend/src/main/java/com/zl/mjga/config/QuartzConfig.java create mode 100644 backend/src/main/java/com/zl/mjga/config/cache/CacheConfig.java create mode 100644 backend/src/main/java/com/zl/mjga/config/security/HttpFireWallConfig.java create mode 100644 backend/src/main/java/com/zl/mjga/config/security/Jwt.java create mode 100644 backend/src/main/java/com/zl/mjga/config/security/JwtAuthenticationFilter.java create mode 100644 backend/src/main/java/com/zl/mjga/config/security/JwtAuthenticationToken.java create mode 100644 backend/src/main/java/com/zl/mjga/config/security/PasswordEncoderConfig.java create mode 100644 backend/src/main/java/com/zl/mjga/config/security/RestfulAuthenticationEntryPointHandler.java create mode 100644 backend/src/main/java/com/zl/mjga/config/security/UserDetailsServiceImpl.java create mode 100644 backend/src/main/java/com/zl/mjga/config/security/WebSecurityConfig.java create mode 100644 backend/src/main/java/com/zl/mjga/controller/DepartmentController.java create mode 100644 backend/src/main/java/com/zl/mjga/controller/IdentityAccessController.java create mode 100644 backend/src/main/java/com/zl/mjga/controller/PositionController.java create mode 100644 backend/src/main/java/com/zl/mjga/controller/SchedulerController.java create mode 100644 backend/src/main/java/com/zl/mjga/controller/SignController.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/PageRequestDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/PageResponseDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/department/DepartmentBindDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/department/DepartmentQueryDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/department/DepartmentRespDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/department/DepartmentUpsertDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/permission/PermissionBindDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/position/PositionBindDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/position/PositionQueryDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/position/PositionRespDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/position/PositionUpsertDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/role/RoleBindDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/scheduler/JobKeyDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/scheduler/JobTriggerDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/scheduler/QueryDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/scheduler/TriggerDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/scheduler/TriggerKeyDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/sign/SignInDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/sign/SignUpDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/PermissionQueryDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/PermissionRespDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/PermissionUpsertDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/RoleDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/RoleQueryDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/RoleUpsertDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/UserQueryDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/UserRolePermissionDto.java create mode 100644 backend/src/main/java/com/zl/mjga/dto/urp/UserUpsertDto.java create mode 100644 backend/src/main/java/com/zl/mjga/exception/BusinessException.java create mode 100644 backend/src/main/java/com/zl/mjga/exception/GlobalExceptionHandler.java create mode 100644 backend/src/main/java/com/zl/mjga/job/DataBackupJob.java create mode 100644 backend/src/main/java/com/zl/mjga/job/EmailJob.java create mode 100644 backend/src/main/java/com/zl/mjga/model/urp/BindState.java create mode 100644 backend/src/main/java/com/zl/mjga/model/urp/EPermission.java create mode 100644 backend/src/main/java/com/zl/mjga/model/urp/ERole.java create mode 100644 backend/src/main/java/com/zl/mjga/model/urp/SchedulerType.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/DepartmentRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/PermissionRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/PositionRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/QrtzJobRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/RolePermissionMapRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/RoleRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/UserDepartmentMapRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/UserPositionMapRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/UserRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/repository/UserRoleMapRepository.java create mode 100644 backend/src/main/java/com/zl/mjga/service/CacheService.java create mode 100644 backend/src/main/java/com/zl/mjga/service/DepartmentService.java create mode 100644 backend/src/main/java/com/zl/mjga/service/IdentityAccessService.java create mode 100644 backend/src/main/java/com/zl/mjga/service/PositionService.java create mode 100644 backend/src/main/java/com/zl/mjga/service/SchedulerService.java create mode 100644 backend/src/main/java/com/zl/mjga/service/SignService.java create mode 100644 backend/src/main/resources/application.yml create mode 100644 backend/src/main/resources/db/migration/V1_0_0__init_table.sql create mode 100644 backend/src/main/resources/db/migration/V1_0_1__insert_init_table.sql create mode 100644 backend/src/main/resources/db/migration/V1_0_2__init_quartz.sql create mode 100644 backend/src/test/java/com/zl/mjga/integration/cache/CacheTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/e2e/SignE2ETest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/mvc/JacksonAnnotationMvcTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/mvc/SignMvcTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/mvc/UserRolePermissionMvcTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/persistence/AbstractDataAccessLayerTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/persistence/JooqTutorialsTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/persistence/SortByDALTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/persistence/UserRolePermissionDALTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/quartz/AbstractQuartzTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/quartz/DataBackupJobTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/quartz/SendEmailJobTest.java create mode 100644 backend/src/test/java/com/zl/mjga/integration/quartz/TaskManagementTest.java create mode 100644 backend/src/test/java/com/zl/mjga/security/AuthenticationAndAuthorityTest.java create mode 100644 backend/src/test/java/com/zl/mjga/unit/JwtUnitTest.java create mode 100644 backend/src/test/java/com/zl/mjga/unit/PageRequestDtoUnitTest.java create mode 100644 backend/src/test/java/com/zl/mjga/unit/SignUnitTest.java create mode 100644 backend/src/test/java/com/zl/mjga/unit/UserRolePermissionUnitTest.java create mode 100644 backend/src/test/resources/db/migration/test/V1_0_0__init_table.sql create mode 100644 backend/src/test/resources/db/migration/test/V1_0_2__init_quartz.sql create mode 100644 frontend/.env create mode 100644 frontend/.gitignore create mode 100644 frontend/.nvmrc create mode 100644 frontend/.vscode/extensions.json create mode 100644 frontend/.vscode/settings.json create mode 100644 frontend/biome.json create mode 100644 frontend/e2e/tsconfig.json create mode 100644 frontend/e2e/vue.spec.ts create mode 100644 frontend/env.d.ts create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/playwright.config.ts create mode 100644 frontend/public/favicon.ico create mode 100644 frontend/public/mockServiceWorker.js create mode 100644 frontend/public/trump.jpg create mode 100644 frontend/src/App.vue create mode 100644 frontend/src/api/client.ts create mode 100644 frontend/src/api/mocks/authHandlers.ts create mode 100644 frontend/src/api/mocks/departmentHandlers.ts create mode 100644 frontend/src/api/mocks/permissionHandlers.ts create mode 100644 frontend/src/api/mocks/positionHandlers.ts create mode 100644 frontend/src/api/mocks/roleHandlers.ts create mode 100644 frontend/src/api/mocks/schedulerHandlers.ts create mode 100644 frontend/src/api/mocks/setup.ts create mode 100644 frontend/src/api/mocks/userHandlers.ts create mode 100644 frontend/src/api/schema/openapi.json create mode 100644 frontend/src/api/types/schema.d.ts create mode 100644 frontend/src/assets/base.css create mode 100644 frontend/src/assets/logo.svg create mode 100644 frontend/src/assets/main.css create mode 100644 frontend/src/components/Alert.vue create mode 100644 frontend/src/components/Breadcrumbs.vue create mode 100644 frontend/src/components/Dashboard.vue create mode 100644 frontend/src/components/DepartmentUpsertModal.vue create mode 100644 frontend/src/components/Headbar.vue create mode 100644 frontend/src/components/PermissionUpsertModal.vue create mode 100644 frontend/src/components/PopupModal.vue create mode 100644 frontend/src/components/PositionUpsertModal.vue create mode 100644 frontend/src/components/RoleUpsertModal.vue create mode 100644 frontend/src/components/SchedulerUpdateModal.vue create mode 100644 frontend/src/components/Sidebar.vue create mode 100644 frontend/src/components/TablePagination.vue create mode 100644 frontend/src/components/UserUpsertModal.vue create mode 100644 frontend/src/composables/auth/useUserAuth.ts create mode 100644 frontend/src/composables/department/useDepartmentBind.ts create mode 100644 frontend/src/composables/department/useDepartmentDelete.ts create mode 100644 frontend/src/composables/department/useDepartmentQuery.ts create mode 100644 frontend/src/composables/department/useDepartmentUpsert.ts create mode 100644 frontend/src/composables/job/useJobControl.ts create mode 100644 frontend/src/composables/job/useJobQuery.ts create mode 100644 frontend/src/composables/job/useJobUpdate.ts create mode 100644 frontend/src/composables/page.ts create mode 100644 frontend/src/composables/permission/usePermissionBind.ts create mode 100644 frontend/src/composables/permission/usePermissionDelete.ts create mode 100644 frontend/src/composables/permission/usePermissionQuery.ts create mode 100644 frontend/src/composables/permission/usePermissionUpsert.ts create mode 100644 frontend/src/composables/position/usePositionBind.ts create mode 100644 frontend/src/composables/position/usePositionDelete.ts create mode 100644 frontend/src/composables/position/usePositionQuery.ts create mode 100644 frontend/src/composables/position/usePositionUpsert.ts create mode 100644 frontend/src/composables/role/useRoleBind.ts create mode 100644 frontend/src/composables/role/useRoleDelete.ts create mode 100644 frontend/src/composables/role/useRoleUpsert.ts create mode 100644 frontend/src/composables/role/useRolesQuery.ts create mode 100644 frontend/src/composables/store/useAlertStore.ts create mode 100644 frontend/src/composables/store/useAuthStore.ts create mode 100644 frontend/src/composables/store/useUserStore.ts create mode 100644 frontend/src/composables/user/useUserDelete.ts create mode 100644 frontend/src/composables/user/useUserQuery.ts create mode 100644 frontend/src/composables/user/useUserUpsert.ts create mode 100644 frontend/src/main.ts create mode 100644 frontend/src/router/constants.ts create mode 100644 frontend/src/router/guards.ts create mode 100644 frontend/src/router/index.ts create mode 100644 frontend/src/router/modules/auth.ts create mode 100644 frontend/src/router/modules/dashboard.ts create mode 100644 frontend/src/router/modules/error.ts create mode 100644 frontend/src/router/modules/user.ts create mode 100644 frontend/src/types/alert.d.ts create mode 100644 frontend/src/types/department.d.ts create mode 100644 frontend/src/types/error.ts create mode 100644 frontend/src/types/permission.d.ts create mode 100644 frontend/src/types/position.d.ts create mode 100644 frontend/src/types/role.d.ts create mode 100644 frontend/src/types/router.d.ts create mode 100644 frontend/src/types/user.d.ts create mode 100644 frontend/src/utils/errorHandler.ts create mode 100644 frontend/src/views/BindDepartmentView.vue create mode 100644 frontend/src/views/BindPermissionView.vue create mode 100644 frontend/src/views/BindPositionView.vue create mode 100644 frontend/src/views/BindRoleView.vue create mode 100644 frontend/src/views/DepartmentView.vue create mode 100644 frontend/src/views/LoginView.vue create mode 100644 frontend/src/views/NotFound.vue create mode 100644 frontend/src/views/OverView.vue create mode 100644 frontend/src/views/PermissionView.vue create mode 100644 frontend/src/views/PositionView.vue create mode 100644 frontend/src/views/RoleView.vue create mode 100644 frontend/src/views/SchedulerView.vue create mode 100644 frontend/src/views/SettingsView.vue create mode 100644 frontend/src/views/UserView.vue create mode 100644 frontend/tsconfig.app.json create mode 100644 frontend/tsconfig.json create mode 100644 frontend/tsconfig.node.json create mode 100644 frontend/tsconfig.vitest.json create mode 100644 frontend/vite.config.ts create mode 100644 frontend/vitest.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..887efcf --- /dev/null +++ b/.gitignore @@ -0,0 +1,171 @@ +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* + + +# 如何在这个地方引用 backend 和 frontend 下级目录中的 .gitignore 中的规则?我需要全部给他们前面加上 backend/ 和 frontend/ 前缀吗? diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..7572a47 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Chuck + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..fd3f8fc --- /dev/null +++ b/README.md @@ -0,0 +1,133 @@ +# 知路管理后台 + +一个重新构思、重新设计、重新开发的现代化 Java 前后端脚手架。整合大量高效现代化技术栈,全网唯一。 + +- [知路管理后台](#%E7%9F%A5%E8%B7%AF%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0) + - [尊重设计与编码规范](#%E5%B0%8A%E9%87%8D%E8%AE%BE%E8%AE%A1%E4%B8%8E%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83) + - [正确的业务设计与建模](#%E6%AD%A3%E7%A1%AE%E7%9A%84%E4%B8%9A%E5%8A%A1%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%BB%BA%E6%A8%A1) + - [专属业务功能](#%E4%B8%93%E5%B1%9E%E4%B8%9A%E5%8A%A1%E5%8A%9F%E8%83%BD) + - [云原生开发与秒级部署](#%E4%BA%91%E5%8E%9F%E7%94%9F%E5%BC%80%E5%8F%91%E4%B8%8E%E7%A7%92%E7%BA%A7%E9%83%A8%E7%BD%B2) + - [自动免费的 HTTPS 证书](#%E8%87%AA%E5%8A%A8%E5%85%8D%E8%B4%B9%E7%9A%84-https-%E8%AF%81%E4%B9%A6) + - [自动化数据库管理](#%E8%87%AA%E5%8A%A8%E5%8C%96%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86) + - [其他更多特性](#%E5%85%B6%E4%BB%96%E6%9B%B4%E5%A4%9A%E7%89%B9%E6%80%A7) + - [技术选型](#%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B) + +## 产品社群 + +**加 QQ 群,获取一键部署脚本** +QQ群:638254979 +**加微信,获取 VIP 客户支持(喂饭级技术讲解+预购所有课程)** +微信:Chuck9996 +**相关课程** +已上线: +[《重构方法论与单元测试的艺术》](https://www.bilibili.com/cheese/play/ep1615343) +敬请期待:(加群获取) +[《知路脚手架喂饭级教程》]() +[《领域驱动没那么复杂-贫民项目的领域架构实战》]() + +## 尊重设计与编码规范 + +本系统在开发过程中以《TDD测试驱动开发》为指导思想,在业务代码中贯彻落实了严格、规范、优良的编码与设计;并编写了大量的单元测试、集成测试、切片测试为你的应用保驾护航。 + +本系统的测试代码全网独一无二,内容无可挑剔;其中包含大量编码设计的哲学理念。 + +具体内容请参考 test 目录,并辅以视频教程进行阅读,它将会使你受益匪浅。 +[👉《重构方法论与单元测试的艺术》👈](https://www.bilibili.com/cheese/play/ep1615343) +![class](/assets/class.png) + +吃透这款脚手架与配套课程,从今以后就不是别人 Review 你的代码,而是你对别人的代码进行指摘。 + +## 正确的业务设计与建模 + +大部分同类产品,为了规避某些复杂的业务逻辑,强行改变本来的业务形态:如强行把某些多对多关系的业务设计为一对多等等。**这叫做鸵鸟战术:即把头埋进沙子里面假装这件事情不存在。** + +这样的设计不仅没有解决问题,反而增加了问题。一个无法解决问题的管理系统是没有价值的。 + +而知路管理后台从一开始就致力于正确的业务建模——当面对复杂的产品逻辑时,我们不采取鸵鸟战术,而是采取以下两个手段直面困难: + +- 在框架层面进行抽象与封装 +- 使用现代化的技术选型从根本上解决 + +使用本系统构建的系统,只需要几行代码即可轻松编写之前难以实现的复杂业务逻辑,让开发者倍感轻松。 + +### 专属业务功能 + +得益于上述设计思想,在本系统中用户不仅可以担任多个岗位,还能够隶属于多个部门,同时还可拥有多个部门的数据权限。另外,岗位和部门还可以相互配合,提供更加复杂的产品逻辑的实现支持。 + +![depbind](/assets/depbind.png) +![posbind](/assets/posbind.png) + +今后还将推出更多复杂业务逻辑的解决方案,敬请期待。 + +## 云原生开发与零配置部署 + +知路管理后台是完全围绕云原生进行设计开发的。这意味着你只需要三个步骤就可以部署完整个前后端系统: + +1. 拥有一台安装了操作系统的电脑 +2. 安装 Docker +3. 下载代码,一键运行部署脚本 + +你不需要安装 Java,不需要安装 Javascript,不需要安装 Vue,不需要安装 mysql,不需要配置这个,修改那个。 + +无论你是 Linux 还是 Mac 还是 Windows,都能够在 2 分钟内一键部署好整个系统。 + +**获取部署脚本,请加 QQ 群:638254979** + +## 自动免费的 HTTPS 证书 + +本系统会在「开发环境->测试环境->生产环境」自动生成并配置免费的 Https 证书供你使用。不需要任何配置,只要运行部署脚本即可马上获取这项功能。 + +如果你是一个有经验的开发者,尤其是前端开发者,就应该能明白在开发和测试环境使用 Https 调试是多么的重要。 +>注意,开发环境和测试环境的证书是自签名的,这意味着访问网站时需要手动点击信任按钮 + +## 自动化数据库管理 + +本系统会自动管理将所有数据库功能,包括自动建表、自动修改、删除字段、自动增加索引等; +不仅如此,脚手架还会在代码库中对你的修改历史进行版本管理。从而方便你对任意时间点的数据库修改进行回朔。 + +总而言之,你唯一需要做的就是业务编码,然后把其他复杂的事情交给脚手架。 + +## 更多特性 + +- 开发、测试、生产全生态链云原生环境 +- 通过 .env 管理开发、测试、生产环境所有账号密码。 +- 在框架层面集成的代码格式化与规范检查 +- 自动生成数据库建模、DAO、单表 CRUD +- 其他更多功能 + +## 部分技术选型 + +**前端** + +| 框架 | 版本 | +|---|---| +| node | lts/jod | +| vue-family | ^3.5 | +| vite-family | ^6.2.1 | +| tailwindcss | ^4.0 | +| zod | ^3.2 | +| pinia |^3.0 | +| biome |^1.9.4 | +| playwright |^1.51.1 | +| msw |^1.51.1 | +| openapi-typescript | ^7.6.1 | +| typescript | ~5.8.0 | +| docker | ^27 | + +**后端** + +| 技术 | 版本 | +|---|---| +| java | 21 | +| spring-boot | 3.3.9 | +| spring-security | 3.3.9 | +| spring-cache | 3.3.9 | +| spring-doc | 2.6.0 | +| test-containers | 1.20.6 | +| jooq | 3.19.18 | +| postgresql | 17.3 | +| flyway | 11.4 | +| spotless | 7.0.2 | +| pmd | 7.9.0 | +| gradle | 8.13 | +| docker | ^27 | diff --git a/assets/class.png b/assets/class.png new file mode 100644 index 0000000000000000000000000000000000000000..313acf52d031d03ddd1c69c3e6335a823672e865 GIT binary patch literal 263264 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 ~PV;|8cN3%D^vrcW5lVX`0{>uZI3ZEv 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 N6$MTCa@l7A{||tHNrM0Y literal 0 HcmV?d00001 diff --git a/assets/depbind.png b/assets/depbind.png new file mode 100644 index 0000000000000000000000000000000000000000..33821c975479b9f7f323b2d8f2c4728b25cb0c72 GIT binary patch literal 365517 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�u!#b%u- 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

cy|4hA`jb# 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°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¨sUU9rvDz-9Zj>*n(8_E)wG;p71g7n=a8b9l9DU zD|qmxOtiluU4QWS`}VCbnB2D?`ca#F!%%FvGMBbDVzub}_Zfj@RbNyLP7K*~WJ{S} zrOB6k6w!0Tdm=8Y0Q#u+VfC{pC3FS!x!qlrM!Ei)pjr54yX&i^j=~&8ZaK`hQuL0Nz-|=tpj2v!y>wuY zFxAv8AMa<2zJDB$Kk~8zt;&o;BUY86t=@bk;K5PwP}xbJm-`2$Lzdm}jt}csv}(}c z{$f7!Y$dMpDw>NXIk@|5tGGQJBN1`0epb@F03N9Wa)KsCZUhsiEohhX}7z zSsO#jt@lGb&W<#72*HmNH<9nL?Xbjrt$Hb;=J2c{gk=rY@MzBpDWcBQx2JKx&L zba0C*T;|IbwhKKr!f0{2jK=}|v)9ymKP)SGTJTOCy??8tYe{FH{c+GxaT(&m(Q1MM zC@n|!HeP?vA59s*-ScT0J!*eM@-%^mmx^Do9*fazA%h|hn^*v;>w*19)VflS;Zf6$5w9bhBM24uwC4^w_P1(yA=Lx!5flg#Xh$5A z*6t?N+{q4s)Vy*HfK$@hlZ^HlbGrzo*7=HL9> z^{{T#*Z$_LvfWI71{*P~*jtBpPAJDMYX~htz1eXnD6IKJo%Zy*iE@uGeF@l>5{j!NMA`5w~UGh9{oM;;Ssjb zrTqS;g;~F1!zzFSWwwxjCGjX4@k7l=MWR|v36f{akJ=~K0P>p%=of`d&qmOf(D!Mj zTV7UQBd`(t(+e`WKG#L>ebxYEEXYJMp~Ni_Bn(P@RV^krw(7#*{2h}J0|zkJD%@KbnKThbBxl$h+4dhb zbe&a(lyw!Yxm|#bic})#-Y&ujg^4h=u^;l>W|g@R?i9P6?1ftXZ%g6NUwm%3$XjkV z?8NBFTPa$D5#bjt4%`848ym~hJ+;yWuq?N#D`E2vwAq>ISDZ9g+BwP(rpa8W!y6xOT6TR+o& z{JR>6jiGha@mZ@Hd1P?r@!1etE7zL&T8lYK#SY+%6CTv5D&JeLCh*exU8O*jGtfZ1 zIwmG-p5Etp7ll$8Ct@i58%ybXX(JHZn(thX3ha7Tv9<7qe?%0F4}pj0qGCjx69j*$ z%~8t%7r3w!5UeKH*ebGm`2Jf`y%QhL*()M?fu`1)+h6pV>Lc{#&TFx1PU9iH@II3o>xdDZ3>!0LhwQr*yJF*_=h<>$xN2eabIG6g^5G6$`m*C6Qp0hzqcl#ee zVleTSW+?1%x7nruj7Q!2SuUCad~)P#o{wHX=`f@=z~Di(v6i3tAOt_(Z|HQFv}YL! zN{^h4S?Hoi8EASDnbe}DjCn;H9i1B8gc2pLFiGfaQaM{2e%E%6q)WZJN0*d+G05OE zw{^)*4UMI4c%ivV5~F>^qslp<+wUcP_#tS%q^&$)V4}e`WGLqHr6~{V@WinYiZWXg%7fO@RM>508zI1NJ;|;+6IT**fiRBeaoig3p9xQqjiHOa7wD8=n-# zdLuUPrs77I`p1HN!@kciz{_d zn?n-8^!F?MI6XiZ2O+6oSk91ncqP=&X?5@| z4S#0HSbtDrhJJi_W*&bw?=I!C9x$Wsbnx3FCeTz443ms<>{w0rAb{Jsu2G^dHboI} z_Wb)e2y;(-?Y^^%M|OElRl`zP?MdRo!*%vQR=Zg;a3&=`iOoE`RGV~7-tt_FWp~Ku z#Ipd>lGmO;2ZHcSx#*0^S3iE~OE0nQ*36;oJ^T_c0sVFLZ40?gKyfL*O-MY@p$OZ< zFD^9U2Yj2p6}Kp^e!WQLt|P@1zH5+GMC(CMJ@^SBWAaJMzQLS2Gp)Gr%^j27}pO=r7=Dp ze=EH&l+T<&(buhpiqmj>(Y zn^f|4^=ELGq|@C2kz0vNFsSyaO{6|L+`2yo7;=5`{l-@Ku()2CKFhgz6280b&4e<+ zmlg#Y2_gu4pR5qlt6Gg+?n@zeTz{diEa}^^yYK|G4tCBL*{^H5gG?*>ao{&I+@|d- zrgtWmY(CHY{ZH&(nfmQ%0@`<%zKUqNubb>1ylQJvvLTu*XsubRLf%*H@kO&WcgU4f zUmbUy9vV^}l`(r|lgIF@La;|h&W;)S4wdzh->PX~vJcIOJWn82(3RlwW^0dibX*cH zjatS8I^7Qi>we8Ilht+^O<%Bb>%;a6%cc$-rgs_5rkN8y1E&v)W~^+SE^M`F;zC>e zD=XJXx_+5RQnF5s=PFCP7-!%){rJPsg^03GAxrK4@tBvR3uRr(N4~j3{!iwo=1!ebAX$Q8}EaNoUeICXWu)zI%()r5wiWe z;R#PGb2+9cbVwNbMW|S_XhR)MI0)n&+`Ao>32?I56K3QD!iR>~g$mLc%~vuDi=frW z=F27=v4GS_(lMzqUw6;CU*$(B*Q z5|nxsxKo@K2M{=w1l4HdT<2JgJ4(_nD+jb#w%+7aZ?2DcpXNY#;DN zIuC&LZ#KqQ@&q?yhkplbI&5>YjOH9gmtTIU<{N-Ta6)Fg>QWTCp4?uTEuRW+@4rjM zi3GE@8LJ`rIOh(O$24J$PS(n1K$1{DH=MoUuDyFI5a?yn5gI+Fp0%IDq8JcOt^5 zd$HOOZ>tcv9s`^QVZ{g!x(9;(_6~fz6~DarEDn5$2GZimU;p35-QPQ&F;%PCSzf?l zXTI18kgWND=3?3BFR_19qW$Ol0vG5ou#@Vn)%qJ%_0PBS|IN2e<2V+ZDvtff;bmiae3%G}K-q9$U@yFzx|1sf= z+-*LNv9x(fj_TU^(RnB3>3td_eErThW~LnQ_MQJ61=$O@6x04W?a&foCH}7Smg5mIqWbUcpJ-qj1awT1;CPe|1l-=xTcK-1@>6b z$8^=Z01PUa~^8xMAw=nd7e^Hfy#QWcH^QR%{-*EHS%j(~7^QTMZm!1FLaPxnL z&Tk#F$p3$ao5-y+?fc(Q&S?ilbRdp&@aOt7%Zydf+T^J~zvr?0#iE@JGl5xhFF6bf zTt}9))L%bdf1PU!oHPbDdd+Wi%#iEj3sT2W@4PWzH!a(~TYA^w)Y~BJ-v6WA5YjVS z5*_`Qzs0v7<<$vWF2ToD)4 zfD%AcZp^u&r{-Fr<&xt!nA~@fHWycv3(J4Ig`fF%R`dc>qgC$R(Am6ev7pY=ZRRGK!9^eP`+F71OsTht(O_Ss110Z<& z#E0vOQ!g0)FY1)%wvjNTgs4~J5^`u1F$u9vpF0d5_M)WVE4zR3^JJaz?UhTo$~oM_ z%kzq9pU#Td&fg5}k3sW~$(B^3{7m64jdn0QM0p?~5iK61BZ6dsuhRhyo?gaX_3i*k zv2VbNy?1~T<3+UouX-kj9AVCbvwqZC#Xcat`B`y7!XqLsxCB^UJgb8McqLC1)%xfV zy4qDIUCWa7w$U36I4~r<9V%MrtB2w>+$sis@J;Sdo1tzbcb4(FWKnSI=V4a)_QC6s z)-zO-vQ?(z#q(oJe!6SguETep0#iXpzhBM`pKmB9E$_+4c;cNaR)~1)Krmn0U^)4c zeheljSUP*_`5V4{g}Ht<+2Ygr8TR}Ub$F$0GCj4MSF)KAZc!3gte#2u>CcwYw^jbj zi^yT_@Z4~h8OkMl9Jua9QnG*dY5G>XH96n^{MFOdU~8`zFS^Y$6Jw-?>Iv_>e~ydH zg`Dj?C90ft^VCK+LxOvu6frDEbM3FZJX`BAW0|D%t=4q-AoQHp+=g^uz}0`fm#>6& zl8}`%P&AkG^G{QMyq4Kns3^aL;eFM@1i1Rdf#nm;d-RpwKRGa01%V`g^0rxWl zoGwyFak)jQ^Y2Wcbg5j`ShpGH1Y8;b!}KM?*+ljINbU96Lzgos0I@1|scy;ot4qvZ z9GLuZ)982ijhvx(opET@C-$GUkNW@sE`_Oq@A{E~$9neqpJrZp=8Yv}WrxC$L=2aLVt8vf%cOn(_@&VFTUFPMuzI{&~B% zzG`bvA}W`CKCS9U1AI%>5gnSh`CC?}9O5=oOCfxH)g_N0PdiNQa+~7J?_6~;D|PL= zj0$ndIa3U({bmP{8wXZ05B<>M+AlrTmIr?TE*ttQo$g|CtTBOEM|So>vQ(V%lhQfj z=9LkOVqukd&?1r8V~?e`d5ViW<~%PLr+uvo)UH^Y#SQ^dYthh>Mi7Ks)s6-$cO$1! zs2&{T6)y)*Nj44b&d9?BFYl5F)zqH!Z2fqXIOk%&SIoQKYfKeTjf(AMa`gPilC{!u zw!wH0yTXi$sp-tjF=Lg0JHacWj%@(c)va*y9JNcSg~)B4U9%E5ixc9wT#%8PD{dBRa>?8aKM zLFh(I#@O?zZF_!+^gVZQcE|ROZhv*G8MyUfXwcrx8jy4JjxWsEU*~^cdv$>0>NhlB zssJdL{aen3$Hr_BZg+=oQ(yw_Yv*Hv;3_vEh>8iNb-S z{Tb15l40uS4VDEOzi=(whIe0>o2_z#t)NU;XjvFSP{lwORcc+6l{y!{A+EX%XDX|$ z6=EO1-r*mTKSFD@(Uy<<8=>}&os{U7N0PjI&G|y#m-s*0F?fv7pwV;zd_@fwMyT9) zf!m`+U0m1w4nSXiO<6((anP6Sv4f#y)!}ON`=h#1TU2x%fWFN1f-54PMSuy~=iLXY z+dD%6H(sx2@w!c3`&r-aDr1IiBHq0Um?N3XA2dR_;R!zb&4=!=11QXG@8{ZN{QO(| zd5+uN&8EBuCEEr)#~J%0wVK<6y${)i5s4`?1lI;_0B(yku47G=n4rdh`JjFy%$|lG zU7i>K2Imh^>lelP0&Ym)vvS_ovc8!x(H#_j_mO(vL2z-`Y4AQksUbR%{QD>Vb&AA1 zx7+PdsQlqi4=U64HbZEmbRWj(u3j|Y?ve&o34qWPBaX;~^}0pb8Ava!??-=>=|-G%0) zIod3b8*6Iv1fe~x6@Z{sP8{E4StWpeT>&s@4MnsxVi{eSL3I zSTHKCp>RZ0+2c9?BTS~sQd~g9oRPR*6c-iE!DV;CkOz=kp;u;~ju`q*NytuUH^yJI05yjcG=1(ar|rOVplanXaMWA0IX9jQYu_HT`31IXzk;*}8(KlJ$x zGddK}Z*UKv9@A?okdO`J_r%MYdE)M^1G@wW@R(f2BSqFtEhY+QWXyJY4S0MBU;sW@ z)XITA=qB=BUqPNNye(lv*5(lfvO;VTh$`qxgT;ahVv zd3tf+4n=mx{%g|7Q+7~d$ZcEX!q^;i@*%5v_)Zi6jm!b;hKk}FEqci@wn4+S^9ua~ zB*`;lkQv08*-luWXD8TJdVf?qZuIl;+m2LphR%|SP6LmN*@@uw=M}^l02@kBT(vT{ z0&Tv=jZdC3LBYupBH9vkSBvBOYRiV&mPHGV~1F%o_5=&13LkIKhIY%qTe-P}Jdl`&J}9Cc|$3s=q8(6~4~;$6Q$jj#)zri6dpLBF6Hs z&Gc~Oj5_CPPKyegyD@U!sb6AhZZ1+3Q)wL!*C}UmI!_m`pPV~F%N}(v3bpwyll-kb>zV3mC(8SL&KbZk-P8BO0*&OIZynbSif81JRd_w(4gtl2(Z|8Dz_Qs%~v z$QRIEjXU?8Kk+TojvNxKXCU{WZ(?$uEhBs5JL3u^5%9^|7zwDG$Vv}suGVBb*h6jk zIlA{1etyC0rYEx>HzqJ)?1A@au&f6xzHd9B>I)Bi&|N_Vot#*#wy=JvZ>or0(m3$= zbUKUNsJ+>?>NfX8MAybMyNg0h)(Q@*U!B%Knc~(v8GIw&$tyU@_A?m2#JTfXK5Ldl zz-KodF{I18nG-U+3IcE`-Hp@3Bv}~p2p@at5i#}nie*jP)weUuxnvLl5mefE${sr1 zkbyEN%t?(sPU+4Snh4Ae+}a0h#C4xkwblkrKHv4pXsBnS4c(YmbDNm#5*;TI^158ZHVG#%qdrG>ihqzj)FJ|AQ9;ed z=#Q568zNC~Hl1++M6vgL7T7i5)ST&srQu!UN`axqgy|2sOm9S3`Uf0fa#lGSG?Clu z;H!PJvPXHJiQV(tkFzbqs5Po+6^-Rg{v+zMOFlh$7_%_(vVlVLdZwiC+Yh}mxuFWo z<>DCmn)&@(ml4o;05;^e zsng99VJ5$QtPgJRBrsJToTS&Q!t4wx)=H*rKu;ch5e~j%np9P>TEUSinXY5X3s8ec;D2pok`8UfIqUw zKi?xF8&3Lkx6Ba^y-d|>zc8;(SC^SF!AD4jxrKfVq!{7=I=(TlB698L=fDI2^{xSH zkHgZ^s;}5mo7yH#o8W!GsJ|+@i13)GhAvHJhaNP z4hzg8!*S>D;mcpGw0Iag%lwv~d>6S}7jU#k28-H$|NB$Y(xk9Lb}z$5Rp)mro5_!c zBu8C~l_k+d;JqwC6_hVu-g3M_Yc=UE@?91=t~t$L7>iAf&n(PYXSk8< zprobp(Qbz60#X?I?Kx7lNm6FAQe;ydmi39B zt|*t zh2Y_b{dRkdk7{7_ANsd8Ok-9Sv}ih_NC{0j`5`S2_}$f@!*-$6(%jn8C)#E#7pk^w9I&PG@SHetr|^2tLFp48 zhA+4}rIN`d4OXyq7o+KlZ=;D@9vu6D-Z-xL2iEbTgY-@SX?U&Jpj`^uJQ?5g@=l4s za1h0?R|_uJ=PIrAd8nWy)T5-b9^&`eOx`*=E$lkGZH2S#?TC{wIUG9bUnh=IcQ2Jd zifSGo3B=wH$J;R^B_x)i{x_9BUeKs|Ns~|ldjP&1v)7ONuK;g)q4nZ|mcj0^lG84{ zNz2UudB+5Eg0gQ9WX*CAg4?x5tuJTQMxYzrVG?7ZGpxx*iI2OIX4p%;Jz;4%9Olqf z$f+@{h_Zs?3WYLhK~+MslK@00BOoxlroeoltG0h#4Z@5*{(LL*^?de1Y1Pkz9)0`u zcw5IJ$oHGvTuZnZxCBLhm#olm?NL{ktXxIRf)48$Nw?7GT1*gu^}{-RE=fSvt$kyL zqQKXz?EqU3=?XgOPuzencj~u)s#vW#0DY|=khIhtCb>6GvJ$GTU`+><;N{pzedppi zr;^8_yHcG};I7&$<8S8t13L2A3ZhC?X>6MylZUuQG}t=!=MM4n9A5i~Vyto9sB388 zpv9@c&PlaZuU8!3khV0JD%m&*4tOZK7SEihvxTBPU7_JgDi+Ws4wZt~9k#5<&6Vpv zcG=+KCMtztzV!IRJgR2_rZV)yd!I(=y_esAw1-d=S75U2%-ByPh)ZtRO^I-=ZJK_x zH}XjK?IehtCiOGVTy=%IuaE%XjNHmLs&XRunzI9ZH@!Mz`^~LS*xI>u@Bx?OVGVGo z1YfJ-1ER_;7R-pNZ{xkfjRCABv>O<&7GVsG2YL1SG}5Y3*4dt{}(ZpQ=B@@_(74)pLJ$Abas0$vwCSJ)fJeeLyEe z2W1)CXZ8!3pQ2MV&+N$~?X*ROr7W{QP}pM5rXm+!GCfJ}jMCV4c#MeExgi;HsRW8m zrqGKM+4Yx=6zYI;e^_eRFWc`Hg}}>1SSVGMs>y5Og>9cABCs2UKzjpQr45gPjIl|=%ihPy}$Exf?!lQ6vW$YIs(!1CT z#vE{qJ;5+jAA{TP1WsROXj7%}{a z92#Z?DZ|M0QP5BktyP}C=sP)!O*YsV^ZiWLuX|got&R()B*9vE>#~~HqZP7Mh+C1S zQH*H%FwwEIy!SlPv+Ul=cF2C!$N!fZ{ngV=+>3~a_dfSd3U@cwO;ceBl!F_U=5`Ed z&ySwI6(=TsFb2v%4INd?RO#2V88b1dp25=S6cLK&T$l)(My9r|ZtE{HkO$ce>&#pR7nu9azd`KJ0lN-z?lP=!A>cvh`nik=;9P7YYsQ zbRW6JZ1ydb{a#evq;b&@<`TQ~=v!PB9Dx$@T6y8HY$AHQq?xsp{xEq2Em1Pnlx7WZ zc_X+i{pAkNaPvb-2p6T^EVa6RZG%^lPc)^?&z1CmHH9*sM*2vTyeaM3>s@xx5o-4v z#$INs;JGMjO}Xs6-%kH{4TtT5JgzP3t!7U6L=W6(1IMCNy2`)A3qNSAy$Gg#FqDtL zG!zXP?8r0YbNx5hJ047IP~=2D3goPEv4SBGHRKt&xtYVKm06io;XB5I-8J4NE5r26 zp-v%w&&hpK8yq+vK(1P6ff`_e)iI?6+&)6Cy?DNt-WM4#cffO9oYSEKm^g9uK>e^# z#17|XG};N4C;JXGd(TQP9i=HO+UsH}xBl)ZxQPX)(YF?QcP?^9X})bAX!U>Asl>3% zTBhT%<%vo@%uW&6$+(%PY@p65W&ew!J@6QrimF^q!!+$maH5Kq$Ajsc`k*_hY^2Nw zU?7YeFoQd>_r!w|g8^-DW7I6Fa8|=pDcs+QxS`ip7Q4<)1A>LyHx(};@&8(5Y7}6; z0C|S@C>zi9w-|uqfvQO^X8bmK_b=pY8)LwSqri!|BJOV z05G8(20faDl^EVfsPD}a-{1fNU8fhR%JQ(@tgv6D13P7>@cXmyl5Le_1qZY zn_69q(f2)s?GqhJ^)F3I?+-!(x-#9FDbXF=yHRM9|IRU&vAh=B1%s;IyXklVh4r@x z&yi8oup7BYP-2O$iXeiC^+OH|4anM;^jn_NDiO}sWW3SnUj~XHJQK(k7aQ|TRH*x~fAJ_l z;?(JGjtNw^t$tDF%rl(glB~4^4YM&LL+*a;_)*Vm(R%#1^88uk=^d^3i~3m;EyJ!w zuI}ia->LD&*E08#W24YLWWs{h#k2bHLy{Ke@;{&^0jVTO&$XH8-)oyE8Tlp=fZY{N zCR@)%a8t2=5*h;A1sWhDa!C5PFhGe*P}|H+@2_!(H>JW(*%!_2Uc=-T$dmi%CqU?l zp4vWbUv;M)oBXCK^$)GMlAuCm;LP`(nKrq%)l*+e2<;Ki5!qYju%jtpm-K*VsH-$& zK2J|`W4u06aQ;~+vuJ^`-hg_E%sH({5H!!Ozt>sAqPXpBaz_l2bzbEeyXHHa96k(N zerI^}i_@s{vTbXlRjm1)wtOMCnIRhwfzg9d3yolx5lC|BFz!udCy!W@JnA~+9Fw(X z4IjK{EJ-LB-qIP}s)Ch&CW-Ge*z^v+(v|1)g|a)!sxC_|_pb2x)Ma|D^O_%|zt8sQ zOKL#MwpZwwWzZdS&5^tLwwpb7%`N-U4wWK&q3`Tv=AYZ;aHGLUxr+v*$yP*WBG!*k z>%6h7t{!W?;!&a|eLbb#p>Ei2tJzSs{azwcm)6$&Tm^-OIn*k}_dIFGXXW{8T#;0h zfMnShU&Pd1?wgFN1fRS?1!g3Z@S6yIk5FC1d;P1wx4QkgVtGGuWVWlq`%Ui6d>5ca zYquJ!O}n&}dQ=C^V;y>$068x78i({DUO%EumEwch$HXJX@b%F`XVRQ>gA*ppV~m$= z(!bUG_z;Nui8FZ3<`g!E*oD$1W+eHRco^)=zvp-Y;I%+DyWizJmF;0BSa{e=t7XmBW%57I)Ws1yB z^|(^8_GR9#L|;})E3jP;Et0INwc1vu{iSGyYf_xmsW)pNRF|G~iPjvUA~fH5u8gPC z>MKzJ3sh>~4qrt@*Ht&8Yvn6d<|lVzVA>(~$nK660q!{ArvFH>Ta+1T*O?3 zh24QSY>Sun3l`M@wleXQ{MJVaH?h_>PwsoS#bu4O)if=qgt%peUTADB&Wi68(|#9z z-?9t;JjCVRA$422OY==7AGX4NrGFWu_w2 z&6|2qzX0~bDs>*`-1d@0&XVrM39dZi=Ihq5tB6{k0(Plk=TVm2@-qAGpFtMjB5|6i zdNuF0ZmIAFiEUjVZ;0&6>-BLZzU$+5RQO(55H);j zSA*!)kr#gJ+uYr;4SdDzA{Rl$}&D zi!Xie1hxFz1yGFsHl%ff&Zl9UCKfjFOj(2Gb#srtc6jNXCokMk^J9c;ZHaJ|F^g=6y69LVoy9Xt zHG}{#P=GJyT!G>)XbTT=Y>g&2Kp9x9PEE#ZX6Hdyblu;P=GeA|3Yj4s>{P96Upgx; z7rI@sQb*6`5GMFL1`hRa7`QnfA`VI56_DHJ$Sr5`db6#bKy^P9wI{BcX7*J0je%Z! zGrnHHVmEEbJK|7-l+;=_tgu58mwb6=TJKg2pZdxIK=lQ)Kcvo`=uNd=8IW5JhLh(L zoH5+^%riw#o$}sPFKQ)f2AxyX05lPlv9skMJazPG#BpPIaHmao;{|P298xt zAqfIQNK(f$2(c7lajvGVSNz$Z8T4PR8&HPwH-U4t1eIq(WLU3RGvgH6uv!Cv{xv~5 zCoIGRoj^{Gzt@R8=SNtKE7V)&F-6rv+eAHe7_kj{uu2h|mCcNR)L>z0tQc>qFbMm< z`-YnKK7qE z#m(-&;cz5wlw3(Kd^wdTvfGNFi{&bAyP%3AIn``Ba{?&Xv z)7u&bimMeFb^Cdl7(B6ZCl~)^@h_I>Rg_bdt|?JLaPNk#?%*^8`HAFDg=@AFusI49 zdqcGz9Ss$BraqErc+_I4JiRk%H4Yq4g_Eqt`BQ@dPp_nKo~?v9M&J$3f!snR+Thf= z!=7m`6`56RymqUP(ojeZ4aNFW>Nx@tt0flddVUnvGVXFrv9qLM1TK*_KG#90`_31I zBIRgjd?}@xFNu_WG9CUuq(D znR%cGkvHmcb;CXkfMFz|XTyY!R0(5bDz89sU2iSc?cK=ixwVa5cJ{Tt`LFO`FjIdR$Z~iR*3>@>@<~OBEuI`<>);vxv8v(P@bL8mr$2mBk<5iCRmUFy4^0O)ka!e z)@aUR=uQ{g7%sfB%6)Qqp5olSp1gc1D%k&!y?KA{J#|RAbp&9sp2e-ecRZ*xqJynl z*R5(M-_F-5CoaAsQ^!`M+kO(`IHt(VEeDNjjz8w~#j}^&y9tz0X&w92CQW=-2y*3N z0{vrtm}ii_yi(;Xil67PUKH(rfEn{6A^)A?$cZ)!j8F53^*MorS z(*w#8H}`HdZZraMAPx`oT|GW zzCR=JWurcgyw4|bH~R5T@&gF?dbQu~wh`98_lu`R`+l7t@1DZTd3`?C*^-t7hAHH_ zQYqRi;57X0!f^38L8FNBoCeD5yNoo{sqJh52v^>yU*3a(W6Smfk-Z{6z_>>_v@f$LYtE#w|30Wm-3pdlIo>cLt0X~=CAd=QLrrnbkdY$ zSn__gmI6|*ousR(g3cvrpC>MFmIndEl`xo0^0wKKK_!%$pkfy5SlCw$D7OsP_acfK zy7aTBcY`Qa%Zl$a-*nLZ#5-3T_~_}~eZR02;f;=}J`?7UO?~b zS227TD=NAo3FU%*elh{MG0>KxPz7?~yRra&PCr+Xu-&-~FSqhq3@@)Y4CJ{LOF&78 zFi4O1sSKKxFh(sTtJMQ@hjp#wTBCiczYjj|iJ^9da;?v1ooM;!h0l+KC~mmgQeUXDSWh zTndboKU{^Vfle0R8N`=Y2e*SbFx;zqcX?|}p~#p2<5c8yNTL%ng?r<2LciPE=bTdo z@y2B5Ps<>0zu8;hj~^2@@LyE3QJ_A;v_nj9N5_BXFSNgQQ z-`$d1o=%uc(9L+%A|gk*Kn>K*4QvmEr()uQx5jDk2buZyysC6q^=Z&13Tdd3tzV#0 z55*Y0t_IVfvCbQ*GZq|RIF59k6l&yj`DHGb&r9K>(PIah<=5OlWR;=~O4GPG@etzum@CjkVc?R% z*Sxm{4#ohNO|EVkKPs6w0H5BO`Ge%Y{r2HAMCQ#CDqj;yh1bE{#`a9wro%MVW8_|0@6UX+^r@P69AHGN!?X3*raNh9xPkW__DgBTjyhZ9 zP$eAg&p25#6O%S0na}H@Zie)Jk!5hzM?aO1_)Xax7@Vf7i(v*=l!gUk7YC&|(bd|W z&TCIpEEd@dy};;_5D0O#bD~c|ROo<@!g5|z@52`RmAwLiOTHB*cIV@z;6;n9v~GZ| zUG$Dy;^Ei^qLsej-Uy4o+ZBX(BCgVkTxkL`v{|THXF6rs*B-rng4~KF^O&)0fqIU3 z+JwfFlfD#R^Vz-}B}eOBWV7;o=7+7FWbsdzEG-M{pIpghOZK$=@D8L=&NI^Sx-Tou z71`HLXPHJLYv~(bIlWp-wgwJ#_p*`v(%Kb7`G~WH4t%t*`d#N$YCOW_Os}KQ?${kF}L0t@7^xS zp-!0Z@)5d%VQKjF1jel#E90Al1SuP?vQgV9=Z~idK{3t#0xob$)oO?Hss-gxhH@vy z>ca!ZuY!8dUcLhd{Dk*3v;6iOlWrDk06X?MDPh^M+st&X95I4~7jvUua5wN?7t}X9 zJFtJbk}t2kBVk>Qw3t#IBrNbqZV{*lEp^9qU1ViWurSTQh# z@9Blh?iRi-vnvokY2e=wJTX$Dp0I2aCtE1aPTbQC$T(&i8r|11@@0j6wdAPlrWp|*-7u%evz z3tmz}<3gTT6}_Yw3R3QO5&b_$hRt8J)`7OSbha*L6H&(**9zQfU9lKqr!ui%#E*2` zhQ*iRfrzo$`+1(~rDH~3yJYGl&KN8ghqPmoAI#|xKY8x)&Z985!1YdHw05^|+W;4Z z#8II~*$Dx&4i8W4!pXuHZ<2*SMX%ww3938l9|2d44Z_xd^aWrv>5UG3#0?3#CMYbY zO=i0D-VcVB@7W6}e{W<+7sM>3D9dO&YC0E9|H#C=&~71Y55naZmwsZV+I-B=TBO1b z3Jin`>|w|gtsz>z=@V=o_L&E~9(oE?t;`6kXo0`-F>L_Em-!7`8#X6i01_;gfj2rL z49{&}xb(#|{7ly-3g1?3oM|2kHLWe(Z#jP~7xdLi8IWV|)dyQ8v#4L1884i9Uw3&( z#%(6Z&avWj;_f_m`9a1gUzr3cha>8{z3J)ro1;Ar#!Q?%9hI|hS!kfe=z7)27sRGQOfxKj-Ff)m7`6yo<{35j`X zn0t(c1AZo%JQc-ge$u?HMJMl8(#7)(Br_fB{$dM`g&{Ff9mL@FmyPxWNx5fSlCpl% zu&YO2=|Dz}bG0lWLE2V}Z#$9|eATyY2c=E77Id3eg<{FK4TnmR6qpaYqS=GEi#D#a z&-ZbO0Eqda+OT|XL(8_f7acYr=uvcvelZMp*a1ay^s|1sPjYLa+W~2Ue#-hpBZEuP z>^^(!1DK)DT!f8@>9y3@rvq;m$<0yOXW%vLC(Ojw*II@3Gw1JPnzr2vcp*w)hN9-~ z#a?zGoik$eCMg~%Qi}u@Y~q=KspGVBF;zxH#g7c1#4DtDR5b?#H{}lFCCxt1in&aF zbcY*)h0Jji-AsD+gPPWWYpUa+$xy@bJ;EMXL;4X%^G#Z_!uffpT5VGBn$}}o9rMe! z1@b#>VH0EfQ*R}T4|-(s2nLm+xt`P2bX?zitMk%w@rKcpip7nn2!=&WX|r1Un7QQu z`>!0W#+`EKD^Y0+A4Z4Lcm?tDD_&k-hGKiQ7+e)5pZiAa+-@)#k>`kSo2FzGe&kHZqp2`*++st7kxQpKKT*{?hMm zy2%qZ>qPlIqIAf{%YEz{1KUjug{2;o;uyOTZ6OzI%WHm?l3xpY$~{Y≥4N_#PK~ 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

7#@`&YQ= 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%0D|Nhe|`^UBbnqwPE4ZAFu(I zpJU6%xV&>#R=V<%1+DMzv=0}i3t8XWIo<}CZYvt#cBjY8cZ#e*`H#mkX})M_Z>dvm z(CrMT-MmEHIRA0a>&6m4XM7mmQy3VGCI}re8ZJ5ZiID*-dr&h=UofQZoZRpGyx*K+ z7#lfr=a?N$QBfb!+3-sBiWW5X=f2?^vCh1eH8Zi5V>?FK9-Ys6s9? zAtb%}oFT;CIj?yQe*a1|vakQSk5745??8yA$au8lN~S5L5$;{m#!oWzS6K~x^;zj; zr{6bX7vwsU{_3rN1PCl-YCrlD<;~xB@TbK;O!FsV{KGW=i5UNC z)c#?b|3s&MG|ivE>32Q8xA=!?{{O->J8T>`)bx281;q9N{}gWDzm;>-_>cbso)}CW literal 0 HcmV?d00001 diff --git a/assets/qq.jpg b/assets/qq.jpg new file mode 100644 index 0000000000000000000000000000000000000000..885ea6d8445182c9b6f3cb00165d5046d39fa076 GIT binary patch literal 475785 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 mnWBM z`}5gtKS%vmPUYCqYLu+GxfNQ&MkdAtfDI%3lSsx1*LJ$NQ56?N%_v$uE1` z1uOQ_)d{zZ{z4B;#QQ9JNlf=CLp+2~Jg~p})OA}5*H_YWQa1czf+a6VJak1=RhuzH zl+kdpRu%ku1Yx&>Nk^Ss-AWrTq#a!9uXWvC>mD%4MIR+QDNiHc2INT%j566Y?TC^C zi}m#R-Em=e8vbWz=QhVZwCo%boKLX&8s9-JQN5}a97hkMWNg==} zgIPczqN5#^;I>s5{Rd}|MLYZn{8^r!sdao7cgRmS$Bg?gAOYyes6XpW6+@V(zkBC@ z7sXliz6SY#-A?2_ptdI zqUP;8BA5jMYaT}UH>@g9)T*oZ##0HG^-igNm+qfxH}I7fL3TNIdD()8nxJg?)Gddo z&9U}_c#GAhKSi%|j8|QwWUU7Y4G(X?HH@@P$OF_PRT5otSY;sivhuuL%8v4t&s|OK zrf`<()R^KrM5#I~@aLC~7X`&Kq*=Czp{U~W$H?cGgeRMw=g6~#r;xyqkh6i&rQtZs z*cxJ5HEV)6}8d)|}5~z0dC3Na=%h1L-_QnERFX z5*obQ6PmquBS$tGGf8Xb0^oXwA|H;=>r`AMmHHza;S?VO-cE|OJpWF0h|FEv6=E70 zs!{HO-s1wJ$eU!<+X(hTizrWdXOo-xV}m zU3+z;ndmNng{!up0saf{y9PXJ2rPRonexg$TNFtQ50!TTC z^V=nW1mAax>A#7IAej9#)8+Xlq4zx8lOZqW{G|E{Fi!QLz_L>V?rv9p>sDOk^JiZh z%kk|1&XRQ_@=%cncT;!*DCVauA4+tnWN2*ioJpu!SdavAh4w{FBUWdK%7j0Zwe^)B z9qonC85~j6IqwskOfOwsahQ=3;F7fPtM>#OB18X8UMoZI2$H+X z7m;6rud-8=>o=S;E9IdY|K0`eu-r9i&Eair+GLgQv!v@X)h>dgc&o16KB2*tF_ zTnO~^Al$Jpy6u2w97<%*QNq{oYDh)~NjaGAR4nPoj0W24t$zaT%p)y0SUAyg4jS%t z<9o=%!xLqmW@fNsbfB=m_rr1<3V*tLJK~~Ge3)S+!dXN^z~G<@YcKWT3~?1uM&9&j z)sCFnfthFwl89n;KM;lQ#F?Gb5|O%&8o$N{)^hRknxFfP9p((}b%q567sh`K^OKh{ zJq+MW!w|{KzD^Aha!{&rXS&zTQ6i)}6uVGd2+GGRdfl5N6q?d;hKMImboBO0AThu_ zXq8|&Km@<7N8op=jJ4H5-5z#Y3pOsc-Qf^E+y6ohM(Rr7IBeu{L&R)iVP=l5Jf+?< zn3x-q)cu&pkm|?uCD6SA^cCaKJX+xp@7^yD!9UGpN9;#USjY1hKAs>&jaW`pD|t4O zkCt%?`8NRA>h~s6fKT_RLdolG|5oe`$V)5tIqlDf+Y^TDHlaE-t3asEdsXs|AIspv zCpY&p%cdmTfISb&QJRO>19uRg8^~sscL=+@tHItX6s;v}!)Ds0hHu=G+e4%4cO-?? zLb;@M#+1JBqWo>@r+K;4v?xnUOX_gl_k0(R^OJdo`5ZMUDK2mbyH{^9#v55l2zGSq zW=8(T;;r%jI~MDobPA)suG+1^<585XH!LAz+^<5NtuT6Sn;QRqES7A5ZT=`PH@rS{ zimS_sq)QpuX^SvUQBECW^WFqpGGdP5D2jjLr#`50O;t?$0R4WB|P?1P7mp zoXFBdzHBxzvDn1srGzo@jgUxB+=kB4owbdN6ayqh=fWD3Yn7OgaF2wRlz@O3^MsB; z=W(ahJ(iwBNL^7P^*9&>h8r2#is#~Ek;=ch+(mANKbAj{xG9N8z+>k;Xpg_gA%xa$QwTY-tZaQ$BQpb8­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థ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 { + archiveFileName.set("dbfirst.jar") +} + +tasks.withType { + useJUnitPlatform() +} + +tasks.test { + finalizedBy(tasks.jacocoTestReport) // report is always generated after tests run +} + +tasks.jacocoTestReport { + dependsOn(tasks.test) // tests are required to run before generating the report +} + +jacoco { + toolVersion = "0.8.12" + reportsDirectory.set(layout.buildDirectory.dir("reports/jacoco")) +} + +pmd { + sourceSets = listOf(java.sourceSets.findByName("main")) + isConsoleOutput = true + toolVersion = "7.9.0" + rulesMinimumPriority.set(5) + ruleSetFiles = files("pmd-rules.xml") +} + +spotless { + format("misc") { + // define the files to apply `misc` to + target("*.gradle.kts", "*.md", ".gitignore") + // define the steps to apply to those files + trimTrailingWhitespace() + leadingTabsToSpaces() + endWithNewline() + } + + java { + googleJavaFormat("1.25.2").reflowLongStrings() + formatAnnotations() + } + + kotlinGradle { + target("*.gradle.kts") // default target for kotlinGradle + ktlint() // or ktfmt() or prettier() + } +} + +jooq { + configuration { + generator { + database { + includes = ".*" +// excludes = "qrtz_.*" + name = "org.jooq.meta.extensions.ddl.DDLDatabase" + properties { + property { + key = "scripts" + value = "src/main/resources/db/migration/*.sql" + } + property { + key = "sort" + value = "semantic" + } + property { + key = "unqualifiedSchema" + value = "none" + } + property { + key = "defaultNameCase" + value = "lower" + } + property { + key = "logExecutedQueries" + value = "true" + } + property { + key = "logExecutionResults" + value = "true" + } + } + forcedTypes { + forcedType { + name = "varchar" + includeExpression = ".*" + includeTypes = "JSONB?" + } + forcedType { + name = "varchar" + includeExpression = ".*" + includeTypes = "INET" + } + } + } + generate { + isDaos = true + isRecords = true + isDeprecated = false + isImmutablePojos = false + isFluentSetters = true + isSpringAnnotations = true + isSpringDao = true + } + target { + packageName = "org.jooq.generated" + } + } + } +} diff --git a/backend/gradle.properties b/backend/gradle.properties new file mode 100644 index 0000000..1063152 --- /dev/null +++ b/backend/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.configuration-cache=false +org.gradle.parallel=true +org.gradle.caching=true diff --git a/backend/gradle/wrapper/gradle-wrapper.jar b/backend/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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 GZ~q4|mN%#X literal 0 HcmV?d00001 diff --git a/backend/gradle/wrapper/gradle-wrapper.properties b/backend/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..37f853b --- /dev/null +++ b/backend/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/backend/gradlew b/backend/gradlew new file mode 100755 index 0000000..f3b75f3 --- /dev/null +++ b/backend/gradlew @@ -0,0 +1,251 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/backend/gradlew.bat b/backend/gradlew.bat new file mode 100644 index 0000000..9d21a21 --- /dev/null +++ b/backend/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/backend/pmd-rules.xml b/backend/pmd-rules.xml new file mode 100644 index 0000000..4fe6859 --- /dev/null +++ b/backend/pmd-rules.xml @@ -0,0 +1,17 @@ + + + + This is a custom ruleset for our project. + + + + + + + + + diff --git a/backend/settings.gradle.kts b/backend/settings.gradle.kts new file mode 100644 index 0000000..532f3be --- /dev/null +++ b/backend/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "dbfirst" diff --git a/backend/src/main/java/com/zl/mjga/ApplicationService.java b/backend/src/main/java/com/zl/mjga/ApplicationService.java new file mode 100644 index 0000000..4c28dd7 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/ApplicationService.java @@ -0,0 +1,12 @@ +package com.zl.mjga; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication(scanBasePackages = {"com.zl.mjga", "org.jooq.generated"}) +public class ApplicationService { + + public static void main(String[] args) { + SpringApplication.run(ApplicationService.class, args); + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/CorsConfig.java b/backend/src/main/java/com/zl/mjga/config/CorsConfig.java new file mode 100644 index 0000000..8c795a7 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/CorsConfig.java @@ -0,0 +1,45 @@ +package com.zl.mjga.config; + +import java.util.Arrays; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class CorsConfig implements WebMvcConfigurer { + + @Value("${cors.allowedOrigins}") + private String allowedOrigins; + + @Value("${cors.allowedMethods}") + private String allowedMethods; + + @Value("${cors.allowedHeaders}") + private String allowedHeaders; + + @Value("${cors.allowedExposeHeaders}") + private String allowedExposeHeaders; + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**"); + } + + @Bean + public CorsConfigurationSource corsConfigurationSource() { + CorsConfiguration configuration = new CorsConfiguration(); + configuration.setAllowedOrigins(Arrays.asList(allowedOrigins.split(","))); + configuration.setAllowedMethods(Arrays.asList(allowedMethods.split(","))); + configuration.setAllowedHeaders(Arrays.asList(allowedHeaders.split(","))); + configuration.setExposedHeaders(Arrays.asList(allowedExposeHeaders.split(","))); + configuration.setAllowCredentials(true); + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", configuration); + return source; + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/QuartzConfig.java b/backend/src/main/java/com/zl/mjga/config/QuartzConfig.java new file mode 100644 index 0000000..de304d5 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/QuartzConfig.java @@ -0,0 +1,79 @@ +package com.zl.mjga.config; + +import com.zl.mjga.job.DataBackupJob; +import java.util.Map; +import java.util.Properties; +import javax.sql.DataSource; +import org.quartz.JobDataMap; +import org.quartz.JobDetail; +import org.quartz.Trigger; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.quartz.CronTriggerFactoryBean; +import org.springframework.scheduling.quartz.JobDetailFactoryBean; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; + +@Configuration +public class QuartzConfig { + + @Value("${spring.flyway.default-schema}") + private String defaultSchema; + + @Bean("emailJobSchedulerFactory") + public SchedulerFactoryBean emailJobSchedulerFactory(DataSource dataSource) { + SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean(); + schedulerFactory.setSchedulerName("email-scheduler"); + schedulerFactory.setDataSource(dataSource); + Properties props = getCommonProps(); + props.setProperty("org.quartz.threadPool.threadCount", "10"); + schedulerFactory.setQuartzProperties(props); + return schedulerFactory; + } + + @Bean("dataBackupJobDetail") + public JobDetailFactoryBean dataBackupJobDetail() { + JobDetailFactoryBean factory = new JobDetailFactoryBean(); + factory.setJobClass(DataBackupJob.class); + factory.setJobDataMap(new JobDataMap(Map.of("roleId", "Gh2mxa"))); + factory.setName("data-backup-job"); + factory.setGroup("batch-service"); + factory.setDurability(true); + return factory; + } + + @Bean("dataBackupSchedulerFactory") + public SchedulerFactoryBean dataBackupSchedulerFactory( + Trigger dataBackupTrigger, JobDetail dataBackupJobDetail, DataSource dataSource) { + SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean(); + schedulerFactory.setSchedulerName("data-backup-scheduler"); + Properties props = getCommonProps(); + props.setProperty("org.quartz.threadPool.threadCount", "10"); + schedulerFactory.setQuartzProperties(props); + schedulerFactory.setJobDetails(dataBackupJobDetail); + schedulerFactory.setTriggers(dataBackupTrigger); + schedulerFactory.setDataSource(dataSource); + + return schedulerFactory; + } + + private Properties getCommonProps() { + Properties props = new Properties(); + props.setProperty( + "org.quartz.jobStore.class", + "org.springframework.scheduling.quartz.LocalDataSourceJobStore"); + props.setProperty( + "org.quartz.jobStore.driverDelegateClass", + "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate"); + props.setProperty("org.quartz.jobStore.tablePrefix", String.format("%s.qrtz_", defaultSchema)); + return props; + } + + @Bean("dataBackupTrigger") + public CronTriggerFactoryBean dataBackupTrigger(JobDetail dataBackupJobDetail) { + CronTriggerFactoryBean factory = new CronTriggerFactoryBean(); + factory.setJobDetail(dataBackupJobDetail); + factory.setCronExpression("0 0/5 * * * ?"); + return factory; + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/cache/CacheConfig.java b/backend/src/main/java/com/zl/mjga/config/cache/CacheConfig.java new file mode 100644 index 0000000..0de18c1 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/cache/CacheConfig.java @@ -0,0 +1,31 @@ +package com.zl.mjga.config.cache; + +import com.github.benmanes.caffeine.cache.Caffeine; +import java.util.List; +import java.util.concurrent.TimeUnit; +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.cache.caffeine.CaffeineCache; +import org.springframework.cache.support.SimpleCacheManager; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@EnableCaching +@Configuration +public class CacheConfig { + + public static final String VERIFY_CODE = "verifyCode"; + + @Bean + public CacheManager cacheManager() { + SimpleCacheManager cacheManager = new SimpleCacheManager(); + cacheManager.setCaches(List.of(verifyCodeCache())); + return cacheManager; + } + + private CaffeineCache verifyCodeCache() { + return new CaffeineCache( + VERIFY_CODE, + Caffeine.newBuilder().maximumSize(1000).expireAfterWrite(60, TimeUnit.SECONDS).build()); + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/security/HttpFireWallConfig.java b/backend/src/main/java/com/zl/mjga/config/security/HttpFireWallConfig.java new file mode 100644 index 0000000..2f98d9e --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/security/HttpFireWallConfig.java @@ -0,0 +1,30 @@ +package com.zl.mjga.config.security; + +import jakarta.servlet.http.HttpServletResponse; +import java.io.PrintWriter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.MediaType; +import org.springframework.security.web.firewall.HttpFirewall; +import org.springframework.security.web.firewall.RequestRejectedHandler; +import org.springframework.security.web.firewall.StrictHttpFirewall; + +@Configuration +public class HttpFireWallConfig { + + @Bean + public HttpFirewall getHttpFirewall() { + return new StrictHttpFirewall(); + } + + @Bean + public RequestRejectedHandler requestRejectedHandler() { + return (request, response, requestRejectedException) -> { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType(MediaType.TEXT_PLAIN_VALUE); + try (PrintWriter writer = response.getWriter()) { + writer.write(requestRejectedException.getMessage()); + } + }; + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/security/Jwt.java b/backend/src/main/java/com/zl/mjga/config/security/Jwt.java new file mode 100644 index 0000000..59e804e --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/security/Jwt.java @@ -0,0 +1,79 @@ +package com.zl.mjga.config.security; + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTVerificationException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +@Getter +public class Jwt { + + private final String secret; + + private final int expirationMin; + + private final JWTVerifier verifier; + + public Jwt( + @Value("${jwt.secret}") String secret, @Value("${jwt.expiration-min}") int expirationMin) { + this.verifier = JWT.require(Algorithm.HMAC256(secret)).build(); + this.secret = secret; + this.expirationMin = expirationMin; + } + + public String getSubject(String token) { + return JWT.decode(token).getSubject(); + } + + public Boolean verify(String token) { + try { + verifier.verify(token); + return Boolean.TRUE; + } catch (JWTVerificationException e) { + return Boolean.FALSE; + } + } + + public String extract(HttpServletRequest request) { + String authorization = request.getHeader("Authorization"); + if (StringUtils.isNotEmpty(authorization) && authorization.startsWith("Bearer")) { + return authorization.substring(7); + } else { + return null; + } + } + + public String create(String userIdentify) { + return JWT.create() + .withSubject(String.valueOf(userIdentify)) + .withIssuedAt(new Date()) + .withExpiresAt( + Date.from( + LocalDateTime.now() + .plusMinutes(expirationMin) + .atZone(ZoneId.systemDefault()) + .toInstant())) + .sign(Algorithm.HMAC256(secret)); + } + + public void makeToken( + HttpServletRequest request, HttpServletResponse response, String userIdentify) { + response.addHeader("Authorization", String.format("Bearer %s", create(userIdentify))); + } + + public void removeToken(HttpServletRequest request, HttpServletResponse response) { + response.addHeader("Authorization", null); + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/security/JwtAuthenticationFilter.java b/backend/src/main/java/com/zl/mjga/config/security/JwtAuthenticationFilter.java new file mode 100644 index 0000000..14290f5 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/security/JwtAuthenticationFilter.java @@ -0,0 +1,44 @@ +package com.zl.mjga.config.security; + +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import java.io.IOException; +import lombok.RequiredArgsConstructor; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; +import org.springframework.web.filter.OncePerRequestFilter; + +@Slf4j +@Setter +@RequiredArgsConstructor +public class JwtAuthenticationFilter extends OncePerRequestFilter { + + private final Jwt jwt; + + private final UserDetailsServiceImpl userDetailsService; + + @Override + protected void doFilterInternal( + HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) + throws ServletException, IOException { + String token = jwt.extract(request); + if (StringUtils.isNotEmpty(token) && jwt.verify(token)) { + try { + UserDetails userDetails = userDetailsService.loadUserByUsername(jwt.getSubject(token)); + JwtAuthenticationToken authenticated = + JwtAuthenticationToken.authenticated(userDetails, token, userDetails.getAuthorities()); + authenticated.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); + SecurityContextHolder.getContext().setAuthentication(authenticated); + } catch (Exception e) { + log.error("jwt with invalid user id {}", jwt.getSubject(token), e); + } + } + filterChain.doFilter(request, response); + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/security/JwtAuthenticationToken.java b/backend/src/main/java/com/zl/mjga/config/security/JwtAuthenticationToken.java new file mode 100644 index 0000000..35e1668 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/security/JwtAuthenticationToken.java @@ -0,0 +1,57 @@ +package com.zl.mjga.config.security; + +import java.io.Serial; +import java.util.Collection; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.SpringSecurityCoreVersion; +import org.springframework.security.core.userdetails.UserDetails; + +@Setter +@Getter +@ToString +public class JwtAuthenticationToken extends AbstractAuthenticationToken { + + @Serial private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; + + private final Object principal; + + private String credentials; + + public JwtAuthenticationToken(Object principal, String credentials) { + super(null); + this.principal = principal; + this.credentials = credentials; + super.setAuthenticated(false); + } + + public JwtAuthenticationToken( + Object principal, String credentials, Collection authorities) { + super(authorities); + this.principal = principal; + this.credentials = credentials; + super.setAuthenticated(true); + } + + public static JwtAuthenticationToken unauthenticated(String userIdentify, String token) { + return new JwtAuthenticationToken(userIdentify, token); + } + + public static JwtAuthenticationToken authenticated( + UserDetails principal, String token, Collection authorities) { + return new JwtAuthenticationToken(principal, token, authorities); + } + + @Override + public String getCredentials() { + return this.credentials; + } + + @Override + public Object getPrincipal() { + return this.principal; + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/security/PasswordEncoderConfig.java b/backend/src/main/java/com/zl/mjga/config/security/PasswordEncoderConfig.java new file mode 100644 index 0000000..da6ef3d --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/security/PasswordEncoderConfig.java @@ -0,0 +1,14 @@ +package com.zl.mjga.config.security; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; + +@Configuration +public class PasswordEncoderConfig { + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/security/RestfulAuthenticationEntryPointHandler.java b/backend/src/main/java/com/zl/mjga/config/security/RestfulAuthenticationEntryPointHandler.java new file mode 100644 index 0000000..e2584a1 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/security/RestfulAuthenticationEntryPointHandler.java @@ -0,0 +1,28 @@ +package com.zl.mjga.config.security; + +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.security.web.access.AccessDeniedHandler; + +public class RestfulAuthenticationEntryPointHandler + implements AccessDeniedHandler, AuthenticationEntryPoint { + + @Override + public void commence( + HttpServletRequest request, + HttpServletResponse response, + AuthenticationException authException) { + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + } + + @Override + public void handle( + HttpServletRequest request, + HttpServletResponse response, + AccessDeniedException accessDeniedException) { + response.setStatus(HttpServletResponse.SC_FORBIDDEN); + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/security/UserDetailsServiceImpl.java b/backend/src/main/java/com/zl/mjga/config/security/UserDetailsServiceImpl.java new file mode 100644 index 0000000..9a2b24b --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/security/UserDetailsServiceImpl.java @@ -0,0 +1,38 @@ +package com.zl.mjga.config.security; + +import com.zl.mjga.dto.urp.UserRolePermissionDto; +import com.zl.mjga.service.IdentityAccessService; +import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class UserDetailsServiceImpl implements UserDetailsService { + + private final IdentityAccessService identityAccessService; + + @Override + public UserDetails loadUserByUsername(String id) throws UsernameNotFoundException { + UserRolePermissionDto userRolePermissionDto = + identityAccessService.queryUniqueUserWithRolePermission(Long.valueOf(id)); + if (userRolePermissionDto == null) { + throw new UsernameNotFoundException(String.format("uid %s user not found", id)); + } + return new User( + userRolePermissionDto.getUsername(), + userRolePermissionDto.getPassword(), + userRolePermissionDto.getEnable(), + true, + true, + true, + userRolePermissionDto.getPermissions().stream() + .map((permission) -> new SimpleGrantedAuthority(permission.getCode())) + .collect(Collectors.toSet())); + } +} diff --git a/backend/src/main/java/com/zl/mjga/config/security/WebSecurityConfig.java b/backend/src/main/java/com/zl/mjga/config/security/WebSecurityConfig.java new file mode 100644 index 0000000..b7f2348 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/config/security/WebSecurityConfig.java @@ -0,0 +1,77 @@ +package com.zl.mjga.config.security; + +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpMethod; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.security.web.util.matcher.*; +import org.springframework.web.cors.CorsConfigurationSource; + +@Configuration +@EnableWebSecurity +@EnableMethodSecurity +@RequiredArgsConstructor +public class WebSecurityConfig { + + private final UserDetailsServiceImpl userDetailsService; + + private final Jwt jwt; + + private final CorsConfigurationSource corsConfigurationSource; + + @Bean + public AuthenticationManager authenticationManager( + AuthenticationConfiguration authenticationConfiguration) throws Exception { + return authenticationConfiguration.getAuthenticationManager(); + } + + @Bean + public RequestMatcher publicEndPointMatcher() { + return new OrRequestMatcher( + new AntPathRequestMatcher("/auth/sign-in", HttpMethod.POST.name()), + new AntPathRequestMatcher("/auth/sign-up", HttpMethod.POST.name()), + new AntPathRequestMatcher("/v3/api-docs/**", HttpMethod.GET.name()), + new AntPathRequestMatcher("/swagger-ui/**", HttpMethod.GET.name()), + new AntPathRequestMatcher("/swagger-ui.html", HttpMethod.GET.name()), + new AntPathRequestMatcher("/error")); + } + + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + RestfulAuthenticationEntryPointHandler restfulAuthenticationEntryPointHandler = + new RestfulAuthenticationEntryPointHandler(); + /* + + http.csrf(csrf -> csrf.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())) + */ + http.cors(corsConfigurer -> corsConfigurer.configurationSource(corsConfigurationSource)); + http.csrf(AbstractHttpConfigurer::disable) + .authorizeHttpRequests( + authorize -> + authorize + .requestMatchers(publicEndPointMatcher()) + .permitAll() + .anyRequest() + .authenticated()) + .exceptionHandling( + (exceptionHandling) -> + exceptionHandling + .accessDeniedHandler(restfulAuthenticationEntryPointHandler) + .authenticationEntryPoint(restfulAuthenticationEntryPointHandler)) + .sessionManagement( + session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .addFilterAt( + new JwtAuthenticationFilter(jwt, userDetailsService), + UsernamePasswordAuthenticationFilter.class); + return http.build(); + } +} diff --git a/backend/src/main/java/com/zl/mjga/controller/DepartmentController.java b/backend/src/main/java/com/zl/mjga/controller/DepartmentController.java new file mode 100644 index 0000000..3240305 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/controller/DepartmentController.java @@ -0,0 +1,51 @@ +package com.zl.mjga.controller; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.department.DepartmentQueryDto; +import com.zl.mjga.dto.department.DepartmentRespDto; +import com.zl.mjga.repository.DepartmentRepository; +import com.zl.mjga.service.DepartmentService; +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.jooq.generated.mjga.tables.pojos.Department; +import org.springframework.http.HttpStatus; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +@SuppressWarnings("PMD.AvoidDuplicateLiterals") +@RestController +@RequestMapping("/department") +@RequiredArgsConstructor +public class DepartmentController { + + private final DepartmentService departmentService; + private final DepartmentRepository departmentRepository; + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_DEPARTMENT_PERMISSION)") + @GetMapping("/page-query") + @ResponseStatus(HttpStatus.OK) + PageResponseDto> pageQueryDepartments( + @ModelAttribute PageRequestDto pageRequestDto, + @ModelAttribute DepartmentQueryDto departmentQueryDto) { + return departmentService.pageQueryDepartment(pageRequestDto, departmentQueryDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_DEPARTMENT_PERMISSION)") + @GetMapping("/query") + List queryDepartments() { + return departmentRepository.findAll(); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)") + @DeleteMapping() + void deleteDepartment(@RequestParam Long id) { + departmentRepository.deleteById(id); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)") + @PostMapping() + void upsertDepartment(@RequestBody Department department) { + departmentRepository.merge(department); + } +} diff --git a/backend/src/main/java/com/zl/mjga/controller/IdentityAccessController.java b/backend/src/main/java/com/zl/mjga/controller/IdentityAccessController.java new file mode 100644 index 0000000..1df2d50 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/controller/IdentityAccessController.java @@ -0,0 +1,177 @@ +package com.zl.mjga.controller; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.department.DepartmentBindDto; +import com.zl.mjga.dto.permission.PermissionBindDto; +import com.zl.mjga.dto.position.PositionBindDto; +import com.zl.mjga.dto.role.RoleBindDto; +import com.zl.mjga.dto.urp.*; +import com.zl.mjga.repository.RoleRepository; +import com.zl.mjga.repository.UserRepository; +import com.zl.mjga.service.IdentityAccessService; +import jakarta.validation.Valid; +import java.security.Principal; +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.jooq.generated.mjga.tables.pojos.User; +import org.springframework.http.HttpStatus; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +@SuppressWarnings("PMD.AvoidDuplicateLiterals") +@RestController +@RequestMapping("/iam") +@RequiredArgsConstructor +public class IdentityAccessController { + + private final IdentityAccessService identityAccessService; + private final UserRepository userRepository; + private final RoleRepository roleRepository; + + @GetMapping("/me") + UserRolePermissionDto currentUser(Principal principal) { + String name = principal.getName(); + User user = userRepository.fetchOneByUsername(name); + return identityAccessService.queryUniqueUserWithRolePermission(user.getId()); + } + + @PostMapping("/me") + void upsertMe(Principal principal, @RequestBody UserUpsertDto userUpsertDto) { + String name = principal.getName(); + User user = userRepository.fetchOneByUsername(name); + userUpsertDto.setId(user.getId()); + identityAccessService.upsertUser(userUpsertDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @PostMapping("/user") + void upsertUser(@RequestBody UserUpsertDto userUpsertDto) { + identityAccessService.upsertUser(userUpsertDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)") + @GetMapping("/user") + UserRolePermissionDto queryUserWithRolePermission(@RequestParam Long userId) { + return identityAccessService.queryUniqueUserWithRolePermission(userId); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @DeleteMapping("/user") + void deleteUser(@RequestParam Long userId) { + userRepository.deleteById(userId); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @PostMapping("/role") + void upsertRole(@RequestBody RoleUpsertDto roleUpsertDto) { + identityAccessService.upsertRole(roleUpsertDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @DeleteMapping("/role") + void deleteRole(@RequestParam Long roleId) { + roleRepository.deleteById(roleId); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @GetMapping("/role") + RoleDto queryRoleWithPermission(@RequestParam Long roleId) { + return identityAccessService.queryUniqueRoleWithPermission(roleId); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @PostMapping("/permission") + void upsertPermission(@RequestBody PermissionUpsertDto permissionUpsertDto) { + identityAccessService.upsertPermission(permissionUpsertDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @DeleteMapping("/permission") + void deletePermission(@RequestParam Long permissionId) { + roleRepository.deleteById(permissionId); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)") + @GetMapping("/users") + @ResponseStatus(HttpStatus.OK) + PageResponseDto> queryUsers( + @ModelAttribute PageRequestDto pageRequestDto, @ModelAttribute UserQueryDto userQueryDto) { + return identityAccessService.pageQueryUser(pageRequestDto, userQueryDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)") + @GetMapping("/roles") + @ResponseStatus(HttpStatus.OK) + PageResponseDto> queryRoles( + @ModelAttribute PageRequestDto pageRequestDto, @ModelAttribute RoleQueryDto roleQueryDto) { + return identityAccessService.pageQueryRole(pageRequestDto, roleQueryDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_USER_ROLE_PERMISSION)") + @GetMapping("/permissions") + @ResponseStatus(HttpStatus.OK) + PageResponseDto> queryPermissions( + @ModelAttribute PageRequestDto pageRequestDto, + @ModelAttribute PermissionQueryDto permissionQueryDto) { + return identityAccessService.pageQueryPermission(pageRequestDto, permissionQueryDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @PostMapping("/role/bind") + @ResponseStatus(HttpStatus.OK) + void bindRoleBy(@RequestBody @Valid RoleBindDto roleBindDto) { + identityAccessService.bindRoleToUser(roleBindDto.userId(), roleBindDto.roleIds()); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @PostMapping("/role/unbind") + @ResponseStatus(HttpStatus.OK) + void unBindRoleBy(@RequestBody @Valid RoleBindDto roleBindDto) { + identityAccessService.unBindRoleToUser(roleBindDto.userId(), roleBindDto.roleIds()); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @PostMapping("/permission/bind") + @ResponseStatus(HttpStatus.OK) + void bindPermissionBy(@RequestBody @Valid PermissionBindDto permissionBindDto) { + identityAccessService.bindPermissionBy( + permissionBindDto.roleId(), permissionBindDto.permissionIds()); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_USER_ROLE_PERMISSION)") + @PostMapping("/permission/unbind") + @ResponseStatus(HttpStatus.OK) + void unBindPermissionBy(@RequestBody @Valid PermissionBindDto permissionBindDto) { + identityAccessService.unBindPermissionBy( + permissionBindDto.roleId(), permissionBindDto.permissionIds()); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)") + @PostMapping("/department/bind") + @ResponseStatus(HttpStatus.OK) + public void bindDepartmentBy(@RequestBody @Valid DepartmentBindDto departmentBindDto) { + identityAccessService.bindDepartmentBy(departmentBindDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)") + @PostMapping("/department/unbind") + @ResponseStatus(HttpStatus.OK) + public void unBindDepartmentBy(@RequestBody @Valid DepartmentBindDto departmentBindDto) { + identityAccessService.unBindDepartmentBy(departmentBindDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)") + @PostMapping("/position/bind") + @ResponseStatus(HttpStatus.OK) + public void bindPositionBy(@RequestBody @Valid PositionBindDto positionBindDto) { + identityAccessService.bindPositionBy(positionBindDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_DEPARTMENT_PERMISSION)") + @PostMapping("/position/unbind") + @ResponseStatus(HttpStatus.OK) + public void unBindPositionBy(@RequestBody @Valid PositionBindDto positionBindDto) { + identityAccessService.unBindPositionBy(positionBindDto); + } +} diff --git a/backend/src/main/java/com/zl/mjga/controller/PositionController.java b/backend/src/main/java/com/zl/mjga/controller/PositionController.java new file mode 100644 index 0000000..5129601 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/controller/PositionController.java @@ -0,0 +1,51 @@ +package com.zl.mjga.controller; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.position.PositionQueryDto; +import com.zl.mjga.dto.position.PositionRespDto; +import com.zl.mjga.repository.PositionRepository; +import com.zl.mjga.service.PositionService; +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.jooq.generated.mjga.tables.pojos.Position; +import org.springframework.http.HttpStatus; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +@SuppressWarnings("PMD.AvoidDuplicateLiterals") +@RestController +@RequestMapping("/position") +@RequiredArgsConstructor +public class PositionController { + + private final PositionService positionService; + private final PositionRepository positionRepository; + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_POSITION_PERMISSION)") + @GetMapping("/page-query") + @ResponseStatus(HttpStatus.OK) + PageResponseDto> pageQueryPositions( + @ModelAttribute PageRequestDto pageRequestDto, + @ModelAttribute PositionQueryDto positionQueryDto) { + return positionService.pageQueryPosition(pageRequestDto, positionQueryDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_POSITION_PERMISSION)") + @GetMapping("/query") + List queryPositions() { + return positionRepository.findAll(); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_POSITION_PERMISSION)") + @DeleteMapping() + void deletePosition(@RequestParam Long id) { + positionRepository.deleteById(id); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_POSITION_PERMISSION)") + @PostMapping() + void upsertPosition(@RequestBody Position position) { + positionRepository.merge(position); + } +} diff --git a/backend/src/main/java/com/zl/mjga/controller/SchedulerController.java b/backend/src/main/java/com/zl/mjga/controller/SchedulerController.java new file mode 100644 index 0000000..63d966a --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/controller/SchedulerController.java @@ -0,0 +1,58 @@ +package com.zl.mjga.controller; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.scheduler.JobKeyDto; +import com.zl.mjga.dto.scheduler.JobTriggerDto; +import com.zl.mjga.dto.scheduler.QueryDto; +import com.zl.mjga.dto.scheduler.TriggerKeyDto; +import com.zl.mjga.service.SchedulerService; +import java.util.Date; +import java.util.List; +import lombok.RequiredArgsConstructor; +import org.quartz.JobKey; +import org.quartz.SchedulerException; +import org.quartz.TriggerKey; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/scheduler") +@RequiredArgsConstructor +public class SchedulerController { + + private final SchedulerService schedulerService; + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).READ_SCHEDULER_PERMISSION)") + @GetMapping("/page-query") + public PageResponseDto> pageQuery( + @ModelAttribute PageRequestDto pageRequestDto, @ModelAttribute QueryDto queryDto) { + return schedulerService.getJobWithTriggerBy(pageRequestDto, queryDto); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_SCHEDULER_PERMISSION)") + @PostMapping("/trigger/resume") + public void resumeTrigger(@RequestBody TriggerKeyDto triggerKey) throws SchedulerException { + schedulerService.resumeTrigger(new TriggerKey(triggerKey.name(), triggerKey.group())); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_SCHEDULER_PERMISSION)") + @PostMapping("/trigger/pause") + public void pauseTrigger(@RequestBody TriggerKeyDto triggerKey) throws SchedulerException { + schedulerService.pauseTrigger(new TriggerKey(triggerKey.name(), triggerKey.group())); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_SCHEDULER_PERMISSION)") + @PostMapping("/job/trigger") + public void triggerJob(@RequestBody JobKeyDto jobKeyDto, @RequestParam Long startAt) + throws SchedulerException { + schedulerService.triggerJob(new JobKey(jobKeyDto.name(), jobKeyDto.group()), new Date(startAt)); + } + + @PreAuthorize("hasAuthority(T(com.zl.mjga.model.urp.EPermission).WRITE_SCHEDULER_PERMISSION)") + @PutMapping("/job/update") + public void updateJob(@RequestBody TriggerKeyDto triggerKey, @RequestParam String cron) + throws SchedulerException { + schedulerService.updateCronTrigger(new TriggerKey(triggerKey.name(), triggerKey.group()), cron); + } +} diff --git a/backend/src/main/java/com/zl/mjga/controller/SignController.java b/backend/src/main/java/com/zl/mjga/controller/SignController.java new file mode 100644 index 0000000..8aed953 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/controller/SignController.java @@ -0,0 +1,43 @@ +package com.zl.mjga.controller; + +import com.zl.mjga.config.security.Jwt; +import com.zl.mjga.dto.sign.SignInDto; +import com.zl.mjga.dto.sign.SignUpDto; +import com.zl.mjga.service.SignService; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/auth") +@RequiredArgsConstructor +public class SignController { + + private final SignService signService; + + private final Jwt jwt; + + @ResponseStatus(HttpStatus.OK) + @PostMapping("/sign-in") + void signIn( + HttpServletRequest request, + HttpServletResponse response, + @RequestBody @Valid SignInDto signInDto) { + jwt.makeToken(request, response, String.valueOf(signService.signIn(signInDto))); + } + + @ResponseStatus(HttpStatus.CREATED) + @PostMapping("/sign-up") + void signUp(@RequestBody @Valid SignUpDto signUpDto) { + signService.signUp(signUpDto); + } + + @ResponseStatus(HttpStatus.OK) + @PostMapping("/sign-out") + void signOut(HttpServletRequest request, HttpServletResponse response) { + jwt.removeToken(request, response); + } +} diff --git a/backend/src/main/java/com/zl/mjga/dto/PageRequestDto.java b/backend/src/main/java/com/zl/mjga/dto/PageRequestDto.java new file mode 100644 index 0000000..6916ecd --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/PageRequestDto.java @@ -0,0 +1,129 @@ +package com.zl.mjga.dto; + +import static org.jooq.impl.DSL.field; +import static org.jooq.impl.DSL.name; + +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import lombok.*; +import org.apache.commons.lang3.StringUtils; +import org.jooq.SortField; +import org.jooq.SortOrder; + +@Data +@NoArgsConstructor +public class PageRequestDto { + + public static final String REGEX = "^[a-zA-Z][a-zA-Z0-9_]*$"; + + public static final String SPACE = " "; + + private long page; + private long size; + + private Map sortBy = new HashMap<>(); + + public PageRequestDto(int page, int size) { + checkPageAndSize(page, size); + this.page = page; + this.size = size; + } + + public PageRequestDto(int page, int size, Map sortBy) { + checkPageAndSize(page, size); + this.page = page; + this.size = size; + this.sortBy = sortBy; + } + + @AllArgsConstructor + @Getter + public enum Direction { + ASC("ASC"), + DESC("DESC"); + + private final String keyword; + + public static Direction fromString(String value) { + try { + return Direction.valueOf(value.toUpperCase(Locale.US)); + } catch (Exception e) { + throw new IllegalArgumentException( + String.format( + "Invalid value '%s' for orders given; Has to be either 'desc' or 'asc' (case" + + " insensitive)", + value), + e); + } + } + } + + public static PageRequestDto of(int page, int size) { + return new PageRequestDto(page, size); + } + + public static PageRequestDto of(int page, int size, Map sortBy) { + return new PageRequestDto(page, size, sortBy); + } + + public List> getSortFields() { + return sortBy.entrySet().stream() + .map( + (entry) -> + field(name(entry.getKey())).sort(SortOrder.valueOf(entry.getValue().getKeyword()))) + .toList(); + } + + private void checkPageAndSize(int page, int size) { + if (page < 0) { + throw new IllegalArgumentException("Page index must not be less than zero"); + } + + if (size < 1) { + throw new IllegalArgumentException("Page size must not be less than one"); + } + } + + public long getOffset() { + if (page == 0) { + return 0; + } else { + return (page - 1) * size; + } + } + + public void setSortBy(String sortBy) { + this.sortBy = convertSortBy(sortBy); + } + + private Map convertSortBy(String sortBy) { + Map result = new HashMap<>(); + if (StringUtils.isEmpty(sortBy)) { + return result; + } + for (String fieldSpaceDirection : sortBy.split(",")) { + String[] fieldDirectionArray = fieldSpaceDirection.split(SPACE); + if (fieldDirectionArray.length != 2) { + throw new IllegalArgumentException( + String.format( + "Invalid sortBy field format %s. The expect format is [col1 asc,col2 desc]", + sortBy)); + } + String field = fieldDirectionArray[0]; + if (!verifySortField(field)) { + throw new IllegalArgumentException( + String.format("Invalid Sort field %s. Sort field must match %s", sortBy, REGEX)); + } + String direction = fieldDirectionArray[1]; + result.put(field, Direction.fromString(direction)); + } + return result; + } + + private static boolean verifySortField(String sortField) { + Pattern pattern = Pattern.compile(REGEX); + Matcher matcher = pattern.matcher(sortField); + return matcher.matches(); + } +} diff --git a/backend/src/main/java/com/zl/mjga/dto/PageResponseDto.java b/backend/src/main/java/com/zl/mjga/dto/PageResponseDto.java new file mode 100644 index 0000000..246242a --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/PageResponseDto.java @@ -0,0 +1,22 @@ +package com.zl.mjga.dto; + +import jakarta.annotation.Nullable; +import lombok.*; + +@Data +public class PageResponseDto { + private long total; + private T data; + + public PageResponseDto(long total, @Nullable T data) { + if (total < 0) { + throw new IllegalArgumentException("total must not be less than zero"); + } + this.total = total; + this.data = data; + } + + public static PageResponseDto empty() { + return new PageResponseDto<>(0, null); + } +} diff --git a/backend/src/main/java/com/zl/mjga/dto/department/DepartmentBindDto.java b/backend/src/main/java/com/zl/mjga/dto/department/DepartmentBindDto.java new file mode 100644 index 0000000..92084df --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/department/DepartmentBindDto.java @@ -0,0 +1,6 @@ +package com.zl.mjga.dto.department; + +import jakarta.validation.constraints.NotNull; +import java.util.List; + +public record DepartmentBindDto(@NotNull Long userId, @NotNull List departmentIds) {} diff --git a/backend/src/main/java/com/zl/mjga/dto/department/DepartmentQueryDto.java b/backend/src/main/java/com/zl/mjga/dto/department/DepartmentQueryDto.java new file mode 100644 index 0000000..17890fb --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/department/DepartmentQueryDto.java @@ -0,0 +1,16 @@ +package com.zl.mjga.dto.department; + +import com.zl.mjga.model.urp.BindState; +import lombok.*; + +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +public class DepartmentQueryDto { + private Long userId; + private String name; + private Boolean enable; + private BindState bindState = BindState.ALL; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/department/DepartmentRespDto.java b/backend/src/main/java/com/zl/mjga/dto/department/DepartmentRespDto.java new file mode 100644 index 0000000..221aad3 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/department/DepartmentRespDto.java @@ -0,0 +1,20 @@ +package com.zl.mjga.dto.department; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DepartmentRespDto { + @NotNull private Long id; + @NotEmpty private String name; + private Long parentId; + private String parentName; + private Boolean isBound; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/department/DepartmentUpsertDto.java b/backend/src/main/java/com/zl/mjga/dto/department/DepartmentUpsertDto.java new file mode 100644 index 0000000..1e53986 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/department/DepartmentUpsertDto.java @@ -0,0 +1,17 @@ +package com.zl.mjga.dto.department; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.*; + +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +public class DepartmentUpsertDto { + private Long id; + @NotEmpty private String name; + private Long parentId; + @NotNull private Boolean enable; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/permission/PermissionBindDto.java b/backend/src/main/java/com/zl/mjga/dto/permission/PermissionBindDto.java new file mode 100644 index 0000000..a5660a8 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/permission/PermissionBindDto.java @@ -0,0 +1,8 @@ +package com.zl.mjga.dto.permission; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import java.util.List; + +public record PermissionBindDto( + @NotNull Long roleId, @NotEmpty(message = "权限不能为空") List permissionIds) {} diff --git a/backend/src/main/java/com/zl/mjga/dto/position/PositionBindDto.java b/backend/src/main/java/com/zl/mjga/dto/position/PositionBindDto.java new file mode 100644 index 0000000..0609d11 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/position/PositionBindDto.java @@ -0,0 +1,6 @@ +package com.zl.mjga.dto.position; + +import jakarta.validation.constraints.NotNull; +import java.util.List; + +public record PositionBindDto(@NotNull Long userId, @NotNull List positionIds) {} diff --git a/backend/src/main/java/com/zl/mjga/dto/position/PositionQueryDto.java b/backend/src/main/java/com/zl/mjga/dto/position/PositionQueryDto.java new file mode 100644 index 0000000..bc470a2 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/position/PositionQueryDto.java @@ -0,0 +1,15 @@ +package com.zl.mjga.dto.position; + +import com.zl.mjga.model.urp.BindState; +import lombok.*; + +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +public class PositionQueryDto { + private Long userId; + private String name; + private BindState bindState = BindState.ALL; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/position/PositionRespDto.java b/backend/src/main/java/com/zl/mjga/dto/position/PositionRespDto.java new file mode 100644 index 0000000..d9f32cd --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/position/PositionRespDto.java @@ -0,0 +1,19 @@ +package com.zl.mjga.dto.position; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PositionRespDto { + @NotNull private Long id; + @NotEmpty private String name; + private Long parentId; + private Boolean isBound; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/position/PositionUpsertDto.java b/backend/src/main/java/com/zl/mjga/dto/position/PositionUpsertDto.java new file mode 100644 index 0000000..8124c84 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/position/PositionUpsertDto.java @@ -0,0 +1,17 @@ +package com.zl.mjga.dto.position; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.*; + +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +public class PositionUpsertDto { + private Long id; + @NotEmpty private String name; + private Long parentId; + @NotNull private Boolean enable; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/role/RoleBindDto.java b/backend/src/main/java/com/zl/mjga/dto/role/RoleBindDto.java new file mode 100644 index 0000000..777e824 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/role/RoleBindDto.java @@ -0,0 +1,8 @@ +package com.zl.mjga.dto.role; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import java.util.List; + +public record RoleBindDto( + @NotNull(message = "用户不能为空") Long userId, @NotEmpty(message = "角色不能为空") List roleIds) {} diff --git a/backend/src/main/java/com/zl/mjga/dto/scheduler/JobKeyDto.java b/backend/src/main/java/com/zl/mjga/dto/scheduler/JobKeyDto.java new file mode 100644 index 0000000..17a22f4 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/scheduler/JobKeyDto.java @@ -0,0 +1,5 @@ +package com.zl.mjga.dto.scheduler; + +import jakarta.validation.constraints.NotEmpty; + +public record JobKeyDto(@NotEmpty String name, @NotEmpty String group) {} diff --git a/backend/src/main/java/com/zl/mjga/dto/scheduler/JobTriggerDto.java b/backend/src/main/java/com/zl/mjga/dto/scheduler/JobTriggerDto.java new file mode 100644 index 0000000..92c2b6f --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/scheduler/JobTriggerDto.java @@ -0,0 +1,26 @@ +package com.zl.mjga.dto.scheduler; + +import java.util.Map; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class JobTriggerDto { + private String name; + private String group; + private String className; + private Map jobDataMap; + private String triggerName; + private String triggerGroup; + private String schedulerType; + private String cronExpression; + private long startTime; + private long endTime; + private long nextFireTime; + private long previousFireTime; + private String triggerState; + private Map triggerJobDataMap; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/scheduler/QueryDto.java b/backend/src/main/java/com/zl/mjga/dto/scheduler/QueryDto.java new file mode 100644 index 0000000..0cbaa31 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/scheduler/QueryDto.java @@ -0,0 +1,3 @@ +package com.zl.mjga.dto.scheduler; + +public record QueryDto(String name) {} diff --git a/backend/src/main/java/com/zl/mjga/dto/scheduler/TriggerDto.java b/backend/src/main/java/com/zl/mjga/dto/scheduler/TriggerDto.java new file mode 100644 index 0000000..b40f794 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/scheduler/TriggerDto.java @@ -0,0 +1,21 @@ +package com.zl.mjga.dto.scheduler; + +import java.util.Map; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TriggerDto { + private String name; + private String group; + private String schedulerType; + private String cronExpression; + private long startTime; + private long endTime; + private long nextFireTime; + private long previousFireTime; + private Map jobDataMap; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/scheduler/TriggerKeyDto.java b/backend/src/main/java/com/zl/mjga/dto/scheduler/TriggerKeyDto.java new file mode 100644 index 0000000..3ba38e4 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/scheduler/TriggerKeyDto.java @@ -0,0 +1,5 @@ +package com.zl.mjga.dto.scheduler; + +import jakarta.validation.constraints.NotEmpty; + +public record TriggerKeyDto(@NotEmpty String name, @NotEmpty String group) {} diff --git a/backend/src/main/java/com/zl/mjga/dto/sign/SignInDto.java b/backend/src/main/java/com/zl/mjga/dto/sign/SignInDto.java new file mode 100644 index 0000000..4d092ff --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/sign/SignInDto.java @@ -0,0 +1,16 @@ +package com.zl.mjga.dto.sign; + +import jakarta.validation.constraints.NotEmpty; +import lombok.*; + +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +public class SignInDto { + + @NotEmpty private String username; + + @NotEmpty private String password; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/sign/SignUpDto.java b/backend/src/main/java/com/zl/mjga/dto/sign/SignUpDto.java new file mode 100644 index 0000000..26235f3 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/sign/SignUpDto.java @@ -0,0 +1,15 @@ +package com.zl.mjga.dto.sign; + +import jakarta.validation.constraints.NotEmpty; +import lombok.*; + +@Getter +@Setter +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class SignUpDto { + @NotEmpty private String username; + + @NotEmpty private String password; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/PermissionQueryDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/PermissionQueryDto.java new file mode 100644 index 0000000..8eb75d9 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/PermissionQueryDto.java @@ -0,0 +1,18 @@ +package com.zl.mjga.dto.urp; + +import com.zl.mjga.model.urp.BindState; +import java.util.List; +import lombok.*; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class PermissionQueryDto { + + private Long roleId; + private Long permissionId; + private String permissionCode; + private String permissionName; + private List permissionIdList; + private BindState bindState = BindState.ALL; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/PermissionRespDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/PermissionRespDto.java new file mode 100644 index 0000000..b206b81 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/PermissionRespDto.java @@ -0,0 +1,14 @@ +package com.zl.mjga.dto.urp; + +import lombok.*; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class PermissionRespDto { + private Long id; + private String code; + private String name; + private Boolean isBound; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/PermissionUpsertDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/PermissionUpsertDto.java new file mode 100644 index 0000000..963101f --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/PermissionUpsertDto.java @@ -0,0 +1,15 @@ +package com.zl.mjga.dto.urp; + +import jakarta.validation.constraints.NotEmpty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class PermissionUpsertDto { + private Long id; + @NotEmpty private String code; + @NotEmpty private String name; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/RoleDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/RoleDto.java new file mode 100644 index 0000000..93e7dd7 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/RoleDto.java @@ -0,0 +1,17 @@ +package com.zl.mjga.dto.urp; + +import java.util.LinkedList; +import java.util.List; +import lombok.*; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class RoleDto { + private Long id; + private String code; + private String name; + private Boolean isBound; + @Builder.Default List permissions = new LinkedList<>(); +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/RoleQueryDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/RoleQueryDto.java new file mode 100644 index 0000000..042d749 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/RoleQueryDto.java @@ -0,0 +1,18 @@ +package com.zl.mjga.dto.urp; + +import com.zl.mjga.model.urp.BindState; +import java.util.List; +import lombok.*; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class RoleQueryDto { + + private Long userId; + private Long roleId; + private String roleCode; + private String roleName; + private List roleIdList; + private BindState bindState = BindState.ALL; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/RoleUpsertDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/RoleUpsertDto.java new file mode 100644 index 0000000..fe2b1fa --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/RoleUpsertDto.java @@ -0,0 +1,15 @@ +package com.zl.mjga.dto.urp; + +import jakarta.validation.constraints.NotEmpty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class RoleUpsertDto { + private Long id; + @NotEmpty private String code; + @NotEmpty private String name; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/UserQueryDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/UserQueryDto.java new file mode 100644 index 0000000..76ebe21 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/UserQueryDto.java @@ -0,0 +1,10 @@ +package com.zl.mjga.dto.urp; + +import lombok.*; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class UserQueryDto { + private String username; +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/UserRolePermissionDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/UserRolePermissionDto.java new file mode 100644 index 0000000..11f8aa6 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/UserRolePermissionDto.java @@ -0,0 +1,34 @@ +package com.zl.mjga.dto.urp; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.time.OffsetDateTime; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; +import lombok.*; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class UserRolePermissionDto { + private Long id; + private String username; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private String password; + + private Boolean enable; + @Builder.Default private List roles = new LinkedList<>(); + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") + private OffsetDateTime createTime; + + public Set getPermissions() { + return roles.stream() + .flatMap((roleDto) -> roleDto.getPermissions().stream()) + .collect(Collectors.toSet()); + } +} diff --git a/backend/src/main/java/com/zl/mjga/dto/urp/UserUpsertDto.java b/backend/src/main/java/com/zl/mjga/dto/urp/UserUpsertDto.java new file mode 100644 index 0000000..51e6f0f --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/dto/urp/UserUpsertDto.java @@ -0,0 +1,17 @@ +package com.zl.mjga.dto.urp; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class UserUpsertDto { + private Long id; + @NotEmpty private String username; + private String password; + @NotNull private Boolean enable; +} diff --git a/backend/src/main/java/com/zl/mjga/exception/BusinessException.java b/backend/src/main/java/com/zl/mjga/exception/BusinessException.java new file mode 100644 index 0000000..0c460ad --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/exception/BusinessException.java @@ -0,0 +1,25 @@ +package com.zl.mjga.exception; + +public class BusinessException extends RuntimeException { + + @java.io.Serial private static final long serialVersionUID = -2119302295305964305L; + + public BusinessException() {} + + public BusinessException(String message) { + super(message); + } + + public BusinessException(String message, Throwable cause) { + super(message, cause); + } + + public BusinessException(Throwable cause) { + super(cause); + } + + public BusinessException( + String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/backend/src/main/java/com/zl/mjga/exception/GlobalExceptionHandler.java b/backend/src/main/java/com/zl/mjga/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..b3cd7f5 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/exception/GlobalExceptionHandler.java @@ -0,0 +1,90 @@ +package com.zl.mjga.exception; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.*; +import org.springframework.lang.Nullable; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.web.firewall.RequestRejectedException; +import org.springframework.web.ErrorResponseException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; +import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler; + +@RestControllerAdvice +@Slf4j +public class GlobalExceptionHandler extends ResponseEntityExceptionHandler { + @ExceptionHandler(value = {BusinessException.class}) + public ResponseEntity handleBusinessException(BusinessException ex, WebRequest request) { + log.error("Business Error Handled ===> ", ex); + ErrorResponseException errorResponseException = + new ErrorResponseException( + HttpStatus.INTERNAL_SERVER_ERROR, + ProblemDetail.forStatusAndDetail(HttpStatus.INTERNAL_SERVER_ERROR, ex.getMessage()), + ex.getCause()); + return handleExceptionInternal( + errorResponseException, + errorResponseException.getBody(), + errorResponseException.getHeaders(), + errorResponseException.getStatusCode(), + request); + } + + @SuppressWarnings("NullableProblems") + @Override + @Nullable public ResponseEntity handleMethodArgumentNotValid( + MethodArgumentNotValidException ex, + HttpHeaders headers, + HttpStatusCode status, + WebRequest request) { + log.error("MethodArgumentNotValidException Handled ===> ", ex); + ErrorResponseException errorResponseException = + new ErrorResponseException( + status, ProblemDetail.forStatusAndDetail(status, ex.getMessage()), ex.getCause()); + return handleExceptionInternal( + errorResponseException, + errorResponseException.getBody(), + errorResponseException.getHeaders(), + errorResponseException.getStatusCode(), + request); + } + + @ExceptionHandler(value = {RequestRejectedException.class}) + public ResponseEntity handleRequestRejectedException( + RequestRejectedException ex, WebRequest request) { + log.error("RequestRejectedException Handled ===> ", ex); + ErrorResponseException errorResponseException = + new ErrorResponseException( + HttpStatus.BAD_REQUEST, + ProblemDetail.forStatusAndDetail(HttpStatus.BAD_REQUEST, ex.getMessage()), + ex.getCause()); + return handleExceptionInternal( + errorResponseException, + errorResponseException.getBody(), + errorResponseException.getHeaders(), + errorResponseException.getStatusCode(), + request); + } + + @ExceptionHandler(value = {AccessDeniedException.class}) + public ResponseEntity handleAccessDenied(AccessDeniedException ex) { + throw ex; + } + + @ExceptionHandler(value = {Throwable.class}) + public ResponseEntity handleException(Throwable ex, WebRequest request) { + log.error("System Error Handled ===> ", ex); + ErrorResponseException errorResponseException = + new ErrorResponseException( + HttpStatus.INTERNAL_SERVER_ERROR, + ProblemDetail.forStatusAndDetail(HttpStatus.INTERNAL_SERVER_ERROR, "System Error"), + ex.getCause()); + return handleExceptionInternal( + errorResponseException, + errorResponseException.getBody(), + errorResponseException.getHeaders(), + errorResponseException.getStatusCode(), + request); + } +} diff --git a/backend/src/main/java/com/zl/mjga/job/DataBackupJob.java b/backend/src/main/java/com/zl/mjga/job/DataBackupJob.java new file mode 100644 index 0000000..0a6ae8c --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/job/DataBackupJob.java @@ -0,0 +1,19 @@ +package com.zl.mjga.job; + +import java.text.MessageFormat; +import lombok.extern.slf4j.Slf4j; +import org.quartz.Job; +import org.quartz.JobExecutionContext; + +@Slf4j +public class DataBackupJob implements Job { + + @Override + public void execute(JobExecutionContext context) { + String userId = context.getJobDetail().getJobDataMap().getString("roleId"); + log.info( + MessageFormat.format( + "Job execute: JobName {0} Param {1} Thread: {2}", + getClass(), userId, Thread.currentThread().getName())); + } +} diff --git a/backend/src/main/java/com/zl/mjga/job/EmailJob.java b/backend/src/main/java/com/zl/mjga/job/EmailJob.java new file mode 100644 index 0000000..87786ba --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/job/EmailJob.java @@ -0,0 +1,19 @@ +package com.zl.mjga.job; + +import java.text.MessageFormat; +import lombok.extern.slf4j.Slf4j; +import org.quartz.Job; +import org.quartz.JobExecutionContext; + +@Slf4j +public class EmailJob implements Job { + + @Override + public void execute(JobExecutionContext context) { + String userEmail = context.getJobDetail().getJobDataMap().getString("userEmail"); + log.info( + MessageFormat.format( + "Job execute: JobName {0} Param {1} Thread: {2}", + getClass(), userEmail, Thread.currentThread().getName())); + } +} diff --git a/backend/src/main/java/com/zl/mjga/model/urp/BindState.java b/backend/src/main/java/com/zl/mjga/model/urp/BindState.java new file mode 100644 index 0000000..3bbee0c --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/model/urp/BindState.java @@ -0,0 +1,7 @@ +package com.zl.mjga.model.urp; + +public enum BindState { + BIND, + UNBIND, + ALL; +} diff --git a/backend/src/main/java/com/zl/mjga/model/urp/EPermission.java b/backend/src/main/java/com/zl/mjga/model/urp/EPermission.java new file mode 100644 index 0000000..d6fb35f --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/model/urp/EPermission.java @@ -0,0 +1,12 @@ +package com.zl.mjga.model.urp; + +public enum EPermission { + READ_POSITION_PERMISSION, + WRITE_POSITION_PERMISSION, + READ_DEPARTMENT_PERMISSION, + WRITE_DEPARTMENT_PERMISSION, + READ_SCHEDULER_PERMISSION, + WRITE_SCHEDULER_PERMISSION, + WRITE_USER_ROLE_PERMISSION, + READ_USER_ROLE_PERMISSION +} diff --git a/backend/src/main/java/com/zl/mjga/model/urp/ERole.java b/backend/src/main/java/com/zl/mjga/model/urp/ERole.java new file mode 100644 index 0000000..fa8a1bd --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/model/urp/ERole.java @@ -0,0 +1,6 @@ +package com.zl.mjga.model.urp; + +public enum ERole { + ADMIN, + GENERAL +} diff --git a/backend/src/main/java/com/zl/mjga/model/urp/SchedulerType.java b/backend/src/main/java/com/zl/mjga/model/urp/SchedulerType.java new file mode 100644 index 0000000..fc8fae9 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/model/urp/SchedulerType.java @@ -0,0 +1,8 @@ +package com.zl.mjga.model.urp; + +public enum SchedulerType { + CRON, + SIMPLE, + CALENDAR, + DAILY +} diff --git a/backend/src/main/java/com/zl/mjga/repository/DepartmentRepository.java b/backend/src/main/java/com/zl/mjga/repository/DepartmentRepository.java new file mode 100644 index 0000000..850ddad --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/DepartmentRepository.java @@ -0,0 +1,67 @@ +package com.zl.mjga.repository; + +import static org.jooq.generated.mjga.Tables.*; +import static org.jooq.impl.DSL.noCondition; +import static org.jooq.impl.DSL.noField; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.department.DepartmentQueryDto; +import org.apache.commons.lang3.StringUtils; +import org.jooq.*; +import org.jooq.Record; +import org.jooq.generated.mjga.tables.Department; +import org.jooq.generated.mjga.tables.daos.DepartmentDao; +import org.jooq.impl.DSL; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class DepartmentRepository extends DepartmentDao { + + @Autowired + public DepartmentRepository(Configuration configuration) { + super(configuration); + } + + public Result pageFetchBy( + PageRequestDto pageRequestDto, DepartmentQueryDto departmentQueryDto) { + Department parent = DEPARTMENT.as("parent"); + return ctx() + .select( + DEPARTMENT.asterisk(), + parent.NAME.as("parent_name"), + departmentQueryDto.getUserId() != null + ? DSL.when( + DEPARTMENT.ID.in(selectUsersDepartment(departmentQueryDto.getUserId())), + true) + .otherwise(false) + .as("is_bound") + : noField(), + DSL.count().over().as("total_department").convertFrom(Long::valueOf)) + .from(DEPARTMENT) + .leftJoin(parent) + .on(parent.ID.eq(DEPARTMENT.PARENT_ID)) + .where( + switch (departmentQueryDto.getBindState()) { + case BIND -> DEPARTMENT.ID.in(selectUsersDepartment(departmentQueryDto.getUserId())); + case UNBIND -> + DEPARTMENT.ID.notIn(selectUsersDepartment(departmentQueryDto.getUserId())); + case ALL -> noCondition(); + }) + .and( + StringUtils.isNotEmpty(departmentQueryDto.getName()) + ? DEPARTMENT.NAME.like("%" + departmentQueryDto.getName() + "%") + : noCondition()) + .orderBy(pageRequestDto.getSortFields()) + .limit(pageRequestDto.getSize()) + .offset(pageRequestDto.getOffset()) + .fetch(); + } + + private SelectConditionStep> selectUsersDepartment(Long userId) { + return DSL.select(USER.department().ID) + .from(USER) + .innerJoin(USER.department()) + .where(USER.ID.eq(userId)); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/PermissionRepository.java b/backend/src/main/java/com/zl/mjga/repository/PermissionRepository.java new file mode 100644 index 0000000..c956e99 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/PermissionRepository.java @@ -0,0 +1,81 @@ +package com.zl.mjga.repository; + +import static org.jooq.generated.mjga.tables.Permission.PERMISSION; +import static org.jooq.generated.mjga.tables.Role.ROLE; +import static org.jooq.impl.DSL.*; +import static org.jooq.impl.DSL.noField; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.urp.PermissionQueryDto; +import java.util.List; +import org.apache.commons.lang3.StringUtils; +import org.jooq.*; +import org.jooq.Record; +import org.jooq.generated.mjga.tables.daos.PermissionDao; +import org.jooq.generated.mjga.tables.pojos.Permission; +import org.jooq.impl.DSL; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class PermissionRepository extends PermissionDao { + + @Autowired + public PermissionRepository(Configuration configuration) { + super(configuration); + } + + public Result pageFetchBy( + PageRequestDto pageRequestDto, PermissionQueryDto permissionQueryDto) { + return ctx() + .select( + asterisk(), + permissionQueryDto.getRoleId() != null + ? when( + PERMISSION.ID.in(selectRolesPermissionIds(permissionQueryDto.getRoleId())), + true) + .otherwise(false) + .as("is_bound") + : noField(), + DSL.count().over().as("total_permission")) + .from(PERMISSION) + .where( + switch (permissionQueryDto.getBindState()) { + case BIND -> + PERMISSION.ID.in(selectRolesPermissionIds(permissionQueryDto.getRoleId())); + case UNBIND -> + PERMISSION.ID.notIn(selectRolesPermissionIds(permissionQueryDto.getRoleId())); + case ALL -> noCondition(); + }) + .and( + permissionQueryDto.getPermissionId() == null + ? noCondition() + : PERMISSION.ID.eq(permissionQueryDto.getPermissionId())) + .and( + StringUtils.isEmpty(permissionQueryDto.getPermissionName()) + ? noCondition() + : PERMISSION.NAME.like("%" + permissionQueryDto.getPermissionName() + "%")) + .and( + StringUtils.isEmpty(permissionQueryDto.getPermissionName()) + ? noCondition() + : PERMISSION.CODE.eq(permissionQueryDto.getPermissionCode())) + .orderBy(pageRequestDto.getSortFields()) + .limit(pageRequestDto.getSize()) + .offset(pageRequestDto.getOffset()) + .fetch(); + } + + private SelectConditionStep> selectRolesPermissionIds(Long roleId) { + return DSL.select(ROLE.permission().ID) + .from(ROLE) + .leftJoin(ROLE.permission()) + .where(ROLE.ID.eq(roleId)); + } + + public List selectByPermissionIdIn(List permissionIdList) { + return ctx() + .selectFrom(PERMISSION) + .where(PERMISSION.ID.in(permissionIdList)) + .fetchInto(Permission.class); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/PositionRepository.java b/backend/src/main/java/com/zl/mjga/repository/PositionRepository.java new file mode 100644 index 0000000..0a951d8 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/PositionRepository.java @@ -0,0 +1,60 @@ +package com.zl.mjga.repository; + +import static org.jooq.generated.mjga.Tables.*; +import static org.jooq.impl.DSL.noCondition; +import static org.jooq.impl.DSL.noField; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.position.PositionQueryDto; +import org.apache.commons.lang3.StringUtils; +import org.jooq.*; +import org.jooq.Record; +import org.jooq.generated.mjga.tables.daos.PositionDao; +import org.jooq.impl.DSL; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class PositionRepository extends PositionDao { + + @Autowired + public PositionRepository(Configuration configuration) { + super(configuration); + } + + public Result pageFetchBy( + PageRequestDto pageRequestDto, PositionQueryDto positionQueryDto) { + return ctx() + .select( + POSITION.asterisk(), + positionQueryDto.getUserId() != null + ? DSL.when(POSITION.ID.in(selectUsersPosition(positionQueryDto.getUserId())), true) + .otherwise(false) + .as("is_bound") + : noField(), + DSL.count().over().as("total_position").convertFrom(Long::valueOf)) + .from(POSITION) + .where( + switch (positionQueryDto.getBindState()) { + case BIND -> POSITION.ID.in(selectUsersPosition(positionQueryDto.getUserId())); + case UNBIND -> POSITION.ID.notIn(selectUsersPosition(positionQueryDto.getUserId())); + case ALL -> noCondition(); + }) + .and( + StringUtils.isNotEmpty(positionQueryDto.getName()) + ? POSITION.NAME.like("%" + positionQueryDto.getName() + "%") + : noCondition()) + .orderBy(pageRequestDto.getSortFields()) + .limit(pageRequestDto.getSize()) + .offset(pageRequestDto.getOffset()) + .fetch(); + } + + private SelectConditionStep> selectUsersPosition(Long userId) { + return ctx() + .select(USER.position().ID) + .from(USER) + .innerJoin(USER.position()) + .where(USER.ID.eq(userId)); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/QrtzJobRepository.java b/backend/src/main/java/com/zl/mjga/repository/QrtzJobRepository.java new file mode 100644 index 0000000..9ad9ef6 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/QrtzJobRepository.java @@ -0,0 +1,46 @@ +package com.zl.mjga.repository; + +import static org.jooq.generated.public_.Tables.*; +import static org.jooq.impl.DSL.noCondition; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.scheduler.QueryDto; +import org.apache.commons.lang3.StringUtils; +import org.jooq.*; +import org.jooq.Record; +import org.jooq.generated.public_.tables.daos.QrtzJobDetailsDao; +import org.jooq.impl.DSL; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class QrtzJobRepository extends QrtzJobDetailsDao { + + @Autowired + public QrtzJobRepository(Configuration configuration) { + super(configuration); + } + + public Result fetchPageWithJobAndTriggerBy( + PageRequestDto pageRequestDto, QueryDto queryDto) { + return ctx() + .select( + QRTZ_JOB_DETAILS.asterisk(), + QRTZ_JOB_DETAILS.qrtzTriggers().asterisk(), + QRTZ_JOB_DETAILS.qrtzTriggers().qrtzCronTriggers().asterisk(), + QRTZ_JOB_DETAILS.qrtzTriggers().qrtzSimpleTriggers().asterisk(), + DSL.count().over().as("total_job")) + .from(QRTZ_JOB_DETAILS) + .leftJoin(QRTZ_JOB_DETAILS.qrtzTriggers()) + .leftJoin(QRTZ_JOB_DETAILS.qrtzTriggers().qrtzCronTriggers()) + .leftJoin(QRTZ_JOB_DETAILS.qrtzTriggers().qrtzSimpleTriggers()) + .where( + StringUtils.isNotEmpty(queryDto.name()) + ? QRTZ_JOB_DETAILS.SCHED_NAME.eq(queryDto.name()) + : noCondition()) + .orderBy(pageRequestDto.getSortFields()) + .limit(pageRequestDto.getSize()) + .offset(pageRequestDto.getOffset()) + .fetch(); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/RolePermissionMapRepository.java b/backend/src/main/java/com/zl/mjga/repository/RolePermissionMapRepository.java new file mode 100644 index 0000000..f538bea --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/RolePermissionMapRepository.java @@ -0,0 +1,33 @@ +package com.zl.mjga.repository; + +import static org.jooq.generated.mjga.tables.RolePermissionMap.ROLE_PERMISSION_MAP; + +import java.util.List; +import org.jooq.Configuration; +import org.jooq.generated.mjga.tables.daos.RolePermissionMapDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +@Repository +public class RolePermissionMapRepository extends RolePermissionMapDao { + + @Autowired + public RolePermissionMapRepository(Configuration configuration) { + super(configuration); + } + + @Transactional + public void deleteByRoleId(Long roleId) { + ctx().deleteFrom(ROLE_PERMISSION_MAP).where(ROLE_PERMISSION_MAP.ROLE_ID.eq(roleId)).execute(); + } + + @Transactional + public void deleteBy(Long roleId, List permissionIdList) { + ctx() + .deleteFrom(ROLE_PERMISSION_MAP) + .where(ROLE_PERMISSION_MAP.ROLE_ID.eq(roleId)) + .and(ROLE_PERMISSION_MAP.PERMISSION_ID.in(permissionIdList)) + .execute(); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/RoleRepository.java b/backend/src/main/java/com/zl/mjga/repository/RoleRepository.java new file mode 100644 index 0000000..eb46a55 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/RoleRepository.java @@ -0,0 +1,84 @@ +package com.zl.mjga.repository; + +import static org.jooq.generated.mjga.Tables.USER; +import static org.jooq.generated.mjga.tables.Role.ROLE; +import static org.jooq.impl.DSL.*; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.urp.RoleQueryDto; +import java.util.List; +import org.apache.commons.lang3.StringUtils; +import org.jooq.*; +import org.jooq.Record; +import org.jooq.generated.mjga.tables.daos.RoleDao; +import org.jooq.generated.mjga.tables.pojos.Permission; +import org.jooq.generated.mjga.tables.pojos.Role; +import org.jooq.impl.DSL; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class RoleRepository extends RoleDao { + + @Autowired + public RoleRepository(Configuration configuration) { + super(configuration); + } + + public List selectByRoleCodeIn(List roleCodeList) { + return ctx().selectFrom(ROLE).where(ROLE.CODE.in(roleCodeList)).fetchInto(Role.class); + } + + public List selectByRoleIdIn(List roleIdList) { + return ctx().selectFrom(ROLE).where(ROLE.ID.in(roleIdList)).fetchInto(Role.class); + } + + public Result pageFetchBy(PageRequestDto pageRequestDto, RoleQueryDto roleQueryDto) { + return ctx() + .select( + asterisk(), + roleQueryDto.getUserId() != null + ? when(ROLE.ID.in(selectUsersRoleIds(roleQueryDto.getUserId())), true) + .otherwise(false) + .as("is_bound") + : noField(), + multiset(select(ROLE.permission().asterisk()).from(ROLE.permission())) + .convertFrom(r -> r.into(Permission.class)) + .as("permissions"), + DSL.count(ROLE.ID).over().as("total_role")) + .from(ROLE) + .where( + switch (roleQueryDto.getBindState()) { + case BIND -> ROLE.ID.in(selectUsersRoleIds(roleQueryDto.getUserId())); + case UNBIND -> ROLE.ID.notIn(selectUsersRoleIds(roleQueryDto.getUserId())); + case ALL -> noCondition(); + }) + .and( + roleQueryDto.getRoleId() == null ? noCondition() : ROLE.ID.eq(roleQueryDto.getRoleId())) + .and( + StringUtils.isEmpty(roleQueryDto.getRoleName()) + ? noCondition() + : ROLE.NAME.like("%" + roleQueryDto.getRoleName() + "%")) + .and( + StringUtils.isEmpty(roleQueryDto.getRoleCode()) + ? noCondition() + : ROLE.CODE.eq(roleQueryDto.getRoleCode())) + .orderBy(pageRequestDto.getSortFields()) + .limit(pageRequestDto.getSize()) + .offset(pageRequestDto.getOffset()) + .fetch(); + } + + private SelectConditionStep> selectUsersRoleIds(Long userId) { + return DSL.select(USER.role().ID).from(USER).innerJoin(USER.role()).where(USER.ID.eq(userId)); + } + + public Result fetchUniqueRoleWithPermission(Long roleId) { + return ctx() + .select(ROLE.asterisk(), ROLE.permission().asterisk()) + .from(ROLE, ROLE.permission()) + .where(ROLE.ID.eq(roleId)) + .orderBy(ROLE.ID) + .fetch(); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/UserDepartmentMapRepository.java b/backend/src/main/java/com/zl/mjga/repository/UserDepartmentMapRepository.java new file mode 100644 index 0000000..65379e5 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/UserDepartmentMapRepository.java @@ -0,0 +1,14 @@ +package com.zl.mjga.repository; + +import org.jooq.Configuration; +import org.jooq.generated.mjga.tables.daos.UserDepartmentMapDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class UserDepartmentMapRepository extends UserDepartmentMapDao { + @Autowired + public UserDepartmentMapRepository(Configuration configuration) { + super(configuration); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/UserPositionMapRepository.java b/backend/src/main/java/com/zl/mjga/repository/UserPositionMapRepository.java new file mode 100644 index 0000000..77625c4 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/UserPositionMapRepository.java @@ -0,0 +1,14 @@ +package com.zl.mjga.repository; + +import org.jooq.Configuration; +import org.jooq.generated.mjga.tables.daos.UserPositionMapDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +@Repository +public class UserPositionMapRepository extends UserPositionMapDao { + @Autowired + public UserPositionMapRepository(Configuration configuration) { + super(configuration); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/UserRepository.java b/backend/src/main/java/com/zl/mjga/repository/UserRepository.java new file mode 100644 index 0000000..aba2782 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/UserRepository.java @@ -0,0 +1,151 @@ +package com.zl.mjga.repository; + +import static org.jooq.generated.mjga.Tables.*; +import static org.jooq.generated.mjga.tables.User.USER; +import static org.jooq.impl.DSL.*; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.urp.PermissionRespDto; +import com.zl.mjga.dto.urp.RoleDto; +import com.zl.mjga.dto.urp.UserQueryDto; +import com.zl.mjga.dto.urp.UserRolePermissionDto; +import org.apache.commons.lang3.StringUtils; +import org.jooq.*; +import org.jooq.Record; +import org.jooq.generated.mjga.tables.daos.*; +import org.jooq.generated.mjga.tables.pojos.User; +import org.jooq.impl.DSL; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +@Repository +public class UserRepository extends UserDao { + + @Autowired + public UserRepository(Configuration configuration) { + super(configuration); + } + + @Transactional + public void mergeWithoutNullFieldBy(User user) { + ctx() + .mergeInto(USER) + .using( + select( + value(user.getId()).as("id"), + value(user.getUsername()).as("username"), + value(user.getPassword()).as("password"), + value(user.getEnable()).as("enable")) + .asTable("newUser")) + .on(USER.ID.eq(DSL.field(DSL.name("newUser", "id"), Long.class))) + .whenMatchedThenUpdate() + .set(USER.USERNAME, DSL.field(DSL.name("newUser", "username"), String.class)) + .set( + USER.PASSWORD, + StringUtils.isNotEmpty(user.getPassword()) + ? DSL.field(DSL.name("newUser", "password"), String.class) + : USER.PASSWORD) + .set(USER.ENABLE, DSL.field(DSL.name("newUser", "enable"), Boolean.class)) + .whenNotMatchedThenInsert(USER.USERNAME, USER.PASSWORD, USER.ENABLE) + .values( + DSL.field(DSL.name("newUser", "username"), String.class), + DSL.field(DSL.name("newUser", "password"), String.class), + DSL.field(DSL.name("newUser", "enable"), Boolean.class)) + .execute(); + } + + public Result pageFetchBy(PageRequestDto pageRequestDto, UserQueryDto userQueryDto) { + return ctx() + .select(asterisk(), DSL.count().over().as("total_user")) + .from(USER) + .where( + userQueryDto.getUsername() != null + ? USER.USERNAME.like("%" + userQueryDto.getUsername() + "%") + : noCondition()) + .orderBy(pageRequestDto.getSortFields()) + .limit(pageRequestDto.getSize()) + .offset(pageRequestDto.getOffset()) + .fetch(); + } + + public UserRolePermissionDto fetchUniqueUserDtoWithNestedRolePermissionBy(Long userId) { + return ctx() + .select( + USER.asterisk(), + multiset( + select( + USER.role().asterisk(), + multiset( + select(USER.role().permission().asterisk()) + .from(USER.role().permission())) + .convertFrom( + r -> r.map((record) -> record.into(PermissionRespDto.class))) + .as("permissions")) + .from(USER.role())) + .convertFrom(r -> r.map((record) -> record.into(RoleDto.class))) + .as("roles")) + .from(USER) + .where(USER.ID.eq(userId)) + .fetchOneInto(UserRolePermissionDto.class); + } + + // public UserRolePermissionDto fetchUniqueUserDtoWithNestedRolePermissionBy(Long roleId) { + // return ctx() + // .select( + // USER.asterisk(), + // multiset( + // select( + // ROLE.asterisk(), + // multiset( + // select(PERMISSION.asterisk()) + // .from(ROLE_PERMISSION_MAP) + // .leftJoin(PERMISSION) + // .on(ROLE_PERMISSION_MAP.PERMISSION_ID.eq(PERMISSION.ID)) + // .where(ROLE_PERMISSION_MAP.ROLE_ID.eq(ROLE.ID))) + // .convertFrom( + // r -> r.map((record) -> + // record.into(PermissionRespDto.class))) + // .as("permissions")) + // .from(USER_ROLE_MAP) + // .leftJoin(ROLE) + // .on(USER_ROLE_MAP.ROLE_ID.eq(ROLE.ID)) + // .where(USER.ID.eq(USER_ROLE_MAP.USER_ID))) + // .convertFrom(r -> r.map((record) -> record.into(RoleDto.class))) + // .as("roles")) + // .from(USER) + // .where(USER.ID.eq(roleId)) + // .fetchOneInto(UserRolePermissionDto.class); + // } + + public Result fetchUniqueUserWithRolePermissionBy(Long userId) { + return ctx() + .select(USER.asterisk(), USER.role().asterisk(), USER.role().permission().asterisk()) + .from(USER) + .leftJoin(USER.role()) + .leftJoin(USER.role().permission()) + .where(USER.ID.eq(userId)) + .fetch(); + } + + // public Result fetchUniqueUserWithRolePermissionBy(Long roleId) { + // return ctx() + // .select() + // .from(USER) + // .leftJoin(USER_ROLE_MAP) + // .on(USER.ID.eq(USER_ROLE_MAP.USER_ID)) + // .leftJoin(ROLE) + // .on(USER_ROLE_MAP.ROLE_ID.eq(ROLE.ID)) + // .leftJoin(ROLE_PERMISSION_MAP) + // .on(ROLE.ID.eq(ROLE_PERMISSION_MAP.ROLE_ID)) + // .leftJoin(PERMISSION) + // .on(ROLE_PERMISSION_MAP.PERMISSION_ID.eq(PERMISSION.ID)) + // .where(USER.ID.eq(roleId)) + // .fetch(); + // } + + @Transactional + public void deleteByUsername(String username) { + ctx().delete(USER).where(USER.USERNAME.eq(username)).execute(); + } +} diff --git a/backend/src/main/java/com/zl/mjga/repository/UserRoleMapRepository.java b/backend/src/main/java/com/zl/mjga/repository/UserRoleMapRepository.java new file mode 100644 index 0000000..b3f44c8 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/repository/UserRoleMapRepository.java @@ -0,0 +1,33 @@ +package com.zl.mjga.repository; + +import static org.jooq.generated.mjga.tables.UserRoleMap.USER_ROLE_MAP; + +import java.util.List; +import org.jooq.Configuration; +import org.jooq.generated.mjga.tables.daos.UserRoleMapDao; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +@Repository +public class UserRoleMapRepository extends UserRoleMapDao { + + @Autowired + public UserRoleMapRepository(Configuration configuration) { + super(configuration); + } + + @Transactional + public void deleteByUserId(Long userId) { + ctx().deleteFrom(USER_ROLE_MAP).where(USER_ROLE_MAP.USER_ID.eq(userId)).execute(); + } + + @Transactional + public void deleteBy(Long userId, List roleIdList) { + ctx() + .deleteFrom(USER_ROLE_MAP) + .where(USER_ROLE_MAP.USER_ID.eq(userId)) + .and(USER_ROLE_MAP.ROLE_ID.in(roleIdList)) + .execute(); + } +} diff --git a/backend/src/main/java/com/zl/mjga/service/CacheService.java b/backend/src/main/java/com/zl/mjga/service/CacheService.java new file mode 100644 index 0000000..bf5ba9a --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/service/CacheService.java @@ -0,0 +1,28 @@ +package com.zl.mjga.service; + +import com.zl.mjga.config.cache.CacheConfig; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class CacheService { + @Cacheable(value = CacheConfig.VERIFY_CODE, key = "{#identify}", unless = "#result == null") + public String getVerifyCodeBy(String identify) { + return null; + } + + @CachePut(value = CacheConfig.VERIFY_CODE, key = "{#identify}") + public String upsertVerifyCodeBy(String identify, String value) { + return value; + } + + @CacheEvict(value = CacheConfig.VERIFY_CODE, key = "{#identify}") + public void removeVerifyCodeBy(String identify) {} + + @CacheEvict(value = CacheConfig.VERIFY_CODE, allEntries = true) + public void clearAllVerifyCode() {} +} diff --git a/backend/src/main/java/com/zl/mjga/service/DepartmentService.java b/backend/src/main/java/com/zl/mjga/service/DepartmentService.java new file mode 100644 index 0000000..143ae87 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/service/DepartmentService.java @@ -0,0 +1,47 @@ +package com.zl.mjga.service; + +import static org.jooq.generated.mjga.tables.Department.DEPARTMENT; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.department.DepartmentQueryDto; +import com.zl.mjga.dto.department.DepartmentRespDto; +import com.zl.mjga.repository.DepartmentRepository; +import java.util.List; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jooq.Record; +import org.jooq.Result; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +@RequiredArgsConstructor +public class DepartmentService { + + private final DepartmentRepository departmentRepository; + + public PageResponseDto> pageQueryDepartment( + PageRequestDto pageRequestDto, DepartmentQueryDto departmentQueryDto) { + Result records = departmentRepository.pageFetchBy(pageRequestDto, departmentQueryDto); + if (records.isEmpty()) { + return PageResponseDto.empty(); + } + List departments = + records.map( + record -> { + return DepartmentRespDto.builder() + .id(record.getValue(DEPARTMENT.ID)) + .name(record.getValue(DEPARTMENT.NAME)) + .parentId(record.getValue(DEPARTMENT.PARENT_ID)) + .isBound( + record.field("is_bound") != null + ? record.get("is_bound", Boolean.class) + : null) + .parentName(record.get("parent_name", String.class)) + .build(); + }); + Long totalDepartment = records.get(0).getValue("total_department", Long.class); + return new PageResponseDto<>(totalDepartment, departments); + } +} diff --git a/backend/src/main/java/com/zl/mjga/service/IdentityAccessService.java b/backend/src/main/java/com/zl/mjga/service/IdentityAccessService.java new file mode 100644 index 0000000..4330c9e --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/service/IdentityAccessService.java @@ -0,0 +1,291 @@ +package com.zl.mjga.service; + +import static org.jooq.generated.mjga.tables.Permission.PERMISSION; +import static org.jooq.generated.mjga.tables.Role.ROLE; +import static org.jooq.generated.mjga.tables.User.USER; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.department.DepartmentBindDto; +import com.zl.mjga.dto.position.PositionBindDto; +import com.zl.mjga.dto.urp.*; +import com.zl.mjga.exception.BusinessException; +import com.zl.mjga.model.urp.ERole; +import com.zl.mjga.repository.*; +import java.util.*; +import java.util.stream.Collectors; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.generated.mjga.tables.pojos.*; +import org.jspecify.annotations.Nullable; +import org.springframework.beans.BeanUtils; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@RequiredArgsConstructor +public class IdentityAccessService { + + private final UserRepository userRepository; + private final RoleRepository roleRepository; + private final UserRoleMapRepository userRoleMapRepository; + private final PermissionRepository permissionRepository; + private final RolePermissionMapRepository rolePermissionMapRepository; + private final UserDepartmentMapRepository userDepartmentMapRepository; + private final UserPositionMapRepository userPositionMapRepository; + private final PasswordEncoder passwordEncoder; + + public void upsertUser(UserUpsertDto userUpsertDto) { + User user = new User(); + BeanUtils.copyProperties(userUpsertDto, user); + if (StringUtils.isNotEmpty(userUpsertDto.getPassword())) { + user.setPassword(passwordEncoder.encode(userUpsertDto.getPassword())); + } + userRepository.mergeWithoutNullFieldBy(user); + } + + public void upsertRole(RoleUpsertDto roleUpsertDto) { + Role role = new Role(); + BeanUtils.copyProperties(roleUpsertDto, role); + roleRepository.merge(role); + } + + public void upsertPermission(PermissionUpsertDto permissionUpsertDto) { + Permission permission = new Permission(); + BeanUtils.copyProperties(permissionUpsertDto, permission); + permissionRepository.merge(permission); + } + + public PageResponseDto> pageQueryUser( + PageRequestDto pageRequestDto, UserQueryDto userQueryDto) { + Result userRecords = userRepository.pageFetchBy(pageRequestDto, userQueryDto); + if (userRecords.isEmpty()) { + return PageResponseDto.empty(); + } + List userRolePermissionDtoList = + userRecords.stream() + .map((record) -> queryUniqueUserWithRolePermission(record.getValue(USER.ID))) + .toList(); + return new PageResponseDto<>( + userRecords.get(0).getValue("total_user", Integer.class), userRolePermissionDtoList); + } + + public @Nullable UserRolePermissionDto queryUniqueUserWithRolePermission(Long userId) { + return userRepository.fetchUniqueUserDtoWithNestedRolePermissionBy(userId); + } + + public PageResponseDto> pageQueryRole( + PageRequestDto pageRequestDto, RoleQueryDto roleQueryDto) { + Result roleRecords = roleRepository.pageFetchBy(pageRequestDto, roleQueryDto); + if (roleRecords.isEmpty()) { + return PageResponseDto.empty(); + } + List roleDtoList = + roleRecords.stream() + .map( + record -> { + return RoleDto.builder() + .id(record.getValue("id", Long.class)) + .code(record.getValue("code", String.class)) + .name(record.getValue("name", String.class)) + .isBound( + record.field("is_bound", Boolean.class) != null + ? record.getValue("is_bound", Boolean.class) + : null) + .permissions(record.getValue("permissions", List.class)) + .build(); + }) + .toList(); + return new PageResponseDto<>( + roleRecords.get(0).getValue("total_role", Integer.class), roleDtoList); + } + + public @Nullable RoleDto queryUniqueRoleWithPermission(Long roleId) { + Result roleWithPermissionRecords = roleRepository.fetchUniqueRoleWithPermission(roleId); + if (roleWithPermissionRecords.isEmpty()) { + return null; + } + RoleDto roleDto = createRbacDtoRolePart(roleWithPermissionRecords); + setCurrentRolePermission(roleDto, roleWithPermissionRecords); + return roleDto; + } + + public PageResponseDto> pageQueryPermission( + PageRequestDto pageRequestDto, PermissionQueryDto permissionQueryDto) { + Result permissionRecords = + permissionRepository.pageFetchBy(pageRequestDto, permissionQueryDto); + if (permissionRecords.isEmpty()) { + return PageResponseDto.empty(); + } + List permissionRespDtoList = + permissionRecords.stream() + .map( + record -> + PermissionRespDto.builder() + .id(record.getValue("id", Long.class)) + .name(record.getValue("name", String.class)) + .code(record.getValue("code", String.class)) + .isBound( + record.field("is_bound", Boolean.class) != null + ? record.getValue("is_bound", Boolean.class) + : null) + .build()) + .toList(); + return new PageResponseDto<>( + permissionRecords.get(0).getValue("total_permission", Integer.class), + permissionRespDtoList); + } + + public void bindPermissionBy(Long roleId, List permissionIdList) { + List permissionMapList = + permissionIdList.stream() + .map( + (permissionId -> { + RolePermissionMap rolePermissionMap = new RolePermissionMap(); + rolePermissionMap.setRoleId(roleId); + rolePermissionMap.setPermissionId(permissionId); + return rolePermissionMap; + })) + .collect(Collectors.toList()); + rolePermissionMapRepository.merge(permissionMapList); + } + + public void unBindPermissionBy(Long roleId, List permissionIdList) { + if (CollectionUtils.isEmpty(permissionIdList)) { + return; + } + rolePermissionMapRepository.deleteBy(roleId, permissionIdList); + } + + public void unBindRoleToUser(Long userId, List roleIdList) { + if (CollectionUtils.isEmpty(roleIdList)) { + return; + } + List roles = roleRepository.selectByRoleIdIn(roleIdList); + if (CollectionUtils.isEmpty(roles)) { + throw new BusinessException("unbind role not exist"); + } + userRoleMapRepository.deleteBy(userId, roleIdList); + } + + public void bindRoleToUser(Long userId, List roleIdList) { + List userRoleMapList = + roleIdList.stream() + .map( + (roleId -> { + UserRoleMap userRoleMap = new UserRoleMap(); + userRoleMap.setUserId(userId); + userRoleMap.setRoleId(roleId); + return userRoleMap; + })) + .collect(Collectors.toList()); + userRoleMapRepository.merge(userRoleMapList); + } + + @Transactional(rollbackFor = Throwable.class) + public void bindRoleModuleToUser(Long userId, List eRoleList) { + bindRoleToUser( + userId, + roleRepository + .selectByRoleCodeIn(eRoleList.stream().map(Enum::name).collect(Collectors.toList())) + .stream() + .map(Role::getId) + .toList()); + } + + private void setCurrentRolePermission(RoleDto roleDto, List roleResult) { + if (roleResult.get(0).getValue(PERMISSION.ID) != null) { + roleResult.forEach( + (record) -> { + PermissionRespDto permissionRespDto = createRbacDtoPermissionPart(record); + roleDto.getPermissions().add(permissionRespDto); + }); + } + } + + private PermissionRespDto createRbacDtoPermissionPart(Record record) { + PermissionRespDto permissionRespDto = new PermissionRespDto(); + permissionRespDto.setId(record.getValue(PERMISSION.ID)); + permissionRespDto.setCode(record.getValue(PERMISSION.CODE)); + permissionRespDto.setName(record.getValue(PERMISSION.NAME)); + return permissionRespDto; + } + + private RoleDto createRbacDtoRolePart(List roleResult) { + RoleDto roleDto = new RoleDto(); + roleDto.setId(roleResult.get(0).getValue(ROLE.ID)); + roleDto.setCode(roleResult.get(0).getValue(ROLE.CODE)); + roleDto.setName(roleResult.get(0).getValue(ROLE.NAME)); + return roleDto; + } + + public boolean isRoleDuplicate(String roleCode, String name) { + return roleRepository.fetchOneByCode(roleCode) != null + || roleRepository.fetchOneByName(name) != null; + } + + public boolean isUsernameDuplicate(String username) { + return userRepository.fetchOneByUsername(username) != null; + } + + public boolean isPermissionDuplicate(String code, String name) { + return permissionRepository.fetchOneByCode(code) != null + || permissionRepository.fetchOneByName(name) != null; + } + + @Transactional(rollbackFor = Throwable.class) + public void bindDepartmentBy(DepartmentBindDto departmentBindDto) { + List userDepartmentMaps = + departmentBindDto.departmentIds().stream() + .map( + (departmentId) -> { + UserDepartmentMap userDepartmentMap = new UserDepartmentMap(); + userDepartmentMap.setUserId(departmentBindDto.userId()); + userDepartmentMap.setDepartmentId(departmentId); + return userDepartmentMap; + }) + .toList(); + userDepartmentMapRepository.merge(userDepartmentMaps); + } + + @Transactional(rollbackFor = Throwable.class) + public void unBindDepartmentBy(DepartmentBindDto departmentBindDto) { + for (Long departmentId : departmentBindDto.departmentIds()) { + UserDepartmentMap userDepartmentMap = new UserDepartmentMap(); + userDepartmentMap.setUserId(departmentBindDto.userId()); + userDepartmentMap.setDepartmentId(departmentId); + userDepartmentMapRepository.delete(userDepartmentMap); + } + } + + @Transactional(rollbackFor = Throwable.class) + public void bindPositionBy(PositionBindDto positionBindDto) { + List userPositionMaps = + positionBindDto.positionIds().stream() + .map( + (positionId) -> { + UserPositionMap userPositionMap = new UserPositionMap(); + userPositionMap.setUserId(positionBindDto.userId()); + userPositionMap.setPositionId(positionId); + return userPositionMap; + }) + .toList(); + userPositionMapRepository.merge(userPositionMaps); + } + + @Transactional(rollbackFor = Throwable.class) + public void unBindPositionBy(PositionBindDto positionBindDto) { + for (Long positionId : positionBindDto.positionIds()) { + UserPositionMap userPositionMap = new UserPositionMap(); + userPositionMap.setUserId(positionBindDto.userId()); + userPositionMap.setPositionId(positionId); + userPositionMapRepository.delete(userPositionMap); + } + } +} diff --git a/backend/src/main/java/com/zl/mjga/service/PositionService.java b/backend/src/main/java/com/zl/mjga/service/PositionService.java new file mode 100644 index 0000000..6060e51 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/service/PositionService.java @@ -0,0 +1,44 @@ +package com.zl.mjga.service; + +import static org.jooq.generated.mjga.tables.Position.POSITION; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.position.PositionQueryDto; +import com.zl.mjga.dto.position.PositionRespDto; +import com.zl.mjga.repository.PositionRepository; +import java.util.List; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jooq.Record; +import org.jooq.Result; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +@RequiredArgsConstructor +public class PositionService { + + private final PositionRepository positionRepository; + + public PageResponseDto> pageQueryPosition( + PageRequestDto pageRequestDto, PositionQueryDto positionQueryDto) { + Result records = positionRepository.pageFetchBy(pageRequestDto, positionQueryDto); + if (records.isEmpty()) { + return PageResponseDto.empty(); + } + List positions = + records.map( + record -> + PositionRespDto.builder() + .id(record.getValue(POSITION.ID)) + .name(record.getValue(POSITION.NAME)) + .isBound( + record.field("is_bound", Boolean.class) != null + ? record.getValue("is_bound", Boolean.class) + : null) + .build()); + Long totalPosition = records.get(0).getValue("total_position", Long.class); + return new PageResponseDto<>(totalPosition, positions); + } +} diff --git a/backend/src/main/java/com/zl/mjga/service/SchedulerService.java b/backend/src/main/java/com/zl/mjga/service/SchedulerService.java new file mode 100644 index 0000000..711bbeb --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/service/SchedulerService.java @@ -0,0 +1,103 @@ +package com.zl.mjga.service; + +import static org.jooq.generated.public_.Tables.*; +import static org.quartz.TriggerBuilder.newTrigger; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.scheduler.JobTriggerDto; +import com.zl.mjga.dto.scheduler.QueryDto; +import com.zl.mjga.repository.QrtzJobRepository; +import jakarta.annotation.Resource; +import java.time.Instant; +import java.util.Date; +import java.util.List; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jooq.Record; +import org.jooq.Result; +import org.quartz.*; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +@RequiredArgsConstructor +public class SchedulerService { + + @Resource(name = "emailJobSchedulerFactory") + private Scheduler emailJobScheduler; + + @Resource(name = "dataBackupSchedulerFactory") + private Scheduler dataBackupScheduler; + + private final QrtzJobRepository qrtzJobRepository; + + public PageResponseDto> getJobWithTriggerBy( + PageRequestDto pageRequestDto, QueryDto queryDto) { + Result records = + qrtzJobRepository.fetchPageWithJobAndTriggerBy(pageRequestDto, queryDto); + if (records.isEmpty()) { + return PageResponseDto.empty(); + } + List jobTriggerDtoList = + records.map( + record -> { + JobTriggerDto jobTriggerDto = new JobTriggerDto(); + jobTriggerDto.setName(record.getValue(QRTZ_JOB_DETAILS.JOB_NAME)); + jobTriggerDto.setGroup(record.getValue(QRTZ_JOB_DETAILS.JOB_GROUP)); + jobTriggerDto.setClassName(record.getValue(QRTZ_JOB_DETAILS.JOB_CLASS_NAME)); + jobTriggerDto.setTriggerName(record.getValue(QRTZ_TRIGGERS.TRIGGER_NAME)); + jobTriggerDto.setTriggerGroup(record.getValue(QRTZ_TRIGGERS.TRIGGER_GROUP)); + jobTriggerDto.setCronExpression(record.getValue(QRTZ_CRON_TRIGGERS.CRON_EXPRESSION)); + jobTriggerDto.setStartTime(record.getValue(QRTZ_TRIGGERS.START_TIME)); + jobTriggerDto.setEndTime(record.getValue(QRTZ_TRIGGERS.END_TIME)); + jobTriggerDto.setNextFireTime(record.getValue(QRTZ_TRIGGERS.NEXT_FIRE_TIME)); + jobTriggerDto.setPreviousFireTime(record.getValue(QRTZ_TRIGGERS.PREV_FIRE_TIME)); + jobTriggerDto.setSchedulerType(record.getValue(QRTZ_TRIGGERS.TRIGGER_TYPE)); + jobTriggerDto.setTriggerState(record.getValue(QRTZ_TRIGGERS.TRIGGER_STATE)); + return jobTriggerDto; + }); + return new PageResponseDto<>( + records.get(0).getValue("total_job", Integer.class), jobTriggerDtoList); + } + + public void resumeTrigger(TriggerKey triggerKey) throws SchedulerException { + emailJobScheduler.resumeTrigger(triggerKey); + dataBackupScheduler.resumeTrigger(triggerKey); + } + + public void pauseTrigger(TriggerKey triggerKey) throws SchedulerException { + emailJobScheduler.pauseTrigger(triggerKey); + dataBackupScheduler.pauseTrigger(triggerKey); + } + + public void triggerJob(JobKey jobKey, Date startAt) throws SchedulerException { + JobDetail jobDetail = emailJobScheduler.getJobDetail(jobKey); + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + Trigger dayLaterTrigger = + newTrigger() + .withIdentity( + String.format( + "%s-%s-%s", "trigger", authentication.getName(), Instant.now().toEpochMilli()), + "job-management") + .startAt(startAt) + .build(); + emailJobScheduler.scheduleJob(jobDetail, dayLaterTrigger); + } + + public void updateCronTrigger(TriggerKey triggerKey, String cron) throws SchedulerException { + Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); + Trigger newTrigger = + TriggerBuilder.newTrigger() + .withIdentity( + String.format( + "%s-%s-%s", + "cronTrigger", authentication.getName(), Instant.now().toEpochMilli()), + "job-management") + .withSchedule(CronScheduleBuilder.cronSchedule(cron)) + .build(); + dataBackupScheduler.rescheduleJob(triggerKey, newTrigger); + } +} diff --git a/backend/src/main/java/com/zl/mjga/service/SignService.java b/backend/src/main/java/com/zl/mjga/service/SignService.java new file mode 100644 index 0000000..8233161 --- /dev/null +++ b/backend/src/main/java/com/zl/mjga/service/SignService.java @@ -0,0 +1,51 @@ +package com.zl.mjga.service; + +import com.zl.mjga.dto.sign.SignInDto; +import com.zl.mjga.dto.sign.SignUpDto; +import com.zl.mjga.exception.BusinessException; +import com.zl.mjga.model.urp.ERole; +import com.zl.mjga.repository.UserRepository; +import java.util.List; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.jooq.generated.mjga.tables.pojos.User; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@RequiredArgsConstructor +public class SignService { + + private final UserRepository userRepository; + + private final PasswordEncoder passwordEncoder; + + private final IdentityAccessService identityAccessService; + + public Long signIn(SignInDto signInDto) { + User user = userRepository.fetchOneByUsername(signInDto.getUsername()); + if (user == null) { + throw new BusinessException(String.format("%s user not found", signInDto.getUsername())); + } + if (!passwordEncoder.matches(signInDto.getPassword(), user.getPassword())) { + throw new BusinessException("password invalid"); + } + return user.getId(); + } + + @Transactional(rollbackFor = Throwable.class) + public void signUp(SignUpDto signUpDto) { + if (identityAccessService.isUsernameDuplicate(signUpDto.getUsername())) { + throw new BusinessException( + String.format("username %s already exist", signUpDto.getUsername())); + } + User user = new User(); + user.setUsername(signUpDto.getUsername()); + user.setPassword(passwordEncoder.encode(signUpDto.getPassword())); + userRepository.insert(user); + User insertUser = userRepository.fetchOneByUsername(signUpDto.getUsername()); + identityAccessService.bindRoleModuleToUser(insertUser.getId(), List.of(ERole.GENERAL)); + } +} diff --git a/backend/src/main/resources/application.yml b/backend/src/main/resources/application.yml new file mode 100644 index 0000000..56c3477 --- /dev/null +++ b/backend/src/main/resources/application.yml @@ -0,0 +1,31 @@ +server: + port: 8080 +logging: + file: + path: /var/log + level: + org: + springframework: + security: debug + flywaydb: debug + jooq: debug +cors: + allowedOrigins: ${ALLOWED_ORIGINS} + allowedMethods: ${ALLOWED_METHODS} + allowedHeaders: ${ALLOWED_HEADERS} + allowedExposeHeaders: ${ALLOWED_EXPOSE_HEADERS} +spring: + datasource: + url: jdbc:postgresql://${DATABASE_HOST_PORT}/${DATABASE_DB} + username: ${DATABASE_USER} + password: ${DATABASE_PASSWORD} + flyway: + enabled: true + locations: classpath:db/migration + default-schema: ${DATABASE_DEFAULT_SCHEMA} +springdoc: + swagger-ui: + path: /swagger-ui.html +jwt: + secret: ${JWT_SECRET:secret} + expiration-min: ${JWT_EXPIRATION_MIN:100} diff --git a/backend/src/main/resources/db/migration/V1_0_0__init_table.sql b/backend/src/main/resources/db/migration/V1_0_0__init_table.sql new file mode 100644 index 0000000..2cef2f3 --- /dev/null +++ b/backend/src/main/resources/db/migration/V1_0_0__init_table.sql @@ -0,0 +1,67 @@ +CREATE SCHEMA IF NOT EXISTS mjga; + +CREATE TABLE mjga.user ( + id BIGSERIAL PRIMARY KEY, + username VARCHAR NOT NULL UNIQUE, + create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + password VARCHAR NOT NULL, + enable BOOLEAN NOT NULL DEFAULT TRUE +); + +CREATE TABLE mjga.permission ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR NOT NULL UNIQUE, + name VARCHAR NOT NULL UNIQUE +); + +CREATE TABLE mjga.role ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR NOT NULL UNIQUE, + name VARCHAR NOT NULL UNIQUE +); + +CREATE TABLE mjga.role_permission_map ( + role_id BIGINT NOT NULL, + permission_id BIGINT NOT NULL, + PRIMARY KEY (role_id, permission_id), + FOREIGN KEY (role_id) REFERENCES mjga.role(id) ON DELETE RESTRICT, + FOREIGN KEY (permission_id) REFERENCES mjga.permission(id) ON DELETE RESTRICT +); + +CREATE TABLE mjga.user_role_map ( + user_id BIGINT NOT NULL, + role_id BIGINT NOT NULL, + PRIMARY KEY (user_id, role_id), + FOREIGN KEY (user_id) REFERENCES mjga.user(id) ON DELETE RESTRICT, + FOREIGN KEY (role_id) REFERENCES mjga.role(id) ON DELETE RESTRICT +); + +CREATE TABLE mjga.department ( + id BIGSERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL UNIQUE, + parent_id BIGINT, + FOREIGN KEY (parent_id) + REFERENCES mjga.department(id) + ON DELETE RESTRICT +); + +CREATE TABLE mjga.user_department_map ( + user_id BIGINT NOT NULL, + department_id BIGINT NOT NULL, + PRIMARY KEY (user_id, department_id), + FOREIGN KEY (user_id) REFERENCES mjga.user(id) ON UPDATE NO ACTION ON DELETE RESTRICT, + FOREIGN KEY (department_id) REFERENCES mjga.department(id) ON UPDATE NO ACTION ON DELETE RESTRICT +); + +CREATE TABLE mjga.position ( + id BIGSERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL UNIQUE +); + +CREATE TABLE mjga.user_position_map ( + user_id BIGINT NOT NULL, + position_id BIGINT NOT NULL, + PRIMARY KEY (user_id, position_id), + FOREIGN KEY (user_id) REFERENCES mjga.user(id) ON UPDATE NO ACTION ON DELETE RESTRICT, + FOREIGN KEY (position_id) REFERENCES mjga.position(id) ON UPDATE NO ACTION ON DELETE RESTRICT +); \ No newline at end of file diff --git a/backend/src/main/resources/db/migration/V1_0_1__insert_init_table.sql b/backend/src/main/resources/db/migration/V1_0_1__insert_init_table.sql new file mode 100644 index 0000000..81a5139 --- /dev/null +++ b/backend/src/main/resources/db/migration/V1_0_1__insert_init_table.sql @@ -0,0 +1,29 @@ +INSERT INTO mjga.user (username, password) +VALUES ('admin', '$2a$10$7zfEdqQYJrBnmDdu7UkgS.zOAsJf4bB1ZYrVhCBAIvIoPbEmeVnVe'); + +INSERT INTO mjga.role (code, name) +VALUES ('ADMIN', 'ADMIN'), + ('GENERAL', 'GENERAL'); + +INSERT INTO mjga.permission (code, name) +VALUES ('READ_POSITION_PERMISSION', 'READ_POSITION_PERMISSION'), + ('WRITE_POSITION_PERMISSION', 'WRITE_POSITION_PERMISSION'), + ('READ_DEPARTMENT_PERMISSION', 'READ_DEPARTMENT_PERMISSION'), + ('WRITE_DEPARTMENT_PERMISSION', 'WRITE_DEPARTMENT_PERMISSION'), + ('READ_SCHEDULER_PERMISSION', 'READ_SCHEDULER_PERMISSION'), + ('WRITE_SCHEDULER_PERMISSION', 'WRITE_SCHEDULER_PERMISSION'), + ('WRITE_USER_ROLE_PERMISSION', 'WRITE_USER_ROLE_PERMISSION'), + ('READ_USER_ROLE_PERMISSION', 'READ_USER_ROLE_PERMISSION'); + +INSERT INTO mjga.user_role_map (user_id, role_id) +VALUES (1, 1); + +INSERT INTO mjga.role_permission_map (role_id, permission_id) +VALUES (1, 1), + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (1, 6), + (1, 7), + (1, 8); diff --git a/backend/src/main/resources/db/migration/V1_0_2__init_quartz.sql b/backend/src/main/resources/db/migration/V1_0_2__init_quartz.sql new file mode 100644 index 0000000..bc08e12 --- /dev/null +++ b/backend/src/main/resources/db/migration/V1_0_2__init_quartz.sql @@ -0,0 +1,194 @@ +CREATE SCHEMA IF NOT EXISTS public; + +SET search_path TO public; + +CREATE TABLE QRTZ_JOB_DETAILS +( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE BOOL NOT NULL, + IS_NONCONCURRENT BOOL NOT NULL, + IS_UPDATE_DATA BOOL NOT NULL, + REQUESTS_RECOVERY BOOL NOT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, JOB_NAME, JOB_GROUP) +); + +CREATE TABLE QRTZ_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT NULL, + PREV_FIRE_TIME BIGINT NULL, + PRIORITY INTEGER NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT NOT NULL, + END_TIME BIGINT NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR SMALLINT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, JOB_NAME, JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS (SCHED_NAME, JOB_NAME, JOB_GROUP) +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT BIGINT NOT NULL, + REPEAT_INTERVAL BIGINT NOT NULL, + TIMES_TRIGGERED BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CRON_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(120) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13, 4) NULL, + DEC_PROP_2 NUMERIC(13, 4) NULL, + BOOL_PROP_1 BOOL NULL, + BOOL_PROP_2 BOOL NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CALENDARS +( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + CALENDAR BYTEA NOT NULL, + PRIMARY KEY (SCHED_NAME, CALENDAR_NAME) +); + + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME BIGINT NOT NULL, + SCHED_TIME BIGINT NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT BOOL NULL, + REQUESTS_RECOVERY BOOL NULL, + PRIMARY KEY (SCHED_NAME, ENTRY_ID) +); + +CREATE TABLE QRTZ_SCHEDULER_STATE +( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME BIGINT NOT NULL, + CHECKIN_INTERVAL BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME, INSTANCE_NAME) +); + +CREATE TABLE QRTZ_LOCKS +( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME, LOCK_NAME) +); + +CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY + ON QRTZ_JOB_DETAILS (SCHED_NAME, REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_J_GRP + ON QRTZ_JOB_DETAILS (SCHED_NAME, JOB_GROUP); + +CREATE INDEX IDX_QRTZ_T_J + ON QRTZ_TRIGGERS (SCHED_NAME, JOB_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_JG + ON QRTZ_TRIGGERS (SCHED_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_C + ON QRTZ_TRIGGERS (SCHED_NAME, CALENDAR_NAME); +CREATE INDEX IDX_QRTZ_T_G + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_T_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_G_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_GROUP, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME + ON QRTZ_TRIGGERS (SCHED_NAME, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_STATE, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_GROUP, TRIGGER_STATE); + +CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, INSTANCE_NAME); +CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, INSTANCE_NAME, REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_FT_J_G + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, JOB_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_JG + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_T_G + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_FT_TG + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, TRIGGER_GROUP); + + +COMMIT; diff --git a/backend/src/test/java/com/zl/mjga/integration/cache/CacheTest.java b/backend/src/test/java/com/zl/mjga/integration/cache/CacheTest.java new file mode 100644 index 0000000..a8c752d --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/cache/CacheTest.java @@ -0,0 +1,51 @@ +package com.zl.mjga.integration.cache; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.zl.mjga.config.cache.CacheConfig; +import com.zl.mjga.service.CacheService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; + +@SpringJUnitConfig(classes = {CacheConfig.class, CacheService.class}) +@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) +public class CacheTest { + + @Autowired private CacheService cacheService; + + @Test + void + getVerifyCodeBy_upsertVerifyCodeBy_whenSetCacheValue_subsequentGetCacheShouldReturnUpdatedValue() { + cacheService.upsertVerifyCodeBy("WsxOtE0d6Vc1glZ", "ej1x8T4XiluV8D216"); + String verifyCode = cacheService.getVerifyCodeBy("WsxOtE0d6Vc1glZ"); + assertThat(verifyCode).isEqualTo("ej1x8T4XiluV8D216"); + } + + @Test + void removeVerifyCodeBy_whenRemoveCacheValue_subsequentGetCacheShouldReturnNull() { + cacheService.upsertVerifyCodeBy("WsxOtE0d6Vc1glZ", "ej1x8T4XiluV8D216"); + String verifyCode = cacheService.getVerifyCodeBy("WsxOtE0d6Vc1glZ"); + cacheService.removeVerifyCodeBy("WsxOtE0d6Vc1glZ"); + String verifyCode2 = cacheService.getVerifyCodeBy("WsxOtE0d6Vc1glZ"); + assertThat(verifyCode).isEqualTo("ej1x8T4XiluV8D216"); + assertThat(verifyCode2).isNull(); + } + + @Test + void clearAllVerifyCode_whenCleanCache_subsequentGetCacheShouldReturnNewValue() { + cacheService.upsertVerifyCodeBy("WsxOtE0d6Vc1glZ", "ej1x8T4XiluV8D216"); + cacheService.upsertVerifyCodeBy("hNYcK0MDjX4197", "Ll1v93jiXwHLji"); + String verifyCode1 = cacheService.getVerifyCodeBy("WsxOtE0d6Vc1glZ"); + String verifyCode2 = cacheService.getVerifyCodeBy("hNYcK0MDjX4197"); + cacheService.clearAllVerifyCode(); + String verifyCode3 = cacheService.getVerifyCodeBy("WsxOtE0d6Vc1glZ"); + String verifyCode4 = cacheService.getVerifyCodeBy("hNYcK0MDjX4197"); + assertThat(verifyCode1).isEqualTo("ej1x8T4XiluV8D216"); + assertThat(verifyCode2).isEqualTo("Ll1v93jiXwHLji"); + assertThat(verifyCode3).isNull(); + assertThat(verifyCode4).isNull(); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/e2e/SignE2ETest.java b/backend/src/test/java/com/zl/mjga/integration/e2e/SignE2ETest.java new file mode 100644 index 0000000..aec02e6 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/e2e/SignE2ETest.java @@ -0,0 +1,121 @@ +package com.zl.mjga.integration.e2e; + +import com.zl.mjga.repository.UserRepository; +import com.zl.mjga.repository.UserRoleMapRepository; +import java.time.Duration; +import org.jooq.generated.mjga.tables.pojos.User; +import org.junit.jupiter.api.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.test.web.reactive.server.WebTestClient; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@AutoConfigureWebTestClient +@Disabled +public class SignE2ETest { + + @Value("${jwt.cookie-name}") + private String jwtCookieName; + + @Value("${jwt.secret}") + private String secret; + + @Value("${jwt.expiration-min}") + private int expirationMin; + + @Autowired private WebTestClient webTestClient; + + @Autowired private UserRepository userRepository; + + @Autowired private UserRoleMapRepository userRoleMapRepository; + + @Autowired private PasswordEncoder passwordEncoder; + + @Autowired private TestRestTemplate testRestTemplate; + + @AfterEach + void cleanUp() { + User user = userRepository.fetchOneByUsername("test_5fab32c22a3e"); + userRoleMapRepository.deleteByUserId(user.getId()); + userRepository.deleteByUsername("test_5fab32c22a3e"); + } + + @Test + void signUp() { + webTestClient + .post() + .uri("/auth/sign-up") + .contentType(MediaType.APPLICATION_JSON) + .bodyValue( + """ +{ + "username": "test_5fab32c22a3e", + "password": "test_eab28b939ba1" +} +""") + .exchange() + .expectStatus() + .isCreated(); + } + + @Test + void signIn() { + User stubUser = new User(); + stubUser.setUsername("test_5fab32c22a3e"); + stubUser.setPassword(passwordEncoder.encode("test_eab28b939ba1")); + userRepository.insert(stubUser); + webTestClient + .post() + .uri("/auth/sign-in") + .contentType(MediaType.APPLICATION_JSON) + .bodyValue( + """ +{ + "username": "test_5fab32c22a3e", + "password": "test_eab28b939ba1" +} +""") + .exchange() + .expectCookie() + .exists(jwtCookieName) + .expectCookie() + .maxAge(jwtCookieName, Duration.ofSeconds(expirationMin * 60L)) + .expectStatus() + .isOk(); + } + + @Test + void signOut() { + User stubUser = new User(); + stubUser.setUsername("test_5fab32c22a3e"); + stubUser.setPassword(passwordEncoder.encode("test_eab28b939ba1")); + userRepository.insert(stubUser); + User loginUser = new User(); + loginUser.setUsername("test_5fab32c22a3e"); + loginUser.setPassword("test_eab28b939ba1"); + HttpHeaders headers = + testRestTemplate.postForEntity("/auth/sign-in", loginUser, String.class).getHeaders(); + headers + .get("Set-Cookie") + .forEach( + cookie -> { + if (cookie.startsWith(jwtCookieName)) { + webTestClient + .post() + .uri("/auth/sign-out") + .header("Cookie", cookie) + .exchange() + .expectCookie() + .maxAge(jwtCookieName, Duration.ofSeconds(0L)) + .expectStatus() + .isOk(); + } + }); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/mvc/JacksonAnnotationMvcTest.java b/backend/src/test/java/com/zl/mjga/integration/mvc/JacksonAnnotationMvcTest.java new file mode 100644 index 0000000..8532db4 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/mvc/JacksonAnnotationMvcTest.java @@ -0,0 +1,78 @@ +package com.zl.mjga.integration.mvc; + +import static org.mockito.Mockito.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import com.zl.mjga.config.security.HttpFireWallConfig; +import com.zl.mjga.controller.IdentityAccessController; +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.urp.UserQueryDto; +import com.zl.mjga.dto.urp.UserRolePermissionDto; +import com.zl.mjga.repository.PermissionRepository; +import com.zl.mjga.repository.RoleRepository; +import com.zl.mjga.repository.UserRepository; +import com.zl.mjga.service.IdentityAccessService; +import java.time.OffsetDateTime; +import java.util.List; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; + +@WebMvcTest(value = {IdentityAccessController.class}) +@Import({HttpFireWallConfig.class}) +public class JacksonAnnotationMvcTest { + + @MockBean private IdentityAccessService identityAccessService; + @Autowired private MockMvc mockMvc; + @MockBean private UserRepository userRepository; + @MockBean private RoleRepository roleRepository; + @MockBean private PermissionRepository permissionRepository; + + @Test + @WithMockUser + void fieldWithJsonWriteOnlyAnnotation_whenResponseIncludeField_responseJsonShouldNotExist() + throws Exception { + String stubUsername = "test_04cb017e1fe6"; + String stubPassword = "y1hxAC0V0e4B3s8sJ"; + UserRolePermissionDto stubUserRolePermissionDto = new UserRolePermissionDto(); + stubUserRolePermissionDto.setId(1L); + stubUserRolePermissionDto.setUsername(stubUsername); + stubUserRolePermissionDto.setPassword(stubPassword); + when(identityAccessService.pageQueryUser( + PageRequestDto.of(1, 5), new UserQueryDto(stubUsername))) + .thenReturn(new PageResponseDto<>(1, List.of(stubUserRolePermissionDto))); + mockMvc + .perform( + get(String.format("/iam/users?page=1&size=5&username=%s", stubUsername)) + .contentType(MediaType.APPLICATION_FORM_URLENCODED)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.data[0].username").value(stubUsername)) + .andExpect(jsonPath("$.data[0].password").doesNotExist()); + } + + @Test + @WithMockUser + void dateFieldWithFormatAnnotation_whenResponseIncludeField_fieldShouldBeExpectDataFormat() + throws Exception { + OffsetDateTime stubCreateDateTime = + OffsetDateTime.of(2023, 12, 2, 1, 1, 1, 0, OffsetDateTime.now().getOffset()); + UserRolePermissionDto stubUserRolePermissionDto = new UserRolePermissionDto(); + stubUserRolePermissionDto.setCreateTime(stubCreateDateTime); + when(identityAccessService.pageQueryUser(any(PageRequestDto.class), any(UserQueryDto.class))) + .thenReturn(new PageResponseDto<>(1, List.of(stubUserRolePermissionDto))); + mockMvc + .perform( + get(String.format("/iam/users?page=1&size=5&username=%s", "7bF3mcNVTj6P6v2")) + .contentType(MediaType.APPLICATION_FORM_URLENCODED)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.data[0].createTime").value("2023-12-02 01:01:01")); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/mvc/SignMvcTest.java b/backend/src/test/java/com/zl/mjga/integration/mvc/SignMvcTest.java new file mode 100644 index 0000000..5b840ab --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/mvc/SignMvcTest.java @@ -0,0 +1,144 @@ +package com.zl.mjga.integration.mvc; + +import static org.mockito.Mockito.when; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import com.zl.mjga.config.security.HttpFireWallConfig; +import com.zl.mjga.config.security.Jwt; +import com.zl.mjga.controller.SignController; +import com.zl.mjga.dto.sign.SignInDto; +import com.zl.mjga.service.SignService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; + +@WebMvcTest(value = {SignController.class}) +@Import({HttpFireWallConfig.class}) +class SignMvcTest { + + @MockBean private SignService signService; + + @MockBean private Jwt jwt; + + @Autowired private MockMvc mockMvc; + + @Test + @WithMockUser + void signIn_givenValidHttpRequest_shouldSucceedWith200() throws Exception { + String stubUsername = "test_04cb017e1fe6"; + String stubPassword = "test_567472858b8c"; + SignInDto signInDto = new SignInDto(); + signInDto.setUsername(stubUsername); + signInDto.setPassword(stubPassword); + + when(signService.signIn(signInDto)).thenReturn(1L); + mockMvc + .perform( + post("/auth/sign-in") + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + { + "username": "test_04cb017e1fe6", + "password": "test_567472858b8c" + } + """) + .with(csrf())) + .andExpect(status().isOk()); + } + + @Test + @WithMockUser + void signIn_givenInValidHttpRequest_shouldFailedWith400() throws Exception { + String stubUsername = "test_04cb017e1fe6"; + String stubPassword = "test_567472858b8c"; + SignInDto signInDto = new SignInDto(); + signInDto.setUsername(stubUsername); + signInDto.setPassword(stubPassword); + + when(signService.signIn(signInDto)).thenReturn(1L); + mockMvc + .perform( + post("/auth/sign-in") + .contentType(MediaType.APPLICATION_FORM_URLENCODED) + .content( + """ + { + "username": "test_04cb017e1fe6", + "password": "test_567472858b8c" + } + """) + .with(csrf())) + .andExpect(status().isBadRequest()); + + when(signService.signIn(signInDto)).thenReturn(1L); + mockMvc + .perform( + post("/auth/sign-in") + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + { + "username": "test_04cb017e1fe6" + } + """) + .with(csrf())) + .andExpect(status().isBadRequest()); + } + + @Test + @WithMockUser + void signUp_givenValidHttpRequest_shouldSucceedWith200() throws Exception { + mockMvc + .perform( + post("/auth/sign-up") + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + { + "username": "test_04cb017e1fe6", + "password": "test_567472858b8c" + } + """) + .with(csrf())) + .andExpect(status().isCreated()); + } + + @Test + @WithMockUser + void signUp_givenInValidHttpRequest_shouldFailedWith400() throws Exception { + mockMvc + .perform( + post("/auth/sign-up") + .contentType(MediaType.APPLICATION_FORM_URLENCODED) + .content( + """ + { + "username": "test_04cb017e1fe6", + "password": "test_567472858b8c" + } + """) + .with(csrf())) + .andExpect(status().isBadRequest()); + + mockMvc + .perform( + post("/auth/sign-up") + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + { + "username": "test_04cb017e1fe6" + } + """) + .with(csrf())) + .andExpect(status().isBadRequest()); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/mvc/UserRolePermissionMvcTest.java b/backend/src/test/java/com/zl/mjga/integration/mvc/UserRolePermissionMvcTest.java new file mode 100644 index 0000000..6006de1 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/mvc/UserRolePermissionMvcTest.java @@ -0,0 +1,225 @@ +package com.zl.mjga.integration.mvc; + +import static org.mockito.Mockito.*; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.zl.mjga.config.security.HttpFireWallConfig; +import com.zl.mjga.controller.IdentityAccessController; +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.urp.*; +import com.zl.mjga.repository.PermissionRepository; +import com.zl.mjga.repository.RoleRepository; +import com.zl.mjga.repository.UserRepository; +import com.zl.mjga.service.IdentityAccessService; +import java.util.List; +import org.jooq.generated.mjga.tables.pojos.User; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; +import org.springframework.http.MediaType; +import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.MockMvc; + +@WebMvcTest(value = {IdentityAccessController.class}) +@Import({HttpFireWallConfig.class}) +class UserRolePermissionMvcTest { + + @MockBean private IdentityAccessService identityAccessService; + @Autowired private MockMvc mockMvc; + @MockBean private UserRepository userRepository; + @MockBean private RoleRepository roleRepository; + @MockBean private PermissionRepository permissionRepository; + + @Test + @WithMockUser + void currentUser_givenValidHttpRequest_shouldSucceedWith200AndReturnJson() throws Exception { + String stubUsername = "test_04cb017e1fe6"; + UserRolePermissionDto stubUserRolePermissionDto = new UserRolePermissionDto(); + stubUserRolePermissionDto.setId(1L); + stubUserRolePermissionDto.setUsername(stubUsername); + User stubUser = new User(); + stubUser.setId(1L); + when(userRepository.fetchOneByUsername(anyString())).thenReturn(stubUser); + when(identityAccessService.queryUniqueUserWithRolePermission(anyLong())) + .thenReturn(stubUserRolePermissionDto); + mockMvc + .perform(get("/iam/me")) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.username").value(stubUsername)); + } + + @Test + @WithMockUser + void deleteUser_givenValidHttpRequest_shouldSucceedWith200() throws Exception { + Long stubUserId = 1L; + mockMvc + .perform( + delete(String.format("/iam/user?userId=%s", stubUserId)) + .contentType(MediaType.APPLICATION_FORM_URLENCODED) + .with(csrf())) + .andExpect(status().isOk()); + } + + @Test + @WithMockUser + void upsertUser_givenValidHttpRequest_shouldSucceedWith200() throws Exception { + UserUpsertDto userUpsertDto = new UserUpsertDto(); + userUpsertDto.setUsername("username"); + userUpsertDto.setPassword("password"); + userUpsertDto.setEnable(true); + + ObjectMapper objectMapper = new ObjectMapper(); + String json = objectMapper.writeValueAsString(userUpsertDto); + + mockMvc + .perform( + post("/iam/user").contentType(MediaType.APPLICATION_JSON).content(json).with(csrf())) + .andExpect(status().isOk()); + } + + @Test + @WithMockUser + void upsertRole_givenValidHttpRequest_shouldSucceedWith200() throws Exception { + RoleUpsertDto roleUpsertDto = new RoleUpsertDto(); + roleUpsertDto.setCode("roleCode"); + roleUpsertDto.setName("name"); + + ObjectMapper objectMapper = new ObjectMapper(); + String json = objectMapper.writeValueAsString(roleUpsertDto); + + mockMvc + .perform( + post("/iam/role").contentType(MediaType.APPLICATION_JSON).content(json).with(csrf())) + .andExpect(status().isOk()); + } + + @Test + @WithMockUser + void deleteRole_givenValidHttpRequest_shouldSucceedWith200() throws Exception { + Long stubRoleId = 1L; + mockMvc + .perform( + delete(String.format("/iam/role?roleId=%s", stubRoleId)) + .contentType(MediaType.APPLICATION_FORM_URLENCODED) + .with(csrf())) + .andExpect(status().isOk()); + } + + @Test + @WithMockUser + void upsertPermission_givenValidHttpRequest_shouldSucceedWith200() throws Exception { + PermissionUpsertDto permissionUpsertDto = new PermissionUpsertDto(); + permissionUpsertDto.setCode("roleCode"); + permissionUpsertDto.setName("name"); + + ObjectMapper objectMapper = new ObjectMapper(); + String json = objectMapper.writeValueAsString(permissionUpsertDto); + + mockMvc + .perform( + post("/iam/permission") + .contentType(MediaType.APPLICATION_JSON) + .content(json) + .with(csrf())) + .andExpect(status().isOk()); + } + + @Test + @WithMockUser + void deletePermission_givenValidHttpRequest_shouldSucceedWith200() throws Exception { + Long permissionId = 1L; + mockMvc + .perform( + delete(String.format("/iam/permission?permissionId=%s", permissionId)) + .contentType(MediaType.APPLICATION_FORM_URLENCODED) + .with(csrf())) + .andExpect(status().isOk()); + } + + @Test + @WithMockUser + void pageQueryUser_givenValidHttpRequest_shouldSucceedWith200AndReturnJson() throws Exception { + String stubUsername = "test_04cb017e1fe6"; + UserRolePermissionDto stubUserRolePermissionDto = new UserRolePermissionDto(); + stubUserRolePermissionDto.setId(1L); + stubUserRolePermissionDto.setUsername(stubUsername); + when(identityAccessService.pageQueryUser( + PageRequestDto.of(1, 5), new UserQueryDto(stubUsername))) + .thenReturn(new PageResponseDto<>(1, List.of(stubUserRolePermissionDto))); + mockMvc + .perform( + get(String.format("/iam/users?page=1&size=5&username=%s", stubUsername)) + .contentType(MediaType.APPLICATION_FORM_URLENCODED)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.data[0].username").value(stubUsername)); + } + + @Test + @WithMockUser + void pageQueryRole_givenValidHttpRequest_shouldSucceedWith200AndReturnJson() throws Exception { + Long stubUserId = 1L; + Long stubRoleId = 1L; + String stubRoleCode = "UZ1Ej9vx5y8L4"; + String stubRoleName = "B90KM9Pw2ZH9P8OAS"; + RoleQueryDto stubRoleQueryDto = new RoleQueryDto(); + stubRoleQueryDto.setUserId(stubUserId); + stubRoleQueryDto.setRoleId(stubRoleId); + stubRoleQueryDto.setRoleCode(stubRoleCode); + stubRoleQueryDto.setRoleName(stubRoleName); + RoleDto stubRoleDto = new RoleDto(); + stubRoleDto.setId(1L); + stubRoleDto.setName(stubRoleName); + stubRoleDto.setCode(stubRoleCode); + stubRoleDto.setPermissions( + List.of(new PermissionRespDto(1L, "9VWU1nmU89zEVH", "9VWU1nmU89zEVH", false))); + when(identityAccessService.pageQueryRole(PageRequestDto.of(1, 5), stubRoleQueryDto)) + .thenReturn(new PageResponseDto<>(1, List.of(stubRoleDto))); + + mockMvc + .perform( + get(String.format( + "/iam/roles?page=1&size=5&userId=%s&roleId=%s&roleCode=%s&roleName=%s", + stubUserId, stubRoleId, stubRoleCode, stubRoleName)) + .contentType(MediaType.APPLICATION_FORM_URLENCODED)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.data[0].name").value(stubRoleName)); + } + + @Test + @WithMockUser + void pageQueryPermission_givenValidHttpRequest_shouldSucceedWith200AndReturnJson() + throws Exception { + Long stubRoleId = 1L; + Long stubPermissionId = 1L; + String stubPermissionCode = "UZ1Ej9vx5y8L4"; + String stubPermissionName = "B90KM9Pw2ZH9P8OAS"; + PermissionQueryDto stubPermissionQueryDto = new PermissionQueryDto(); + stubPermissionQueryDto.setRoleId(stubRoleId); + stubPermissionQueryDto.setPermissionId(stubPermissionId); + stubPermissionQueryDto.setPermissionCode(stubPermissionCode); + stubPermissionQueryDto.setPermissionName(stubPermissionName); + + PermissionRespDto stubPermissionRespDto = new PermissionRespDto(); + stubPermissionRespDto.setId(stubPermissionId); + stubPermissionRespDto.setName(stubPermissionName); + stubPermissionRespDto.setCode(stubPermissionCode); + when(identityAccessService.pageQueryPermission(PageRequestDto.of(1, 5), stubPermissionQueryDto)) + .thenReturn(new PageResponseDto<>(1, List.of(stubPermissionRespDto))); + + mockMvc + .perform( + get(String.format( + "/iam/permissions?page=1&size=5&roleId=%s&permissionId=%s&permissionCode=%s&permissionName=%s", + stubRoleId, stubPermissionId, stubPermissionCode, stubPermissionName)) + .contentType(MediaType.APPLICATION_FORM_URLENCODED)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.data[0].name").value(stubPermissionName)); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/persistence/AbstractDataAccessLayerTest.java b/backend/src/test/java/com/zl/mjga/integration/persistence/AbstractDataAccessLayerTest.java new file mode 100644 index 0000000..766182a --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/persistence/AbstractDataAccessLayerTest.java @@ -0,0 +1,33 @@ +package com.zl.mjga.integration.persistence; + +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.jooq.JooqTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.ComponentScans; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Testcontainers; + +@JooqTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +@ComponentScans({@ComponentScan("jooq.tables.daos"), @ComponentScan("com.zl.mjga.repository")}) +@Testcontainers +public class AbstractDataAccessLayerTest { + + public static PostgreSQLContainer postgres = + new PostgreSQLContainer<>("postgres:17.3-alpine").withDatabaseName("mjga"); + + @DynamicPropertySource + static void postgresProperties(DynamicPropertyRegistry registry) { + registry.add("spring.datasource.url", postgres::getJdbcUrl); + registry.add("spring.datasource.username", postgres::getUsername); + registry.add("spring.datasource.password", postgres::getPassword); + registry.add("spring.flyway.locations", () -> "classpath:db/migration/test"); + registry.add("spring.flyway.default-schema", () -> "public"); + } + + static { + postgres.start(); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/persistence/JooqTutorialsTest.java b/backend/src/test/java/com/zl/mjga/integration/persistence/JooqTutorialsTest.java new file mode 100644 index 0000000..750ab38 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/persistence/JooqTutorialsTest.java @@ -0,0 +1,160 @@ +package com.zl.mjga.integration.persistence; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.jooq.generated.mjga.tables.User.USER; +import static org.jooq.impl.DSL.asterisk; + +import java.util.List; +import org.jooq.DSLContext; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.generated.mjga.tables.pojos.User; +import org.jooq.generated.mjga.tables.records.UserRecord; +import org.jooq.impl.DSL; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.jdbc.Sql; + +public class JooqTutorialsTest extends AbstractDataAccessLayerTest { + + @Autowired private DSLContext dsl; + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.user (id, username, password) VALUES (2, 'testUserB','lbHHwHjTzpOiRHTs')" + }) + void queryWithDsl() { + List users = dsl.selectFrom(USER).fetchInto(User.class); + assertThat(users.size()).isEqualTo(2); + assertThat(users.get(0).getUsername()).isEqualTo("testUserA"); + assertThat(users.get(1).getUsername()).isEqualTo("testUserB"); + } + + @Test + void insertWithOrmFeel() { + UserRecord userRecord = dsl.newRecord(USER); + userRecord.setUsername("9hrb5Fv@gmail.com"); + userRecord.setPassword("falr2b9nCVY5hS1o"); + userRecord.store(); + UserRecord fetchedOne = dsl.fetchOne(USER, USER.USERNAME.eq("9hrb5Fv@gmail.com")); + assertThat(fetchedOne.getPassword()).isEqualTo("falr2b9nCVY5hS1o"); + } + + @Test + void updateWithOrmFeel() { + UserRecord userRecord = dsl.newRecord(USER); + userRecord.setUsername("9hrb5Fv@gmail.com"); + userRecord.setPassword("falr2b9nCVY5hS1o"); + userRecord.store(); + + UserRecord fetchedOne = dsl.fetchOne(USER, USER.USERNAME.eq("9hrb5Fv@gmail.com")); + assertThat(fetchedOne.getPassword()).isEqualTo("falr2b9nCVY5hS1o"); + + userRecord.setPassword("JHMDoQPKuEcgILE6"); + userRecord.store(); + + fetchedOne.refresh(); + assertThat(fetchedOne.getPassword()).isEqualTo("JHMDoQPKuEcgILE6"); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.user (id, username, password) VALUES (2, 'testUserB','lbHHwHjTzpOiRHTs')" + }) + void deleteWithOrmFeel() { + UserRecord userRecord1 = dsl.fetchOne(USER, USER.USERNAME.eq("testUserA")); + assertThat(userRecord1.get(USER.USERNAME)).isEqualTo("testUserA"); + userRecord1.delete(); + UserRecord userRecord2 = dsl.fetchOne(USER, USER.USERNAME.eq("testUserA")); + assertThat(userRecord2).isNull(); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.user (id, username, password) VALUES (2, 'testUserB','lbHHwHjTzpOiRHTs')", + "INSERT INTO mjga.user (id, username, password) VALUES (3, 'testUserC','yF25WscLYmA8')", + "INSERT INTO mjga.user (id, username, password) VALUES (4, 'testUserD','yF25WscLYmA8')", + "INSERT INTO mjga.user (id, username, password) VALUES (5, 'testUserE','x60FelJjyd0B')" + }) + void pagingQuery() { + List users = + dsl.select(USER.USERNAME).from(USER).limit(2).offset(1).fetchInto(User.class); + assertThat(users.size()).isEqualTo(2); + assertThat(users.get(0).getUsername()).isEqualTo("testUserB"); + assertThat(users.get(1).getUsername()).isEqualTo("testUserC"); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.user (id, username, password) VALUES (2, 'testUserB','lbHHwHjTzpOiRHTs')", + "INSERT INTO mjga.user (id, username, password) VALUES (3, 'testUserC','yF25WscLYmA8')", + "INSERT INTO mjga.user (id, username, password) VALUES (4, 'testUserD','yF25WscLYmA8')", + "INSERT INTO mjga.user (id, username, password) VALUES (5, 'testUserE','x60FelJjyd0B')" + }) + void pagingSortQuery() { + List users = + dsl.select(USER.USERNAME) + .from(USER) + .orderBy(USER.ID.desc()) + .limit(3) + .offset(1) + .fetchInto(User.class); + assertThat(users.size()).isEqualTo(3); + assertThat(users.get(0).getUsername()).isEqualTo("testUserD"); + assertThat(users.get(1).getUsername()).isEqualTo("testUserC"); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','a')", + "INSERT INTO mjga.user (id, username, password) VALUES (2, 'testUserB','b')", + "INSERT INTO mjga.user (id, username, password) VALUES (3, 'testUserC','c')", + "INSERT INTO mjga.user (id, username, password) VALUES (4, 'testUserD','c')", + "INSERT INTO mjga.user (id, username, password) VALUES (5, 'testUserE','c')" + }) + void fetchAndTiesQuery() { + List users = + dsl.select(USER.USERNAME) + .from(USER) + .orderBy(USER.PASSWORD.asc()) + .limit(3) + .withTies() + .offset(0) + .fetchInto(User.class); + assertThat(users.size()).isEqualTo(5); + assertThat(users.get(0).getUsername()).isEqualTo("testUserA"); + assertThat(users.get(4).getUsername()).isEqualTo("testUserE"); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','a')", + "INSERT INTO mjga.user (id, username, password) VALUES (2, 'testUserB','b')", + "INSERT INTO mjga.user (id, username, password) VALUES (3, 'testUserC','c')", + "INSERT INTO mjga.user (id, username, password) VALUES (4, 'testUserD','e')", + "INSERT INTO mjga.user (id, username, password) VALUES (5, 'testUserE','f')" + }) + void windowFunctionQuery() { + Result resultWithWindow = + dsl.select(asterisk(), DSL.count().over().as("total_user")) + .from(USER) + .orderBy(USER.ID.asc()) + .limit(4) + .offset(0) + .fetch(); + assertThat(resultWithWindow.size()).isEqualTo(4); + assertThat(resultWithWindow.get(0).getValue("total_user")).isEqualTo(5); + assertThat(resultWithWindow.get(0).getValue(USER.USERNAME)).isEqualTo("testUserA"); + assertThat(resultWithWindow.get(1).getValue(USER.USERNAME)).isEqualTo("testUserB"); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/persistence/SortByDALTest.java b/backend/src/test/java/com/zl/mjga/integration/persistence/SortByDALTest.java new file mode 100644 index 0000000..536f6fc --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/persistence/SortByDALTest.java @@ -0,0 +1,71 @@ +package com.zl.mjga.integration.persistence; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.jooq.generated.mjga.tables.User.USER; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.urp.UserQueryDto; +import com.zl.mjga.repository.*; +import java.util.HashMap; +import org.jooq.Record; +import org.jooq.Result; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.jdbc.Sql; + +public class SortByDALTest extends AbstractDataAccessLayerTest { + @Autowired private UserRoleMapRepository userRoleMapRepository; + + @Autowired private RolePermissionMapRepository rolePermissionMapRepository; + + @Autowired private UserRepository userRepository; + + @Autowired private RoleRepository roleRepository; + + @Autowired private PermissionRepository permissionRepository; + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.user (id, username,password) VALUES (2, 'testB','NTjRCeUq2EqCy')", + "INSERT INTO mjga.user (id, username,password) VALUES (3, 'testC','qFVVFvPqs291k10')", + }) + void userPageFetchWithNoSort() { + UserQueryDto rbacQueryDto = new UserQueryDto("test"); + Result records = userRepository.pageFetchBy(PageRequestDto.of(1, 10), rbacQueryDto); + assertThat(records.get(0).get(USER.ID)).isEqualTo(1); + assertThat(records.get(1).get(USER.ID)).isEqualTo(2); + assertThat(records.get(2).get(USER.ID)).isEqualTo(3); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testA','1')", + "INSERT INTO mjga.user (id, username,password) VALUES (2, 'testB','2')", + "INSERT INTO mjga.user (id, username,password) VALUES (3, 'testC','3')", + "INSERT INTO mjga.user (id, username,password) VALUES (4, 'testD','3')", + }) + void userPageFetchWithSort() { + UserQueryDto rbacQueryDto = new UserQueryDto("test"); + HashMap sortByIdDesc = new HashMap<>(); + sortByIdDesc.put("id", PageRequestDto.Direction.DESC); + Result records = + userRepository.pageFetchBy(PageRequestDto.of(1, 10, sortByIdDesc), rbacQueryDto); + assertThat(records.get(0).get(USER.ID)).isEqualTo(4); + assertThat(records.get(1).get(USER.ID)).isEqualTo(3); + assertThat(records.get(2).get(USER.ID)).isEqualTo(2); + assertThat(records.get(3).get(USER.ID)).isEqualTo(1); + + HashMap sortByPasswordAndId = new HashMap<>(); + sortByPasswordAndId.put("password", PageRequestDto.Direction.DESC); + sortByIdDesc.put("id", PageRequestDto.Direction.ASC); + Result records2 = + userRepository.pageFetchBy(PageRequestDto.of(1, 10, sortByPasswordAndId), rbacQueryDto); + assertThat(records2.get(0).get(USER.ID)).isEqualTo(3); + assertThat(records2.get(1).get(USER.ID)).isEqualTo(4); + assertThat(records2.get(2).get(USER.ID)).isEqualTo(2); + assertThat(records2.get(3).get(USER.ID)).isEqualTo(1); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/persistence/UserRolePermissionDALTest.java b/backend/src/test/java/com/zl/mjga/integration/persistence/UserRolePermissionDALTest.java new file mode 100644 index 0000000..c094b44 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/persistence/UserRolePermissionDALTest.java @@ -0,0 +1,219 @@ +package com.zl.mjga.integration.persistence; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.jooq.generated.mjga.tables.Permission.PERMISSION; +import static org.jooq.generated.mjga.tables.Role.ROLE; +import static org.jooq.generated.mjga.tables.User.USER; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.urp.PermissionQueryDto; +import com.zl.mjga.dto.urp.RoleQueryDto; +import com.zl.mjga.dto.urp.UserQueryDto; +import com.zl.mjga.model.urp.BindState; +import com.zl.mjga.repository.*; +import java.util.List; +import java.util.stream.Collectors; +import org.jooq.Record; +import org.jooq.Result; +import org.jooq.generated.mjga.tables.pojos.Permission; +import org.jooq.generated.mjga.tables.pojos.Role; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.jdbc.Sql; + +public class UserRolePermissionDALTest extends AbstractDataAccessLayerTest { + + @Autowired private UserRoleMapRepository userRoleMapRepository; + + @Autowired private RolePermissionMapRepository rolePermissionMapRepository; + + @Autowired private UserRepository userRepository; + + @Autowired private RoleRepository roleRepository; + + @Autowired private PermissionRepository permissionRepository; + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.role (id, code, name) VALUES (1, 'testRoleA', 'testRoleA')", + "INSERT INTO mjga.user_role_map (user_id, role_id) VALUES (1, 1)" + }) + void userRoleMap_deleteByUserId() { + userRoleMapRepository.deleteByUserId(1L); + assertThat(userRoleMapRepository.fetchByUserId(1L).isEmpty()).isTrue(); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.role (id, code, name) VALUES (1, 'testRoleA', 'testRoleA')", + "INSERT INTO mjga.permission (id, code, name) VALUES (1, 'testPermissionA'," + + " 'testPermissionA')", + "INSERT INTO mjga.role_permission_map (role_id, permission_id) VALUES (1, 1)", + }) + void rolePermissionMap_deleteByRoleId() { + rolePermissionMapRepository.deleteByRoleId(1L); + assertThat(rolePermissionMapRepository.fetchByRoleId(1L).isEmpty()).isTrue(); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testUserA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.user (id, username,password) VALUES (2, 'testUserB','NTjRCeUq2EqCy')", + "INSERT INTO mjga.role (id, code, name) VALUES (1, 'testRoleA', 'testRoleA')", + "INSERT INTO mjga.role (id, code, name) VALUES (2, 'testRoleB', 'testRoleB')", + "INSERT INTO mjga.permission (id, code, name) VALUES (1, 'testPermissionA'," + + " 'testPermissionA')", + "INSERT INTO mjga.permission (id, code, name) VALUES (2, 'testPermissionB'," + + " 'testPermissionB')", + "INSERT INTO mjga.user_role_map (user_id, role_id) VALUES (1, 1)", + "INSERT INTO mjga.role_permission_map (role_id, permission_id) VALUES (1, 1)", + "INSERT INTO mjga.role_permission_map (role_id, permission_id) VALUES (1, 2)", + "INSERT INTO mjga.user_role_map (user_id, role_id) VALUES (2, 2)", + "INSERT INTO mjga.role_permission_map (role_id, permission_id) VALUES (2, 2)", + }) + void user_fetchUniqueUserWithRolePermissionBy() { + Result records = userRepository.fetchUniqueUserWithRolePermissionBy(1L); + assertThat(records.size()).isEqualTo(2); + assertThat(records.get(0).get(USER.USERNAME)).isEqualTo("testUserA"); + assertThat(records.get(1).get(USER.USERNAME)).isEqualTo("testUserA"); + assertThat(records.get(0).get(ROLE.NAME)).isEqualTo("testRoleA"); + assertThat(records.get(1).get(ROLE.NAME)).isEqualTo("testRoleA"); + + List names = + records.stream().map(record -> record.get(PERMISSION.NAME)).collect(Collectors.toList()); + assertThat(names).containsExactlyInAnyOrder("testPermissionA", "testPermissionB"); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.user (id, username, password) VALUES (1, 'testA','5EUX1AIlV09n2o')", + "INSERT INTO mjga.user (id, username,password) VALUES (2, 'testB','NTjRCeUq2EqCy')", + }) + void user_pageFetchBy() { + UserQueryDto rbacQueryDto = new UserQueryDto("test"); + Result records = userRepository.pageFetchBy(PageRequestDto.of(1, 10), rbacQueryDto); + assertThat(records.size()).isEqualTo(2); + + assertThat(records.get(0).get(USER.ID)).isEqualTo(1); + assertThat(records.get(1).get(USER.ID)).isEqualTo(2); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.role (id, code, name) VALUES (1, 'testRoleA', 'testRoleA')", + "INSERT INTO mjga.role (id, code, name) VALUES (2, 'testRoleB', 'testRoleB')", + }) + void role_selectByRoleIdIn() { + List roles = roleRepository.selectByRoleIdIn(List.of(1L, 2L)); + assertThat(roles.size()).isEqualTo(2); + assertThat(roles.get(0).getId()).isEqualTo(1L); + assertThat(roles.get(1).getId()).isEqualTo(2L); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.role (id, code, name) VALUES (1, 'testRoleA', 'testRoleA')", + "INSERT INTO mjga.role (id, code, name) VALUES (2, 'testRoleB', 'testRoleB')", + }) + void role_selectByRoleCodeIn() { + List roles = roleRepository.selectByRoleCodeIn(List.of("testRoleA", "testRoleB")); + assertThat(roles.size()).isEqualTo(2); + assertThat(roles.get(0).getId()).isEqualTo(1L); + assertThat(roles.get(1).getId()).isEqualTo(2L); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.role (id, code, name) VALUES (1, 'testRoleA', 'testRoleA')", + "INSERT INTO mjga.role (id, code, name) VALUES (2, 'testRoleB', 'testRoleB')", + }) + void role_pageFetchBy() { + RoleQueryDto roleQueryDto = new RoleQueryDto(); + roleQueryDto.setRoleName("testRole"); + roleQueryDto.setBindState(BindState.ALL); + Result records = roleRepository.pageFetchBy(PageRequestDto.of(1, 10), roleQueryDto); + assertThat(records.get(0).getValue("total_role")).isEqualTo(2); + assertThat(records.get(0).getValue(ROLE.NAME)).isEqualTo("testRoleA"); + assertThat(records.get(1).getValue(ROLE.NAME)).isEqualTo("testRoleB"); + + roleQueryDto = new RoleQueryDto(); + roleQueryDto.setRoleCode("testRoleA"); + roleQueryDto.setBindState(BindState.ALL); + records = roleRepository.pageFetchBy(PageRequestDto.of(1, 10), roleQueryDto); + assertThat(records.get(0).getValue("total_role")).isEqualTo(1); + assertThat(records.get(0).getValue(ROLE.NAME)).isEqualTo("testRoleA"); + + roleQueryDto = new RoleQueryDto(); + roleQueryDto.setRoleName("test"); + roleQueryDto.setRoleCode("testRoleA"); + roleQueryDto.setBindState(BindState.ALL); + records = roleRepository.pageFetchBy(PageRequestDto.of(1, 10), roleQueryDto); + assertThat(records.get(0).getValue("total_role")).isEqualTo(1); + assertThat(records.get(0).getValue(ROLE.NAME)).isEqualTo("testRoleA"); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.role (id, code, name) VALUES (1, 'testRoleA', 'testRoleA')", + "INSERT INTO mjga.role (id, code, name) VALUES (2, 'testRoleB', 'testRoleB')", + "INSERT INTO mjga.permission (id, code, name) VALUES (1, 'testPermissionA'," + + " 'testPermissionA')", + "INSERT INTO mjga.permission (id, code, name) VALUES (2, 'testPermissionB'," + + " 'testPermissionB')", + "INSERT INTO mjga.role_permission_map (role_id, permission_id) VALUES (1, 1)", + "INSERT INTO mjga.role_permission_map (role_id, permission_id) VALUES (1, 2)", + "INSERT INTO mjga.role_permission_map (role_id, permission_id) VALUES (2, 2)", + }) + void role_fetchUniqueRoleWithPermission() { + Result records = roleRepository.fetchUniqueRoleWithPermission(1L); + assertThat(records.size()).isEqualTo(2L); + assertThat(records.get(0).getValue(ROLE.NAME)).isEqualTo("testRoleA"); + assertThat(records.get(1).getValue(ROLE.NAME)).isEqualTo("testRoleA"); + assertThat(records.get(0).getValue(PERMISSION.NAME)).isEqualTo("testPermissionA"); + assertThat(records.get(1).getValue(PERMISSION.NAME)).isEqualTo("testPermissionB"); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.permission (id, code, name) VALUES (1, 'testPermissionA'," + + " 'testPermissionA')", + "INSERT INTO mjga.permission (id, code, name) VALUES (2, 'testPermissionB'," + + " 'testPermissionB')", + }) + void permission_selectByPermissionIdIn() { + List permissions = permissionRepository.selectByPermissionIdIn(List.of(1L)); + assertThat(permissions.size()).isEqualTo(1); + assertThat(permissions.get(0).getId()).isEqualTo(1L); + } + + @Test + @Sql( + statements = { + "INSERT INTO mjga.permission (id, code, name) VALUES (1, 'testPermissionA'," + + " 'testPermissionA')", + "INSERT INTO mjga.permission (id, code, name) VALUES (2, 'testPermissionB'," + + " 'testPermissionB')", + }) + void permission_pageFetchBy() { + PermissionQueryDto permissionQueryDto = new PermissionQueryDto(); + permissionQueryDto.setPermissionCode("testPermissionA"); + permissionQueryDto.setPermissionName("test"); + permissionQueryDto.setPermissionIdList(List.of(1L)); + + Result records = + permissionRepository.pageFetchBy(PageRequestDto.of(1, 10), permissionQueryDto); + assertThat(records.get(0).getValue("total_permission")).isEqualTo(1); + assertThat(records.get(0).getValue(PERMISSION.NAME)).isEqualTo("testPermissionA"); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/quartz/AbstractQuartzTest.java b/backend/src/test/java/com/zl/mjga/integration/quartz/AbstractQuartzTest.java new file mode 100644 index 0000000..7e8f0ed --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/quartz/AbstractQuartzTest.java @@ -0,0 +1,32 @@ +package com.zl.mjga.integration.quartz; + +import com.zl.mjga.config.QuartzConfig; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.jooq.JooqTest; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Testcontainers; + +@SpringJUnitConfig(classes = QuartzConfig.class) +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +@Testcontainers +@JooqTest +public class AbstractQuartzTest { + public static PostgreSQLContainer postgres = + new PostgreSQLContainer<>("postgres:17.2-alpine").withDatabaseName("mjga"); + + @DynamicPropertySource + static void postgresProperties(DynamicPropertyRegistry registry) { + registry.add("spring.datasource.url", postgres::getJdbcUrl); + registry.add("spring.datasource.username", postgres::getUsername); + registry.add("spring.datasource.password", postgres::getPassword); + registry.add("spring.flyway.locations", () -> "classpath:db/migration/test"); + registry.add("spring.flyway.default-schema", () -> "public"); + } + + static { + postgres.start(); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/quartz/DataBackupJobTest.java b/backend/src/test/java/com/zl/mjga/integration/quartz/DataBackupJobTest.java new file mode 100644 index 0000000..c0014bc --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/quartz/DataBackupJobTest.java @@ -0,0 +1,84 @@ +package com.zl.mjga.integration.quartz; + +import static org.junit.jupiter.api.Assertions.*; + +import java.text.MessageFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.Objects; +import org.junit.jupiter.api.Test; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.quartz.CronTriggerFactoryBean; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; + +public class DataBackupJobTest extends AbstractQuartzTest { + @Autowired + @Qualifier("dataBackupJobDetail") private JobDetail dataBackupJobDetail; + + @Autowired + @Qualifier("dataBackupTrigger") private CronTriggerFactoryBean dataBackupTrigger; + + @Autowired + @Qualifier("dataBackupSchedulerFactory") private SchedulerFactoryBean dataBackupSchedulerFactory; + + @Test + public void dataBackupJobDetail_defineShouldValid_descShouldEqual() { + assertNotNull(dataBackupJobDetail); + assertEquals("data-backup-job", dataBackupJobDetail.getKey().getName()); + assertEquals("batch-service", dataBackupJobDetail.getKey().getGroup()); + assertTrue(dataBackupJobDetail.isDurable()); + assertEquals("Gh2mxa", dataBackupJobDetail.getJobDataMap().getString("roleId")); + } + + @Test + public void dataBackupTrigger_defineShouldValid_cronShouldBeTriggeredAtDesiredTime() { + assertNotNull(dataBackupTrigger); + CronTrigger cronTrigger = dataBackupTrigger.getObject(); + assertNotNull(cronTrigger); + assertEquals("0 0/5 * * * ?", cronTrigger.getCronExpression()); + try { + CronExpression cron = new CronExpression(cronTrigger.getCronExpression()); + Date now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2024-10-30 11:25:00"); + Date nextValidTimeAfter = cron.getNextValidTimeAfter(now); + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(now); + calendar.add(Calendar.MINUTE, 5); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + Date expectedNextTriggerTime = calendar.getTime(); + assertEquals(expectedNextTriggerTime, nextValidTimeAfter); + } catch (ParseException e) { + fail(MessageFormat.format("Invalid cron expression {0}", e)); + } + } + + @Test + public void dataBackupSchedulerFactory_defineShouldValid_descShouldEqual() + throws SchedulerException { + assertNotNull(dataBackupSchedulerFactory); + JobKey jobKey = + JobKey.jobKey( + dataBackupJobDetail.getKey().getName(), dataBackupJobDetail.getKey().getGroup()); + assertEquals( + dataBackupSchedulerFactory.getScheduler().getJobDetail(jobKey), dataBackupJobDetail); + TriggerKey triggerKey = Objects.requireNonNull(dataBackupTrigger.getObject()).getKey(); + assertEquals( + dataBackupSchedulerFactory.getScheduler().getTrigger(triggerKey), + dataBackupTrigger.getObject()); + assertEquals( + "data-backup-scheduler", dataBackupSchedulerFactory.getScheduler().getSchedulerName()); + } + + @Test + public void dataBackupScheduler_startShouldSuccess() throws SchedulerException { + Scheduler scheduler = dataBackupSchedulerFactory.getScheduler(); + assertNotNull(scheduler); + scheduler.start(); + assertTrue(scheduler.isStarted()); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/quartz/SendEmailJobTest.java b/backend/src/test/java/com/zl/mjga/integration/quartz/SendEmailJobTest.java new file mode 100644 index 0000000..13d2f03 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/quartz/SendEmailJobTest.java @@ -0,0 +1,72 @@ +package com.zl.mjga.integration.quartz; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.quartz.DateBuilder.futureDate; +import static org.quartz.JobBuilder.newJob; +import static org.quartz.TriggerBuilder.newTrigger; + +import com.zl.mjga.job.EmailJob; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; + +@Disabled +public class SendEmailJobTest extends AbstractQuartzTest { + private Boolean executed; + + @Autowired + @Qualifier("emailJobSchedulerFactory") private SchedulerFactoryBean emailJobSchedulerFactory; + + @Test + public void emailJobScheduler_givenDynamicJobAndTrigger_shouldRunJobAtDesiredTime() + throws Exception { + Scheduler emailJobScheduler = emailJobSchedulerFactory.getScheduler(); + assertTrue(emailJobScheduler.isStarted()); + JobDataMap jobDataMap = new JobDataMap(); + jobDataMap.put("userEmail", "Gh273@gmail.com"); + + JobDetail jobDetail = + newJob(EmailJob.class) + .withIdentity("email-job", "customer-service") + .usingJobData(jobDataMap) + .build(); + + Trigger trigger = + newTrigger() + .withIdentity("email-trigger", "customer-service") + .startAt(futureDate(1, DateBuilder.IntervalUnit.SECOND)) + .build(); + + emailJobScheduler + .getListenerManager() + .addJobListener( + new JobListener() { + @Override + public String getName() { + return "TestJobListener"; + } + + @Override + public void jobToBeExecuted(JobExecutionContext context) {} + + @Override + public void jobExecutionVetoed(JobExecutionContext context) {} + + @Override + public void jobWasExecuted( + JobExecutionContext context, JobExecutionException jobException) { + executed = Boolean.TRUE; + } + }); + emailJobScheduler.scheduleJob(jobDetail, trigger); + assertTrue(emailJobScheduler.isStarted()); + await() + .atMost(3, java.util.concurrent.TimeUnit.SECONDS) + .untilAsserted(() -> assertThat(executed).isTrue()); + } +} diff --git a/backend/src/test/java/com/zl/mjga/integration/quartz/TaskManagementTest.java b/backend/src/test/java/com/zl/mjga/integration/quartz/TaskManagementTest.java new file mode 100644 index 0000000..c1e892c --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/integration/quartz/TaskManagementTest.java @@ -0,0 +1,92 @@ +package com.zl.mjga.integration.quartz; + +import static org.junit.jupiter.api.Assertions.*; +import static org.quartz.DateBuilder.futureDate; +import static org.quartz.JobBuilder.newJob; +import static org.quartz.TriggerBuilder.newTrigger; + +import com.zl.mjga.job.EmailJob; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import org.junit.jupiter.api.Test; +import org.quartz.*; +import org.quartz.impl.matchers.GroupMatcher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.quartz.CronTriggerFactoryBean; +import org.springframework.scheduling.quartz.JobDetailFactoryBean; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; + +public class TaskManagementTest extends AbstractQuartzTest { + + @Autowired + @Qualifier("emailJobSchedulerFactory") private SchedulerFactoryBean emailJobSchedulerFactory; + + @Autowired + @Qualifier("dataBackupSchedulerFactory") private SchedulerFactoryBean dataBackupSchedulerFactory; + + @Autowired + @Qualifier("dataBackupTrigger") private CronTriggerFactoryBean dataBackupTrigger; + + @Autowired + @Qualifier("dataBackupJobDetail") private JobDetailFactoryBean dataBackupJobDetail; + + @Test + void crudTask_interactWithScheduler_shouldManipulateAllTask() throws SchedulerException { + Scheduler dataBackupScheduler = dataBackupSchedulerFactory.getScheduler(); + JobDataMap jobDataMap = new JobDataMap(); + jobDataMap.put("userEmail", "Gh273@gmail.com"); + + // trigger job + JobDetail jobDetail = + newJob(EmailJob.class) + .withIdentity("email-job", "customer-service") + .usingJobData(jobDataMap) + .build(); + Trigger dayLaterTrigger = + newTrigger() + .withIdentity("email-trigger", "customer-service") + .startAt(futureDate(1, DateBuilder.IntervalUnit.DAY)) + .build(); + Scheduler emailJobScheduler = emailJobSchedulerFactory.getScheduler(); + emailJobScheduler.scheduleJob(jobDetail, dayLaterTrigger); + + // list all jobs with k(name):v(group) + Set emailJobKeys = emailJobScheduler.getJobKeys(GroupMatcher.anyJobGroup()); + Set dataBackupJobKeys = dataBackupScheduler.getJobKeys(GroupMatcher.anyJobGroup()); + + assertEquals(emailJobKeys.size(), 1); + assertEquals(dataBackupJobKeys.size(), 1); + + // get job's trigger details + JobKey firstEmailJobKey = emailJobKeys.iterator().next(); + JobDetail existJobDetail = emailJobScheduler.getJobDetail(firstEmailJobKey); + assertEquals(existJobDetail.getJobClass(), EmailJob.class); + List triggersOfJob = emailJobScheduler.getTriggersOfJob(firstEmailJobKey); + Trigger firstTrigger = triggersOfJob.get(0); + assertNotNull(firstTrigger.getNextFireTime()); + assertNotNull(firstTrigger.getStartTime()); + JobDataMap jobDataMap1 = firstTrigger.getJobDataMap(); + // pause & resume job + JobKey firstDataBackupJobKey = dataBackupJobKeys.iterator().next(); + assertDoesNotThrow( + () -> { + dataBackupScheduler.pauseJob(firstDataBackupJobKey); + dataBackupScheduler.resumeJob(firstDataBackupJobKey); + }); + + // update job + TriggerKey oldDataBackupTriggerKey = + Objects.requireNonNull(dataBackupTrigger.getObject()).getKey(); + Trigger newTrigger = + TriggerBuilder.newTrigger() + .withIdentity(oldDataBackupTriggerKey) + .withSchedule(CronScheduleBuilder.cronSchedule("0 0/6 * * * ?")) + .build(); + dataBackupScheduler.rescheduleJob(oldDataBackupTriggerKey, newTrigger); + assertEquals( + dataBackupScheduler.getTriggersOfJob(firstDataBackupJobKey).get(0).getKey(), + newTrigger.getKey()); + } +} diff --git a/backend/src/test/java/com/zl/mjga/security/AuthenticationAndAuthorityTest.java b/backend/src/test/java/com/zl/mjga/security/AuthenticationAndAuthorityTest.java new file mode 100644 index 0000000..681d177 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/security/AuthenticationAndAuthorityTest.java @@ -0,0 +1,128 @@ +package com.zl.mjga.security; + +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.when; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import com.zl.mjga.config.security.HttpFireWallConfig; +import com.zl.mjga.config.security.Jwt; +import com.zl.mjga.config.security.UserDetailsServiceImpl; +import com.zl.mjga.config.security.WebSecurityConfig; +import com.zl.mjga.controller.IdentityAccessController; +import com.zl.mjga.controller.SignController; +import com.zl.mjga.dto.sign.SignInDto; +import com.zl.mjga.model.urp.EPermission; +import com.zl.mjga.repository.RoleRepository; +import com.zl.mjga.repository.UserRepository; +import com.zl.mjga.service.IdentityAccessService; +import com.zl.mjga.service.SignService; +import jakarta.servlet.http.HttpServletRequest; +import java.util.Collections; +import java.util.List; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.context.annotation.Import; +import org.springframework.http.MediaType; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.test.web.servlet.MockMvc; + +@WebMvcTest(value = {SignController.class, IdentityAccessController.class}) +@Import({WebSecurityConfig.class, HttpFireWallConfig.class}) +public class AuthenticationAndAuthorityTest { + + @Autowired private MockMvc mockMvc; + + @MockBean private SignService signService; + + @MockBean private Jwt jwt; + + @MockBean private UserDetailsServiceImpl userDetailsService; + + @MockBean private IdentityAccessService identityAccessService; + + @MockBean private UserRepository userRepository; + @MockBean private RoleRepository roleRepository; + + @Test + public void givenRequestOnPublicService_shouldSucceedWith200() throws Exception { + when(signService.signIn(any(SignInDto.class))).thenReturn(1L); + mockMvc + .perform( + post("/auth/sign-in") + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + { + "username": "test_04cb017e1fe6", + "password": "test_567472858b8c" + } + """) + .with(csrf())) + .andExpect(status().isOk()); + } + + @Test + public void givenUnAuthenticateRequestOnPrivateService_shouldFailedWith401() throws Exception { + mockMvc.perform(post("/auth/sign-out").with(csrf())).andExpect(status().isUnauthorized()); + } + + @Test + public void givenUnAuthorityRequestOnPrivateService_shouldFailedWith403() throws Exception { + // Arrange + User stubUserNoPermission = + new User("test_04cb017e1fe6", "test_567472858b8c", Collections.emptyList()); + when(jwt.extract(any(HttpServletRequest.class))).thenReturn(("u9T05Tg3ULCgRn8ja2")); + when(jwt.getSubject(any(String.class))).thenReturn(("4J2HX9r5JcXg0BT")); + when(jwt.verify(any(String.class))).thenReturn(Boolean.TRUE); + when(userDetailsService.loadUserByUsername(any(String.class))).thenReturn(stubUserNoPermission); + + // Act and Assert + mockMvc + .perform( + post("/iam/permission/bind") + .with(csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + { + "roleId": 1, + "permissionIds": [101, 102] + } + """)) + .andExpect(status().isForbidden()); + } + + @Test + public void givenAuthorityRequestOnPrivateService_shouldSuccessWith200() throws Exception { + // Arrange + User stubUserNoPermission = + new User( + "test_04cb017e1fe6", + "test_567472858b8c", + List.of(new SimpleGrantedAuthority(EPermission.WRITE_USER_ROLE_PERMISSION.toString()))); + when(jwt.extract(any(HttpServletRequest.class))).thenReturn(("u9T05Tg3ULCgRn8ja2")); + when(jwt.getSubject(any(String.class))).thenReturn(("4J2HX9r5JcXg0BT")); + when(jwt.verify(any(String.class))).thenReturn(Boolean.TRUE); + when(userDetailsService.loadUserByUsername(any(String.class))).thenReturn(stubUserNoPermission); + + // Act and Assert + mockMvc + .perform( + post("/iam/permission/bind") + .with(csrf()) + .contentType(MediaType.APPLICATION_JSON) + .content( + """ + { + "roleId": 1, + "permissionIds": [101, 102] + } + """)) + .andExpect(status().isOk()); + } +} diff --git a/backend/src/test/java/com/zl/mjga/unit/JwtUnitTest.java b/backend/src/test/java/com/zl/mjga/unit/JwtUnitTest.java new file mode 100644 index 0000000..5747e9a --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/unit/JwtUnitTest.java @@ -0,0 +1,79 @@ +package com.zl.mjga.unit; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import com.auth0.jwt.JWT; +import com.auth0.jwt.exceptions.JWTDecodeException; +import com.auth0.jwt.interfaces.DecodedJWT; +import com.zl.mjga.config.security.Jwt; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +public class JwtUnitTest { + + @Spy private Jwt jwt = new Jwt("M3pIZlfyzkJ5Hi9OL", 60); + + @Mock private HttpServletRequest request; + + @Mock private HttpServletResponse response; + + @Test + void createVerifyGetSubjectJwt_givenUserIdentify_shouldReturnTrueAndGetExpectIdentify() { + String token = jwt.create("1"); + assertThat(jwt.verify(token)).isTrue(); + assertThat(jwt.getSubject(token)).isEqualTo("1"); + } + + @Test + void getSubject_whenTokenIsInvalid_shouldThrowJWTDecodeException() { + String invalidToken = "invalid.token.here"; + assertThatThrownBy(() -> jwt.getSubject(invalidToken)).isInstanceOf(JWTDecodeException.class); + } + + @Test + void getSubject_whenTokenHasDifferentSecret_shouldReturnSubject() { + Jwt otherJwt = new Jwt("different_secret", 60); + String token = otherJwt.create("user123"); + + assertThat(jwt.verify(token)).isFalse(); + assertThat(jwt.getSubject(token)).isEqualTo("user123"); + } + + @Test + void getSubject_whenTokenIsNull_shouldThrowException() { + assertThatThrownBy(() -> jwt.getSubject(null)).isInstanceOf(JWTDecodeException.class); + } + + @Test + void create_WithVariousUserIdentifiers_ShouldCorrectlySetSubject() { + String[] identifiers = {"", "user@domain.com", "12345", "!@#$%"}; + for (String id : identifiers) { + String token = jwt.create(id); + assertThat(jwt.getSubject(token)).isEqualTo(id); + } + } + + @Test + void create_withDifferentSecret_shouldFailVerification() { + Jwt otherJwt = new Jwt("different_secret", 60); + String token = otherJwt.create("user"); + + assertThat(jwt.verify(token)).isFalse(); + } + + @Test + void create_WhenExpirationMinIsZero_shouldExpireImmediately() { + Jwt zeroExpirationJwt = new Jwt("secret", 0); + String token = zeroExpirationJwt.create("test"); + DecodedJWT decoded = JWT.decode(token); + + assertThat(decoded.getExpiresAt()).isEqualTo(decoded.getIssuedAt()); + } +} diff --git a/backend/src/test/java/com/zl/mjga/unit/PageRequestDtoUnitTest.java b/backend/src/test/java/com/zl/mjga/unit/PageRequestDtoUnitTest.java new file mode 100644 index 0000000..2da7882 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/unit/PageRequestDtoUnitTest.java @@ -0,0 +1,70 @@ +package com.zl.mjga.unit; + +import static org.assertj.core.api.Assertions.*; + +import com.zl.mjga.dto.PageRequestDto; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +public class PageRequestDtoUnitTest { + + @Test + void setSortBy_whenSortByFieldIsExpectFormat_thenDeserializeCorrect() { + String sortBy1 = "id asc,name desc"; + String sortBy2 = "id asc"; + String sortBy3 = "id asc,"; + String sortBy4 = ","; + String sortBy5 = ""; + PageRequestDto pageRequestDto1 = new PageRequestDto(); + PageRequestDto pageRequestDto2 = new PageRequestDto(); + PageRequestDto pageRequestDto3 = new PageRequestDto(); + PageRequestDto pageRequestDto4 = new PageRequestDto(); + PageRequestDto pageRequestDto5 = new PageRequestDto(); + pageRequestDto1.setSortBy(sortBy1); + pageRequestDto2.setSortBy(sortBy2); + pageRequestDto3.setSortBy(sortBy3); + pageRequestDto4.setSortBy(sortBy4); + pageRequestDto5.setSortBy(sortBy5); + assertThat( + pageRequestDto1 + .getSortBy() + .equals( + Map.of( + "id", PageRequestDto.Direction.ASC, "name", PageRequestDto.Direction.DESC))) + .isTrue(); + assertThat(pageRequestDto2.getSortBy().equals(Map.of("id", PageRequestDto.Direction.ASC))) + .isTrue(); + assertThat(pageRequestDto3.getSortBy().equals(Map.of("id", PageRequestDto.Direction.ASC))) + .isTrue(); + assertThat(pageRequestDto4.getSortBy().equals(new HashMap<>())).isTrue(); + assertThat(pageRequestDto5.getSortBy().equals(new HashMap<>())).isTrue(); + } + + @Test + void setSortBy_whenSortByFieldInvalidFormat_thenRaiseError() { + String sortBy1 = "id bbb"; + String sortBy2 = "2%^ asc"; + String sortBy3 = "id asc,*&23 desc"; + String sortBy4 = "id,name desc"; + String sortBy5 = ",name asc"; + PageRequestDto pageRequestDto = new PageRequestDto(); + assertThatThrownBy(() -> pageRequestDto.setSortBy(sortBy1)) + .isInstanceOf(IllegalArgumentException.class); + + assertThatThrownBy(() -> pageRequestDto.setSortBy(sortBy2)) + .isInstanceOf(IllegalArgumentException.class); + + assertThatThrownBy(() -> pageRequestDto.setSortBy(sortBy3)) + .isInstanceOf(IllegalArgumentException.class); + + assertThatThrownBy(() -> pageRequestDto.setSortBy(sortBy4)) + .isInstanceOf(IllegalArgumentException.class); + + assertThatThrownBy(() -> pageRequestDto.setSortBy(sortBy5)) + .isInstanceOf(IllegalArgumentException.class); + } +} diff --git a/backend/src/test/java/com/zl/mjga/unit/SignUnitTest.java b/backend/src/test/java/com/zl/mjga/unit/SignUnitTest.java new file mode 100644 index 0000000..2bca40f --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/unit/SignUnitTest.java @@ -0,0 +1,103 @@ +package com.zl.mjga.unit; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.Mockito.*; + +import com.zl.mjga.dto.sign.SignInDto; +import com.zl.mjga.dto.sign.SignUpDto; +import com.zl.mjga.exception.BusinessException; +import com.zl.mjga.model.urp.ERole; +import com.zl.mjga.repository.UserRepository; +import com.zl.mjga.service.IdentityAccessService; +import com.zl.mjga.service.SignService; +import java.util.List; +import org.jooq.generated.mjga.tables.pojos.User; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.security.crypto.password.PasswordEncoder; + +@ExtendWith(MockitoExtension.class) +public class SignUnitTest { + @InjectMocks @Spy private SignService signService; + + @Mock private UserRepository userRepository; + + @Mock private PasswordEncoder passwordEncoder; + + @Mock private IdentityAccessService identityAccessService; + + @Test + void signIn_givenValidSignInfo_shouldReturnUserId() { + // arrange + User stubUser = new User(); + stubUser.setId(1L); + stubUser.setUsername("testUserName"); + stubUser.setPassword("GjFH2fzRB2y7DDrO"); + when(userRepository.fetchOneByUsername("testUserName")).thenReturn(stubUser); + when(passwordEncoder.matches("GjFH2fzRB2y7DDrO", "GjFH2fzRB2y7DDrO")).thenReturn(true); + // action + Long userId = signService.signIn(new SignInDto("testUserName", "GjFH2fzRB2y7DDrO")); + assertThat(userId).isEqualTo(1L); + } + + @Test + void signIn_givenInvalidUserName_shouldThrowUserNotFoundException() { + when(userRepository.fetchOneByUsername("notFoundUserName")).thenReturn(null); + assertThatThrownBy( + () -> signService.signIn(new SignInDto("notFoundUserName", "GjFH2fzRB2y7DDrO"))) + .isInstanceOf(BusinessException.class); + } + + @Test + void signIn_givenInvalidPassword_shouldThrowBadCredentialsException() { + // arrange + User stubUser = new User(); + stubUser.setId(1L); + stubUser.setUsername("testUserName"); + stubUser.setPassword("GjFH2fzRB2y7DDrO"); + when(userRepository.fetchOneByUsername("testUserName")).thenReturn(stubUser); + when(passwordEncoder.matches("InvalidPassword", "GjFH2fzRB2y7DDrO")).thenReturn(false); + // action + assertThatThrownBy(() -> signService.signIn(new SignInDto("testUserName", "InvalidPassword"))) + .isInstanceOf(BusinessException.class); + } + + @Test + void signUp_givenDuplicateUsername_shouldThrowDuplicateException() { + SignUpDto signUpDto = new SignUpDto(); + signUpDto.setUsername("testUserName"); + signUpDto.setPassword("B0pjKYnIK67hz4"); + User stubUser = new User(); + stubUser.setId(1L); + stubUser.setUsername("testUserName"); + stubUser.setPassword("B0pjKYnIK67hz4"); + when(identityAccessService.isUsernameDuplicate(signUpDto.getUsername())).thenReturn(true); + assertThatThrownBy(() -> signService.signUp(signUpDto)).isInstanceOf(BusinessException.class); + } + + @Test + void signUp_givenValidUsername_shouldRunSuccess() { + SignUpDto signUpDto = new SignUpDto(); + signUpDto.setUsername("newUser"); + signUpDto.setPassword("B0pjKYnIK67hz4"); + User stubUser = new User(); + stubUser.setUsername("newUser"); + stubUser.setPassword("encodedB0pjKYnIK67hz4"); + User insertUser = new User(); + insertUser.setId(1L); + insertUser.setUsername("newUser"); + insertUser.setPassword("encodedB0pjKYnIK67hz4"); + when(identityAccessService.isUsernameDuplicate(signUpDto.getUsername())).thenReturn(false); + when(userRepository.fetchOneByUsername("newUser")).thenReturn(insertUser); + when(passwordEncoder.encode("B0pjKYnIK67hz4")).thenReturn("encodedB0pjKYnIK67hz4"); + signService.signUp(signUpDto); + verify(userRepository, times(1)).insert(stubUser); + verify(identityAccessService, times(1)) + .bindRoleModuleToUser(insertUser.getId(), List.of(ERole.GENERAL)); + } +} diff --git a/backend/src/test/java/com/zl/mjga/unit/UserRolePermissionUnitTest.java b/backend/src/test/java/com/zl/mjga/unit/UserRolePermissionUnitTest.java new file mode 100644 index 0000000..bd8ffd5 --- /dev/null +++ b/backend/src/test/java/com/zl/mjga/unit/UserRolePermissionUnitTest.java @@ -0,0 +1,408 @@ +package com.zl.mjga.unit; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.jooq.generated.mjga.tables.Permission.PERMISSION; +import static org.jooq.generated.mjga.tables.Role.ROLE; +import static org.jooq.generated.mjga.tables.User.USER; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.verify; + +import com.zl.mjga.dto.PageRequestDto; +import com.zl.mjga.dto.PageResponseDto; +import com.zl.mjga.dto.urp.*; +import com.zl.mjga.repository.*; +import com.zl.mjga.service.IdentityAccessService; +import java.sql.SQLException; +import java.util.List; +import org.jooq.*; +import org.jooq.Record; +import org.jooq.generated.mjga.tables.pojos.*; +import org.jooq.generated.mjga.tables.pojos.Role; +import org.jooq.generated.mjga.tables.pojos.User; +import org.jooq.impl.DSL; +import org.jooq.tools.jdbc.MockConnection; +import org.jooq.tools.jdbc.MockDataProvider; +import org.jooq.tools.jdbc.MockResult; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Spy; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.beans.BeanUtils; +import org.springframework.security.crypto.password.PasswordEncoder; + +@ExtendWith(MockitoExtension.class) +class UserRolePermissionUnitTest { + @InjectMocks @Spy private IdentityAccessService identityAccessService; + + @Mock private UserRepository userRepository; + + @Mock private RoleRepository roleRepository; + @Mock private UserRoleMapRepository userRoleMapRepository; + @Mock private PermissionRepository permissionRepository; + @Mock private RolePermissionMapRepository rolePermissionMapRepository; + @Mock private PasswordEncoder passwordEncoder; + + private static DSLContext dslContext; + + private static MockConnection connection; + + @BeforeAll + static void setUp() { + MockDataProvider provider = ctx -> new MockResult[0]; + connection = new MockConnection(provider); + dslContext = DSL.using(connection, SQLDialect.POSTGRES); + } + + @AfterAll + static void setDown() throws SQLException { + connection.close(); + } + + @Test + void pageQueryUser_selected2UserShouldReturnUserRolePermissionAndTotal() { + // arrange + Long stubUserId1 = 1L; + String stubUserName1 = "yEJVEJBC2j9PGi"; + String stubUserPassword1 = "c21W03p1201jCz"; + + Long stubUserId2 = 2L; + String stubUserName2 = "1jpziB82YUs3Jbh"; + String stubUserPassword2 = "c21W03p1201jCz"; + + Long stubRoleId = 1L; + String stubRoleName = "54X3UYRzx0wiy9"; + String stubRoleCode = "mzxN6WQA3AErI"; + + Long stubPermissionId = 1L; + String stubPermissionName = "BNOz058K9EWE"; + String stubPermissionCode = "BNOz058K9EWE"; + + Result mockResult = + dslContext.newResult( + List.of( + USER.ID, + USER.USERNAME, + USER.PASSWORD, + USER.ENABLE, + USER.CREATE_TIME, + DSL.field("total_user", Integer.class))); + mockResult.add( + dslContext + .newRecord( + USER.ID, + USER.USERNAME, + USER.PASSWORD, + USER.ENABLE, + USER.CREATE_TIME, + DSL.field("total_user", Integer.class)) + .values(stubUserId1, stubUserName2, stubUserPassword2, true, null, 2)); + mockResult.add( + dslContext + .newRecord( + USER.ID, + USER.USERNAME, + USER.PASSWORD, + USER.ENABLE, + USER.CREATE_TIME, + DSL.field("total_user", Integer.class)) + .values(stubUserId2, stubUserName2, stubUserPassword2, true, null, 2)); + UserRolePermissionDto mockUserRolePermissionDto1 = new UserRolePermissionDto(); + RoleDto mockRoleDto = new RoleDto(); + mockRoleDto.setId(stubRoleId); + mockRoleDto.setCode(stubRoleCode); + mockRoleDto.setName(stubRoleName); + PermissionRespDto permissionRespDto = new PermissionRespDto(); + permissionRespDto.setId(stubPermissionId); + permissionRespDto.setCode(stubPermissionCode); + permissionRespDto.setName(stubPermissionName); + mockRoleDto.getPermissions().add(permissionRespDto); + mockUserRolePermissionDto1.setId(stubUserId1); + mockUserRolePermissionDto1.setUsername(stubUserName1); + mockUserRolePermissionDto1.setPassword(stubUserPassword1); + mockUserRolePermissionDto1.getRoles().add(mockRoleDto); + + UserRolePermissionDto mockUserRolePermissionDto2 = new UserRolePermissionDto(); + mockUserRolePermissionDto2.setId(stubUserId2); + mockUserRolePermissionDto2.setUsername(stubUserName2); + mockUserRolePermissionDto2.setPassword(stubUserPassword2); + + doReturn(mockUserRolePermissionDto1) + .when(identityAccessService) + .queryUniqueUserWithRolePermission(stubUserId1); + doReturn(mockUserRolePermissionDto2) + .when(identityAccessService) + .queryUniqueUserWithRolePermission(stubUserId2); + when(userRepository.pageFetchBy(any(PageRequestDto.class), any(UserQueryDto.class))) + .thenReturn(mockResult); + + // action + PageResponseDto> result = + identityAccessService.pageQueryUser( + PageRequestDto.of(1, 10), new UserQueryDto(stubUserName2)); + + // assert + List userRolePermissionDtoList = result.getData(); + assertThat(result.getTotal()).isEqualTo(2L); + assertThat(userRolePermissionDtoList.size()).isEqualTo(2L); + assertThat(userRolePermissionDtoList.get(0).getRoles().size()).isEqualTo(1L); + assertThat(userRolePermissionDtoList.get(1).getRoles().size()).isEqualTo(0L); + assertThat(userRolePermissionDtoList.get(1).getUsername()).isEqualTo(stubUserName2); + assertThat(userRolePermissionDtoList.get(0).getRoles().get(0).getName()) + .isEqualTo(stubRoleName); + assertThat(userRolePermissionDtoList.get(0).getRoles().get(0).getPermissions().get(0).getCode()) + .isEqualTo(stubPermissionCode); + } + + @Test + void queryUser_selected0Row_shouldReturnEmptyListWithPage() { + Result mockResult = + dslContext.newResult( + List.of( + USER.ID, + USER.USERNAME, + USER.PASSWORD, + USER.ENABLE, + USER.CREATE_TIME, + DSL.field("total_user", Integer.class))); + when(userRepository.pageFetchBy(any(PageRequestDto.class), any(UserQueryDto.class))) + .thenReturn(mockResult); + PageResponseDto> result = + identityAccessService.pageQueryUser( + PageRequestDto.of(1, 10), new UserQueryDto("agydCO1Yi99a")); + assertThat(result.getTotal()).isEqualTo(0); + assertThat(result.getData()).isNull(); + } + + @Test + void + queryUniqueUserWithRolePermission_whenUserHasBeenFound_shouldReturnUniqueUserRolePermissionDto() { + Long stubUserId = 1L; + String stubUserName = "yEJVEJBC2j9PGi"; + String stubUserPassword = "c21W03p1201jCz"; + Long stubRoleId = 1L; + String stubRoleName = "G5N6Xkjg0i9UC4Vltv"; + String stubRoleCode = "G5N6Xkjg0i9UC4Vltv"; + + Long stubPermissionId = 1L; + String stubPermissionName = "BNOz058K9EWE"; + String stubPermissionCode = "BNOz058K9EWE"; + + Long stubPermissionId2 = 2L; + String stubPermissionName2 = "u6igc4BctOm1ON6X"; + String stubPermissionCode2 = "u6igc4BctOm1ON6X"; + + UserRolePermissionDto mockResult = new UserRolePermissionDto(); + mockResult.setUsername(stubUserName); + mockResult.setPassword(stubUserPassword); + mockResult.setId(stubRoleId); + mockResult.setRoles( + List.of( + new RoleDto( + stubRoleId, + stubRoleName, + stubRoleCode, + true, + List.of( + new PermissionRespDto( + stubPermissionId, stubPermissionName, stubPermissionCode, false), + new PermissionRespDto( + stubPermissionId2, stubPermissionName2, stubPermissionCode2, false))))); + + when(userRepository.fetchUniqueUserDtoWithNestedRolePermissionBy(stubUserId)) + .thenReturn(mockResult); + UserRolePermissionDto userRolePermissionDto = + identityAccessService.queryUniqueUserWithRolePermission(stubUserId); + assertThat(userRolePermissionDto).isNotNull(); + assertThat(userRolePermissionDto.getRoles().size()).isEqualTo(1L); + assertThat(userRolePermissionDto.getRoles().get(0).getPermissions().size()).isEqualTo(2L); + assertThat(userRolePermissionDto.getUsername()).isEqualTo(stubUserName); + assertThat(userRolePermissionDto.getRoles().get(0).getPermissions().get(0).getName()) + .isEqualTo(stubPermissionName); + assertThat(userRolePermissionDto.getRoles().get(0).getPermissions().get(0).getCode()) + .isEqualTo(stubPermissionCode); + } + + @Test + void queryUniqueUserWithRolePermission_whenUserNotFound_shouldReturnEmpty() { + UserRolePermissionDto mockResult = null; + when(userRepository.fetchUniqueUserDtoWithNestedRolePermissionBy(anyLong())) + .thenReturn(mockResult); + UserRolePermissionDto userRolePermissionDto = + identityAccessService.queryUniqueUserWithRolePermission(1L); + assertThat(userRolePermissionDto).isNull(); + } + + @Test + void pageQueryRole_whenRoleNotFound_shouldReturnEmpty() { + Result mockRoleResult = + dslContext.newResult( + List.of(ROLE.ID, ROLE.NAME, ROLE.CODE, DSL.field("total_role", Integer.class))); + when(roleRepository.pageFetchBy(any(PageRequestDto.class), any(RoleQueryDto.class))) + .thenReturn(mockRoleResult); + RoleQueryDto roleQueryDto = new RoleQueryDto(); + PageResponseDto> pageResult = + identityAccessService.pageQueryRole(PageRequestDto.of(1, 5), roleQueryDto); + assertThat(pageResult.getTotal()).isEqualTo(0L); + + roleQueryDto.setUserId(1L); + PageResponseDto> pageResult2 = + identityAccessService.pageQueryRole(PageRequestDto.of(1, 5), roleQueryDto); + assertThat(pageResult2.getTotal()).isEqualTo(0L); + } + + @Test + void pageQueryPermission_givenRoleId_shouldReturnPermissionDto() { + RolePermissionMap stubRolePermissionMap = new RolePermissionMap(); + stubRolePermissionMap.setRoleId(1L); + stubRolePermissionMap.setPermissionId(1L); + RolePermissionMap stubRolePermissionMap2 = new RolePermissionMap(); + stubRolePermissionMap2.setRoleId(1L); + stubRolePermissionMap2.setPermissionId(2L); + + Result mockRoleResult = + dslContext.newResult( + List.of( + PERMISSION.ID, + PERMISSION.NAME, + PERMISSION.CODE, + DSL.field("total_permission", Integer.class))); + mockRoleResult.addAll( + List.of( + dslContext + .newRecord( + PERMISSION.ID, + PERMISSION.NAME, + PERMISSION.CODE, + DSL.field("total_permission", Integer.class)) + .values(1L, "vP0dKiHJpMsi", "vP0dKiHJpMsi", 2), + dslContext + .newRecord( + PERMISSION.ID, + PERMISSION.NAME, + PERMISSION.CODE, + DSL.field("total_permission", Integer.class)) + .values(2L, "NHQED41jQQ4C1IgG", "NHQED41jQQ4C1IgG", 2))); + when(permissionRepository.pageFetchBy(any(PageRequestDto.class), any(PermissionQueryDto.class))) + .thenReturn(mockRoleResult); + PermissionQueryDto permissionQueryDto = new PermissionQueryDto(); + permissionQueryDto.setRoleId(1L); + PageResponseDto> pageResult = + identityAccessService.pageQueryPermission(PageRequestDto.of(1, 5), permissionQueryDto); + assertThat(pageResult.getTotal()).isEqualTo(2L); + List permissionResult = pageResult.getData(); + assertThat(permissionResult.get(0).getId()).isEqualTo(1L); + assertThat(permissionResult.get(1).getId()).isEqualTo(2L); + } + + @Test + void pageQueryPermission_permissionNotFound_shouldReturnEmpty() { + Result mockRoleResult = + dslContext.newResult( + List.of( + PERMISSION.ID, + PERMISSION.NAME, + PERMISSION.CODE, + DSL.field("total_permission", Integer.class))); + when(permissionRepository.pageFetchBy(any(PageRequestDto.class), any(PermissionQueryDto.class))) + .thenReturn(mockRoleResult); + PermissionQueryDto permissionQueryDto = new PermissionQueryDto(); + PageResponseDto> pageResult = + identityAccessService.pageQueryPermission(PageRequestDto.of(1, 5), permissionQueryDto); + + assertThat(pageResult.getTotal()).isEqualTo(0L); + permissionQueryDto.setRoleId(1L); + PageResponseDto> pageResult2 = + identityAccessService.pageQueryPermission(PageRequestDto.of(1, 5), permissionQueryDto); + assertThat(pageResult2.getTotal()).isEqualTo(0); + } + + @Test + void upsertUser_whenGivenUserDtoWithOutId_shouldCreatUser() { + UserUpsertDto userUpsertDto = new UserUpsertDto(); + userUpsertDto.setUsername("username"); + userUpsertDto.setPassword("password"); + userUpsertDto.setEnable(true); + User mockUser = new User(); + BeanUtils.copyProperties(userUpsertDto, mockUser); + when(passwordEncoder.encode(anyString())).thenReturn("password"); + identityAccessService.upsertUser(userUpsertDto); + verify(userRepository, times(1)).mergeWithoutNullFieldBy(mockUser); + } + + @Test + void upsertUser_whenGivenUserDtoWithId_shouldUpdateUser() { + UserUpsertDto userUpsertDto = new UserUpsertDto(); + userUpsertDto.setId(1L); + userUpsertDto.setUsername("username"); + userUpsertDto.setPassword("password"); + userUpsertDto.setEnable(true); + User mockUser = new User(); + BeanUtils.copyProperties(userUpsertDto, mockUser); + when(passwordEncoder.encode(anyString())).thenReturn("password"); + identityAccessService.upsertUser(userUpsertDto); + verify(userRepository, times(1)).mergeWithoutNullFieldBy(mockUser); + } + + @Test + void upsertRole_whenGivenRoleDtoWithOutId_shouldCreateRole() { + RoleUpsertDto roleUpsertDto = new RoleUpsertDto(); + roleUpsertDto.setCode("ROLE_ADMIN"); + roleUpsertDto.setName("Admin Role"); + + Role mockRole = new Role(); + BeanUtils.copyProperties(roleUpsertDto, mockRole); + + identityAccessService.upsertRole(roleUpsertDto); + + verify(roleRepository, times(1)).merge(mockRole); + } + + @Test + void upsertRole_whenGivenRoleDtoWithId_shouldUpdateRole() { + RoleUpsertDto roleUpsertDto = new RoleUpsertDto(); + roleUpsertDto.setId(1L); + roleUpsertDto.setCode("ROLE_ADMIN"); + roleUpsertDto.setName("Admin Role"); + + Role mockRole = new Role(); + BeanUtils.copyProperties(roleUpsertDto, mockRole); + + identityAccessService.upsertRole(roleUpsertDto); + + verify(roleRepository, times(1)).merge(mockRole); + } + + @Test + void upsertPermission_whenGivenPermissionDtoWithOutId_shouldCreatePermission() { + PermissionUpsertDto permissionUpsertDto = new PermissionUpsertDto(); + permissionUpsertDto.setCode("PERM_READ"); + permissionUpsertDto.setName("Read Permission"); + + Permission mockPermission = new Permission(); + BeanUtils.copyProperties(permissionUpsertDto, mockPermission); + + identityAccessService.upsertPermission(permissionUpsertDto); + + verify(permissionRepository, times(1)).merge(mockPermission); + } + + @Test + void upsertPermission_whenGivenPermissionDtoWithId_shouldUpdatePermission() { + PermissionUpsertDto permissionUpsertDto = new PermissionUpsertDto(); + permissionUpsertDto.setId(1L); + permissionUpsertDto.setCode("PERM_READ"); + permissionUpsertDto.setName("Read Permission"); + + Permission mockPermission = new Permission(); + BeanUtils.copyProperties(permissionUpsertDto, mockPermission); + + identityAccessService.upsertPermission(permissionUpsertDto); + + verify(permissionRepository, times(1)).merge(mockPermission); + } +} diff --git a/backend/src/test/resources/db/migration/test/V1_0_0__init_table.sql b/backend/src/test/resources/db/migration/test/V1_0_0__init_table.sql new file mode 100644 index 0000000..2cef2f3 --- /dev/null +++ b/backend/src/test/resources/db/migration/test/V1_0_0__init_table.sql @@ -0,0 +1,67 @@ +CREATE SCHEMA IF NOT EXISTS mjga; + +CREATE TABLE mjga.user ( + id BIGSERIAL PRIMARY KEY, + username VARCHAR NOT NULL UNIQUE, + create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + password VARCHAR NOT NULL, + enable BOOLEAN NOT NULL DEFAULT TRUE +); + +CREATE TABLE mjga.permission ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR NOT NULL UNIQUE, + name VARCHAR NOT NULL UNIQUE +); + +CREATE TABLE mjga.role ( + id BIGSERIAL PRIMARY KEY, + code VARCHAR NOT NULL UNIQUE, + name VARCHAR NOT NULL UNIQUE +); + +CREATE TABLE mjga.role_permission_map ( + role_id BIGINT NOT NULL, + permission_id BIGINT NOT NULL, + PRIMARY KEY (role_id, permission_id), + FOREIGN KEY (role_id) REFERENCES mjga.role(id) ON DELETE RESTRICT, + FOREIGN KEY (permission_id) REFERENCES mjga.permission(id) ON DELETE RESTRICT +); + +CREATE TABLE mjga.user_role_map ( + user_id BIGINT NOT NULL, + role_id BIGINT NOT NULL, + PRIMARY KEY (user_id, role_id), + FOREIGN KEY (user_id) REFERENCES mjga.user(id) ON DELETE RESTRICT, + FOREIGN KEY (role_id) REFERENCES mjga.role(id) ON DELETE RESTRICT +); + +CREATE TABLE mjga.department ( + id BIGSERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL UNIQUE, + parent_id BIGINT, + FOREIGN KEY (parent_id) + REFERENCES mjga.department(id) + ON DELETE RESTRICT +); + +CREATE TABLE mjga.user_department_map ( + user_id BIGINT NOT NULL, + department_id BIGINT NOT NULL, + PRIMARY KEY (user_id, department_id), + FOREIGN KEY (user_id) REFERENCES mjga.user(id) ON UPDATE NO ACTION ON DELETE RESTRICT, + FOREIGN KEY (department_id) REFERENCES mjga.department(id) ON UPDATE NO ACTION ON DELETE RESTRICT +); + +CREATE TABLE mjga.position ( + id BIGSERIAL PRIMARY KEY, + name VARCHAR(255) NOT NULL UNIQUE +); + +CREATE TABLE mjga.user_position_map ( + user_id BIGINT NOT NULL, + position_id BIGINT NOT NULL, + PRIMARY KEY (user_id, position_id), + FOREIGN KEY (user_id) REFERENCES mjga.user(id) ON UPDATE NO ACTION ON DELETE RESTRICT, + FOREIGN KEY (position_id) REFERENCES mjga.position(id) ON UPDATE NO ACTION ON DELETE RESTRICT +); \ No newline at end of file diff --git a/backend/src/test/resources/db/migration/test/V1_0_2__init_quartz.sql b/backend/src/test/resources/db/migration/test/V1_0_2__init_quartz.sql new file mode 100644 index 0000000..bc08e12 --- /dev/null +++ b/backend/src/test/resources/db/migration/test/V1_0_2__init_quartz.sql @@ -0,0 +1,194 @@ +CREATE SCHEMA IF NOT EXISTS public; + +SET search_path TO public; + +CREATE TABLE QRTZ_JOB_DETAILS +( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE BOOL NOT NULL, + IS_NONCONCURRENT BOOL NOT NULL, + IS_UPDATE_DATA BOOL NOT NULL, + REQUESTS_RECOVERY BOOL NOT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, JOB_NAME, JOB_GROUP) +); + +CREATE TABLE QRTZ_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT NULL, + PREV_FIRE_TIME BIGINT NULL, + PRIORITY INTEGER NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT NOT NULL, + END_TIME BIGINT NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR SMALLINT NULL, + JOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, JOB_NAME, JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS (SCHED_NAME, JOB_NAME, JOB_GROUP) +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT BIGINT NOT NULL, + REPEAT_INTERVAL BIGINT NOT NULL, + TIMES_TRIGGERED BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CRON_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(120) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13, 4) NULL, + DEC_PROP_2 NUMERIC(13, 4) NULL, + BOOL_PROP_1 BOOL NULL, + BOOL_PROP_2 BOOL NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA BYTEA NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CALENDARS +( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + CALENDAR BYTEA NOT NULL, + PRIMARY KEY (SCHED_NAME, CALENDAR_NAME) +); + + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS +( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME, TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS +( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME BIGINT NOT NULL, + SCHED_TIME BIGINT NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT BOOL NULL, + REQUESTS_RECOVERY BOOL NULL, + PRIMARY KEY (SCHED_NAME, ENTRY_ID) +); + +CREATE TABLE QRTZ_SCHEDULER_STATE +( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME BIGINT NOT NULL, + CHECKIN_INTERVAL BIGINT NOT NULL, + PRIMARY KEY (SCHED_NAME, INSTANCE_NAME) +); + +CREATE TABLE QRTZ_LOCKS +( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME, LOCK_NAME) +); + +CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY + ON QRTZ_JOB_DETAILS (SCHED_NAME, REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_J_GRP + ON QRTZ_JOB_DETAILS (SCHED_NAME, JOB_GROUP); + +CREATE INDEX IDX_QRTZ_T_J + ON QRTZ_TRIGGERS (SCHED_NAME, JOB_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_JG + ON QRTZ_TRIGGERS (SCHED_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_C + ON QRTZ_TRIGGERS (SCHED_NAME, CALENDAR_NAME); +CREATE INDEX IDX_QRTZ_T_G + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_T_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_G_STATE + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_GROUP, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME + ON QRTZ_TRIGGERS (SCHED_NAME, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST + ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_STATE, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP + ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_GROUP, TRIGGER_STATE); + +CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, INSTANCE_NAME); +CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, INSTANCE_NAME, REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_FT_J_G + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, JOB_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_JG + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_T_G + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_FT_TG + ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, TRIGGER_GROUP); + + +COMMIT; diff --git a/frontend/.env b/frontend/.env new file mode 100644 index 0000000..2014c6e --- /dev/null +++ b/frontend/.env @@ -0,0 +1,9 @@ +VITE_ENABLE_MOCK=true +VITE_APP_PORT=5173 +VITE_SOURCE_MAP=true +# mock +VITE_BASE_URL=http://localhost:5173 +# local +#VITE_BASE_URL=http://localhost:8080 +# dev +#VITE_BASE_URL=https://localhost/api diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..47f6cf4 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,181 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo + +test-results/ +playwright-report/ + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# SonarLint plugin +.idea/sonarlint/ + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# Auto-generated type declarations +auto-imports.d.ts +components.d.ts diff --git a/frontend/.nvmrc b/frontend/.nvmrc new file mode 100644 index 0000000..deed13c --- /dev/null +++ b/frontend/.nvmrc @@ -0,0 +1 @@ +lts/jod diff --git a/frontend/.vscode/extensions.json b/frontend/.vscode/extensions.json new file mode 100644 index 0000000..a8084df --- /dev/null +++ b/frontend/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "Vue.volar", + "vitest.explorer", + "ms-playwright.playwright" + ] +} diff --git a/frontend/.vscode/settings.json b/frontend/.vscode/settings.json new file mode 100644 index 0000000..5187624 --- /dev/null +++ b/frontend/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "tsconfig.json": "tsconfig.*.json, env.d.ts", + "vite.config.*": "jsconfig*, vitest.config.*, cypress.config.*, playwright.config.*", + "package.json": "package-lock.json, pnpm*, .yarnrc*, yarn*, .eslint*, eslint*, .prettier*, prettier*, .editorconfig" + }, + "files.associations": { + "*.css": "tailwindcss" + }, + "editor.quickSuggestions": { + "strings": "on" + }, + "tailwindCSS.classAttributes": ["class", "ui"], + "tailwindCSS.experimental.classRegex": [ + ["ui:\\s*{([^)]*)\\s*}", "(?:'|\"|`)([^']*)(?:'|\"|`)"] + ] +} diff --git a/frontend/biome.json b/frontend/biome.json new file mode 100644 index 0000000..e6b5818 --- /dev/null +++ b/frontend/biome.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "ignoreUnknown": false, + "ignore": ["api/schema/**", "public"] + }, + "formatter": { + "enabled": true, + "indentStyle": "tab" + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "style": { + "noNonNullAssertion": "off", + "noUnusedTemplateLiteral": "off" + } + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double" + } + } +} diff --git a/frontend/e2e/tsconfig.json b/frontend/e2e/tsconfig.json new file mode 100644 index 0000000..df0e963 --- /dev/null +++ b/frontend/e2e/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@tsconfig/node22/tsconfig.json", + "include": ["./**/*"] +} diff --git a/frontend/e2e/vue.spec.ts b/frontend/e2e/vue.spec.ts new file mode 100644 index 0000000..d5d7765 --- /dev/null +++ b/frontend/e2e/vue.spec.ts @@ -0,0 +1,8 @@ +import { expect, test } from "@playwright/test"; + +// See here how to get started: +// https://playwright.dev/docs/intro +test("visits the app root url", async ({ page }) => { + await page.goto("/"); + await expect(page.locator("h1")).toHaveText("You did it!"); +}); diff --git a/frontend/env.d.ts b/frontend/env.d.ts new file mode 100644 index 0000000..af756f6 --- /dev/null +++ b/frontend/env.d.ts @@ -0,0 +1,25 @@ +/// +interface ViteTypeOptions { + // By adding this line, you can make the type of ImportMetaEnv strict + // to disallow unknown keys. + strictImportMetaEnv: unknown; +} + +interface ImportMetaEnv { + readonly VITE_ENABLE_MOCK: "true" | "false"; + readonly VITE_BACKEND_PORT: string; + readonly VITE_BASE_URL: string; + readonly VITE_SOURCE_MAP: "true" | "false"; +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} + +interface AppConfig { + errorHandler?: ( + err: unknown, + instance: ComponentPublicInstance | null, + info: string, + ) => void; +} diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..9e5fc8f --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..7437daf --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,6449 @@ +{ + "name": "zhihu-frontend", + "version": "1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "zhihu-frontend", + "version": "1.0", + "dependencies": { + "@tailwindcss/vite": "^4.0.14", + "@vueuse/core": "^13.0.0", + "apexcharts": "^3.46.0", + "flowbite": "^3.1.2", + "openapi-fetch": "^0.13.5", + "pinia": "^3.0.1", + "tailwindcss": "^4.0.14", + "vue": "^3.5.13", + "vue-router": "^4.5.0", + "zod": "^3.24.2" + }, + "devDependencies": { + "@biomejs/biome": "^1.9.4", + "@faker-js/faker": "^9.6.0", + "@playwright/test": "^1.51.0", + "@tsconfig/node22": "^22.0.0", + "@types/node": "^22.13.9", + "@vitejs/plugin-vue": "^5.2.1", + "@vitest/browser": "^3.0.9", + "@vue/tsconfig": "^0.7.0", + "msw": "^2.8.2", + "npm-run-all2": "^7.0.2", + "openapi-typescript": "^7.6.1", + "playwright": "^1.51.1", + "typescript": "~5.8.0", + "vite": "^6.2.1", + "vite-plugin-vue-devtools": "^7.7.2", + "vitest": "^3.0.8", + "vitest-browser-vue": "^0.2.0", + "vue-tsc": "^2.2.8" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.27.1.tgz", + "integrity": "sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@biomejs/biome": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz", + "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==", + "dev": true, + "hasInstallScript": true, + "license": "MIT OR Apache-2.0", + "bin": { + "biome": "bin/biome" + }, + "engines": { + "node": ">=14.21.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/biome" + }, + "optionalDependencies": { + "@biomejs/cli-darwin-arm64": "1.9.4", + "@biomejs/cli-darwin-x64": "1.9.4", + "@biomejs/cli-linux-arm64": "1.9.4", + "@biomejs/cli-linux-arm64-musl": "1.9.4", + "@biomejs/cli-linux-x64": "1.9.4", + "@biomejs/cli-linux-x64-musl": "1.9.4", + "@biomejs/cli-win32-arm64": "1.9.4", + "@biomejs/cli-win32-x64": "1.9.4" + } + }, + "node_modules/@biomejs/cli-darwin-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz", + "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-darwin-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz", + "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz", + "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64-musl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz", + "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz", + "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64-musl": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz", + "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-arm64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz", + "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-x64": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz", + "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT OR Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@bundled-es-modules/cookie": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.1.tgz", + "integrity": "sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cookie": "^0.7.2" + } + }, + "node_modules/@bundled-es-modules/statuses": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz", + "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "statuses": "^2.0.1" + } + }, + "node_modules/@bundled-es-modules/tough-cookie": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz", + "integrity": "sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@types/tough-cookie": "^4.0.5", + "tough-cookie": "^4.1.4" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@faker-js/faker": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-9.7.0.tgz", + "integrity": "sha512-aozo5vqjCmDoXLNUJarFZx2IN/GgGaogY4TMJ6so/WLZOWpSV7fvj2dmrV6sEAnUm1O7aCrhTibjpzeDFgNqbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/fakerjs" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0.0", + "npm": ">=9.0.0" + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.9.tgz", + "integrity": "sha512-NgQCnHqFTjF7Ys2fsqK2WtnA8X1kHyInyG+nMIuHowVTIgIuS10T4AznI/PvbqSpJqjCUqNBlKGh1v3bwLFL4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.10", + "@inquirer/type": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.10.tgz", + "integrity": "sha512-roDaKeY1PYY0aCqhRmXihrHjoSW2A00pV3Ke5fTpMCkzcGF64R8e0lw3dK+eLEHwS4vB5RnW1wuQmvzoRul8Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/figures": "^1.0.11", + "@inquirer/type": "^3.0.6", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz", + "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.6.tgz", + "integrity": "sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mswjs/interceptors": { + "version": "0.37.6", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.37.6.tgz", + "integrity": "sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.3", + "strict-event-emitter": "^0.5.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, + "node_modules/@open-draft/until": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/test": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.52.0.tgz", + "integrity": "sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.52.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@redocly/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js-replace": "^1.0.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@redocly/config": { + "version": "0.22.2", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.22.2.tgz", + "integrity": "sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@redocly/openapi-core": { + "version": "1.34.3", + "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.34.3.tgz", + "integrity": "sha512-3arRdUp1fNx55itnjKiUhO6t4Mf91TsrTIYINDNLAZPS0TPd5YpiXRctwjel0qqWoOOhjA34cZ3m4dksLDFUYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@redocly/ajv": "^8.11.2", + "@redocly/config": "^0.22.0", + "colorette": "^1.2.0", + "https-proxy-agent": "^7.0.5", + "js-levenshtein": "^1.1.6", + "js-yaml": "^4.1.0", + "minimatch": "^5.0.1", + "pluralize": "^8.0.0", + "yaml-ast-parser": "0.0.43" + }, + "engines": { + "node": ">=18.17.0", + "npm": ">=9.5.0" + } + }, + "node_modules/@redocly/openapi-core/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz", + "integrity": "sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.6.tgz", + "integrity": "sha512-ed6zQbgmKsjsVvodAS1q1Ld2BolEuxJOSyyNc+vhkjdmfNUDCmQnlXBfQkHrlzNmslxHsQU/bFmzcEbv4xXsLg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.29.2", + "magic-string": "^0.30.17", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.6" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.6.tgz", + "integrity": "sha512-0bpEBQiGx+227fW4G0fLQ8vuvyy5rsB1YIYNapTq3aRsJ9taF3f5cCaovDjN5pUGKKzcpMrZst/mhNaKAPOHOA==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.4.3" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.6", + "@tailwindcss/oxide-darwin-arm64": "4.1.6", + "@tailwindcss/oxide-darwin-x64": "4.1.6", + "@tailwindcss/oxide-freebsd-x64": "4.1.6", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.6", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.6", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.6", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.6", + "@tailwindcss/oxide-linux-x64-musl": "4.1.6", + "@tailwindcss/oxide-wasm32-wasi": "4.1.6", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.6", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.6" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.6.tgz", + "integrity": "sha512-VHwwPiwXtdIvOvqT/0/FLH/pizTVu78FOnI9jQo64kSAikFSZT7K4pjyzoDpSMaveJTGyAKvDjuhxJxKfmvjiQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.6.tgz", + "integrity": "sha512-weINOCcqv1HVBIGptNrk7c6lWgSFFiQMcCpKM4tnVi5x8OY2v1FrV76jwLukfT6pL1hyajc06tyVmZFYXoxvhQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.6.tgz", + "integrity": "sha512-3FzekhHG0ww1zQjQ1lPoq0wPrAIVXAbUkWdWM8u5BnYFZgb9ja5ejBqyTgjpo5mfy0hFOoMnMuVDI+7CXhXZaQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.6.tgz", + "integrity": "sha512-4m5F5lpkBZhVQJq53oe5XgJ+aFYWdrgkMwViHjRsES3KEu2m1udR21B1I77RUqie0ZYNscFzY1v9aDssMBZ/1w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.6.tgz", + "integrity": "sha512-qU0rHnA9P/ZoaDKouU1oGPxPWzDKtIfX7eOGi5jOWJKdxieUJdVV+CxWZOpDWlYTd4N3sFQvcnVLJWJ1cLP5TA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.6.tgz", + "integrity": "sha512-jXy3TSTrbfgyd3UxPQeXC3wm8DAgmigzar99Km9Sf6L2OFfn/k+u3VqmpgHQw5QNfCpPe43em6Q7V76Wx7ogIQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.6.tgz", + "integrity": "sha512-8kjivE5xW0qAQ9HX9reVFmZj3t+VmljDLVRJpVBEoTR+3bKMnvC7iLcoSGNIUJGOZy1mLVq7x/gerVg0T+IsYw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.6.tgz", + "integrity": "sha512-A4spQhwnWVpjWDLXnOW9PSinO2PTKJQNRmL/aIl2U/O+RARls8doDfs6R41+DAXK0ccacvRyDpR46aVQJJCoCg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.6.tgz", + "integrity": "sha512-YRee+6ZqdzgiQAHVSLfl3RYmqeeaWVCk796MhXhLQu2kJu2COHBkqlqsqKYx3p8Hmk5pGCQd2jTAoMWWFeyG2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.6.tgz", + "integrity": "sha512-qAp4ooTYrBQ5pk5jgg54/U1rCJ/9FLYOkkQ/nTE+bVMseMfB6O7J8zb19YTpWuu4UdfRf5zzOrNKfl6T64MNrQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.9", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.6.tgz", + "integrity": "sha512-nqpDWk0Xr8ELO/nfRUDjk1pc9wDJ3ObeDdNMHLaymc4PJBWj11gdPCWZFKSK2AVKjJQC7J2EfmSmf47GN7OuLg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.6.tgz", + "integrity": "sha512-5k9xF33xkfKpo9wCvYcegQ21VwIBU1/qEbYlVukfEIyQbEA47uK8AAwS7NVjNE3vHzcmxMYwd0l6L4pPjjm1rQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.6.tgz", + "integrity": "sha512-zjtqjDeY1w3g2beYQtrMAf51n5G7o+UwmyOjtsDMP7t6XyoRMOidcoKP32ps7AkNOHIXEOK0bhIC05dj8oJp4w==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.6", + "@tailwindcss/oxide": "4.1.6", + "tailwindcss": "4.1.6" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tsconfig/node22": { + "version": "22.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.1.tgz", + "integrity": "sha512-VkgOa3n6jvs1p+r3DiwBqeEwGAwEvnVCg/hIjiANl5IEcqP3G0u5m8cBJspe1t9qjZRlZ7WFgqq5bJrGdgAKMg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.15.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.17.tgz", + "integrity": "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "license": "MIT" + }, + "node_modules/@types/statuses": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz", + "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitest/browser": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-3.1.3.tgz", + "integrity": "sha512-Dgyez9LbHJHl9ObZPo5mu4zohWLo7SMv8zRWclMF+dxhQjmOtEP0raEX13ac5ygcvihNoQPBZXdya5LMSbcCDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@testing-library/dom": "^10.4.0", + "@testing-library/user-event": "^14.6.1", + "@vitest/mocker": "3.1.3", + "@vitest/utils": "3.1.3", + "magic-string": "^0.30.17", + "sirv": "^3.0.1", + "tinyrainbow": "^2.0.0", + "ws": "^8.18.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "3.1.3", + "webdriverio": "^7.0.0 || ^8.0.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": true + }, + "safaridriver": { + "optional": true + }, + "webdriverio": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.3.tgz", + "integrity": "sha512-7FTQQuuLKmN1Ig/h+h/GO+44Q1IlglPlR2es4ab7Yvfx+Uk5xsv+Ykk+MEt/M2Yn/xGmzaLKxGw2lgy2bwuYqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.1.3", + "@vitest/utils": "3.1.3", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.3.tgz", + "integrity": "sha512-PJbLjonJK82uCWHjzgBJZuR7zmAOrSvKk1QBxrennDIgtH4uK0TB1PvYmc0XBCigxxtiAVPfWtAdy4lpz8SQGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.1.3", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.3.tgz", + "integrity": "sha512-i6FDiBeJUGLDKADw2Gb01UtUNb12yyXAqC/mmRWuYl+m/U9GS7s8us5ONmGkGpUUo7/iAYzI2ePVfOZTYvUifA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.3.tgz", + "integrity": "sha512-Tae+ogtlNfFei5DggOsSUvkIaSuVywujMj6HzR97AHK6XK8i3BuVyIifWAm/sE3a15lF5RH9yQIrbXYuo0IFyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.1.3", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.3.tgz", + "integrity": "sha512-XVa5OPNTYUsyqG9skuUkFzAeFnEzDp8hQu7kZ0N25B1+6KjGm4hWLtURyBbsIAOekfWQ7Wuz/N/XXzgYO3deWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.1.3", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.3.tgz", + "integrity": "sha512-x6w+ctOEmEXdWaa6TO4ilb7l9DxPR5bwEb6hILKuxfU1NqWT2mpJD9NJN7t3OTfxmVlOMrvtoFJGdgyzZ605lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.3.tgz", + "integrity": "sha512-2Ltrpht4OmHO9+c/nmHtF09HWiyWdworqnHIwjfvDyWjuwKbdkcS9AnhsDn+8E2RM4x++foD1/tNuLPVvWG1Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.1.3", + "loupe": "^3.1.3", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.13.tgz", + "integrity": "sha512-MnQJ7eKchJx5Oz+YdbqyFUk8BN6jasdJv31n/7r6/WwlOOv7qzvot6B66887l2ST3bUW4Mewml54euzpJWA6bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.13" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.13.tgz", + "integrity": "sha512-l/EBcc2FkvHgz2ZxV+OZK3kMSroMr7nN3sZLF2/f6kWW66q8+tEL4giiYyFjt0BcubqJhBt6soYIrAPhg/Yr+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.13.tgz", + "integrity": "sha512-Ukz4xv84swJPupZeoFsQoeJEOm7U9pqsEnaGGgt5ni3SCTa22m8oJP5Nng3Wed7Uw5RBELdLxxORX8YhJPyOgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.13", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz", + "integrity": "sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz", + "integrity": "sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "@vue/babel-helper-vue-transform-on": "1.4.0", + "@vue/babel-plugin-resolve-type": "1.4.0", + "@vue/shared": "^3.5.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.4.0.tgz", + "integrity": "sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/parser": "^7.26.9", + "@vue/compiler-sfc": "^3.5.13" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", + "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.13", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", + "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz", + "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.13", + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.48", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz", + "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.6.tgz", + "integrity": "sha512-b2Xx0KvXZObePpXPYHvBRRJLDQn5nhKjXh7vUhMEtWxz1AYNFOVIsh5+HLP8xDGL7sy+Q7hXeUxPHB/KgbtsPw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.6" + } + }, + "node_modules/@vue/devtools-core": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.7.6.tgz", + "integrity": "sha512-ghVX3zjKPtSHu94Xs03giRIeIWlb9M+gvDRVpIZ/cRIxKHdW6HE/sm1PT3rUYS3aV92CazirT93ne+7IOvGUWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.6", + "@vue/devtools-shared": "^7.7.6", + "mitt": "^3.0.1", + "nanoid": "^5.1.0", + "pathe": "^2.0.3", + "vite-hot-client": "^2.0.4" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-core/node_modules/nanoid": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.5.tgz", + "integrity": "sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.6.tgz", + "integrity": "sha512-geu7ds7tem2Y7Wz+WgbnbZ6T5eadOvozHZ23Atk/8tksHMFOFylKi1xgGlQlVn0wlkEf4hu+vd5ctj1G4kFtwA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.6", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.6.tgz", + "integrity": "sha512-yFEgJZ/WblEsojQQceuyK6FzpFDx4kqrz2ohInxNj5/DnhoX023upTv4OD6lNPLAA5LLkbwPVb10o/7b+Y4FVA==", + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.10.tgz", + "integrity": "sha512-+yNoYx6XIKuAO8Mqh1vGytu8jkFEOH5C8iOv3i8Z/65A7x9iAOXA97Q+PqZ3nlm2lxf5rOJuIGI/wDtx/riNYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "~2.4.11", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz", + "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz", + "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/shared": "3.5.13" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz", + "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.13", + "@vue/runtime-core": "3.5.13", + "@vue/shared": "3.5.13", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz", + "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "vue": "3.5.13" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", + "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "license": "MIT" + }, + "node_modules/@vue/test-utils": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz", + "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-beautify": "^1.14.9", + "vue-component-type-helpers": "^2.0.0" + } + }, + "node_modules/@vue/tsconfig": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.7.0.tgz", + "integrity": "sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": "5.x", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@vueuse/core": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-13.1.0.tgz", + "integrity": "sha512-PAauvdRXZvTWXtGLg8cPUFjiZEddTqmogdwYpnn60t08AA5a8Q4hZokBnpTOnVNqySlFlTcRYIC8OqreV4hv3Q==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.1.0", + "@vueuse/shared": "13.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-13.1.0.tgz", + "integrity": "sha512-+TDd7/a78jale5YbHX9KHW3cEDav1lz1JptwDvep2zSG8XjCsVE+9mHIzjTOaPbHUAk5XiE4jXLz51/tS+aKQw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-13.1.0.tgz", + "integrity": "sha512-IVS/qRRjhPTZ6C2/AM3jieqXACGwFZwWTdw5sNTSKk2m/ZpkuuN+ri+WCVUP8TqaKwJYt/KuMwmXspMAw8E6ew==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==", + "license": "MIT" + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/alien-signals": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-1.0.13.tgz", + "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/apexcharts": { + "version": "3.54.1", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.54.1.tgz", + "integrity": "sha512-E4et0h/J1U3r3EwS/WlqJCQIbepKbp6wGUmaAwJOMjHUP4Ci0gxanLa7FR3okx6p9coi4st6J853/Cb1NP0vpA==", + "license": "MIT", + "dependencies": { + "@yr/monotone-cubic-spline": "^1.0.3", + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/birpc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.3.0.tgz", + "integrity": "sha512-ijbtkn/F3Pvzb6jHypHRyve2QApOCZDR25D/VnkY2G/lBNcXCTsnsCxgY4k4PkVB7zfwzYbY3O9Lcqe3xufS5g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001717", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", + "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", + "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz", + "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/editorconfig": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/editorconfig/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.151", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.151.tgz", + "integrity": "sha512-Rl6uugut2l9sLojjS4H4SAr3A4IgACMLgpuEMPYCVcKydzfyPrn5absNRju38IhQOf/NwjJY8OGWjlteqYeBCA==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.5.tgz", + "integrity": "sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/execa": { + "version": "9.5.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.3.tgz", + "integrity": "sha512-QFNnTvU3UjgWFy8Ef9iDHvIdcgZ344ebkwYx4/KLbR+CKQA4xBaHzv+iRpp86QfMHP8faFQLh8iOc57215y4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.3", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.0", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.0.0" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expect-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", + "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flowbite": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/flowbite/-/flowbite-3.1.2.tgz", + "integrity": "sha512-MkwSgbbybCYgMC+go6Da5idEKUFfMqc/AmSjm/2ZbdmvoKf5frLPq/eIhXc9P+rC8t9boZtUXzHDgt5whZ6A/Q==", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.3", + "flowbite-datepicker": "^1.3.1", + "mini-svg-data-uri": "^1.4.3", + "postcss": "^8.5.1" + } + }, + "node_modules/flowbite-datepicker": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/flowbite-datepicker/-/flowbite-datepicker-1.3.2.tgz", + "integrity": "sha512-6Nfm0MCVX3mpaR7YSCjmEO2GO8CDt6CX8ZpQnGdeu03WUCWtEPQ/uy0PUiNtIJjJZWnX0Cm3H55MOhbD1g+E/g==", + "license": "MIT", + "dependencies": { + "@rollup/plugin-node-resolve": "^15.2.3", + "flowbite": "^2.0.0" + } + }, + "node_modules/flowbite-datepicker/node_modules/flowbite": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/flowbite/-/flowbite-2.5.2.tgz", + "integrity": "sha512-kwFD3n8/YW4EG8GlY3Od9IoKND97kitO+/ejISHSqpn3vw2i5K/+ZI8Jm2V+KC4fGdnfi0XZ+TzYqQb4Q1LshA==", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.3", + "flowbite-datepicker": "^1.3.0", + "mini-svg-data-uri": "^1.4.3" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-extra/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphql": { + "version": "16.11.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.11.0.tgz", + "integrity": "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/headers-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/index-to-position": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz", + "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" + }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-beautify": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", + "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.4.2", + "js-cookie": "^3.0.5", + "nopt": "^7.2.1" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/loupe": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lru-cache/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "license": "MIT", + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.2.tgz", + "integrity": "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mkdirp": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", + "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", + "license": "MIT", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/msw": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.8.2.tgz", + "integrity": "sha512-ugu8RBgUj6//RD0utqDDPdS+QIs36BKYkDAM6u59hcMVtFM4PM0vW4l3G1R+1uCWP2EWFUG8reT/gPXVEtx7/w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@bundled-es-modules/cookie": "^2.0.1", + "@bundled-es-modules/statuses": "^1.0.1", + "@bundled-es-modules/tough-cookie": "^0.1.6", + "@inquirer/confirm": "^5.0.0", + "@mswjs/interceptors": "^0.37.0", + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/until": "^2.1.0", + "@types/cookie": "^0.6.0", + "@types/statuses": "^2.0.4", + "graphql": "^16.8.1", + "headers-polyfill": "^4.0.2", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.3", + "path-to-regexp": "^6.3.0", + "picocolors": "^1.1.1", + "strict-event-emitter": "^0.5.1", + "type-fest": "^4.26.1", + "yargs": "^17.7.2" + }, + "bin": { + "msw": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mswjs" + }, + "peerDependencies": { + "typescript": ">= 4.8.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm-run-all2": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-7.0.2.tgz", + "integrity": "sha512-7tXR+r9hzRNOPNTvXegM+QzCuMjzUIIq66VDunL6j60O4RrExx32XUhlrS7UK4VcdGw5/Wxzb3kfNcFix9JKDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "cross-spawn": "^7.0.6", + "memorystream": "^0.3.1", + "minimatch": "^9.0.0", + "pidtree": "^0.6.0", + "read-package-json-fast": "^4.0.0", + "shell-quote": "^1.7.3", + "which": "^5.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "npm-run-all2": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0", + "npm": ">= 9" + } + }, + "node_modules/npm-run-all2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.2.tgz", + "integrity": "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openapi-fetch": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.13.7.tgz", + "integrity": "sha512-3QdcAgvLFZ4j9Rcja7/Tq1j0qyv/LPqnHzwtMz5gKj6iddTdP48r+FZd8rmb+6xL9CdnJ5OmgdM0CpgGBi6Fgg==", + "license": "MIT", + "dependencies": { + "openapi-typescript-helpers": "^0.0.15" + } + }, + "node_modules/openapi-typescript": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-7.7.1.tgz", + "integrity": "sha512-apa45jEOxcVfYHTD9eHpW0cR8yQn7jQFTCnSWNdjKbWmyjha8CMj1LdGHdk0Z70kFSR6EfjdDuOCY7PFICrNSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@redocly/openapi-core": "^1.34.2", + "ansi-colors": "^4.1.3", + "change-case": "^5.4.4", + "parse-json": "^8.3.0", + "supports-color": "^9.4.0", + "yargs-parser": "^21.1.1" + }, + "bin": { + "openapi-typescript": "bin/cli.js" + }, + "peerDependencies": { + "typescript": "^5.x" + } + }, + "node_modules/openapi-typescript-helpers": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.0.15.tgz", + "integrity": "sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==", + "license": "MIT" + }, + "node_modules/openapi-typescript/node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/outvariant": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", + "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", + "dev": true, + "license": "MIT" + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pinia": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.2.tgz", + "integrity": "sha512-sH2JK3wNY809JOeiiURUR0wehJ9/gd9qFN2Y828jCbxEzKEmEt0pzCXwqiSTfuRsK9vQsOflSdnbdBOGrhtn+g==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.2" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/playwright": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.52.0.tgz", + "integrity": "sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.52.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.52.0.tgz", + "integrity": "sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-ms": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz", + "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/read-package-json-fast": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-4.0.0.tgz", + "integrity": "sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==", + "dev": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^4.0.0", + "npm-normalize-package-bin": "^4.0.0" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", + "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "dev": true, + "license": "MIT" + }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "license": "MIT", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==", + "license": "MIT" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "license": "MIT", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.6.tgz", + "integrity": "sha512-j0cGLTreM6u4OWzBeLBpycK0WIh8w7kSwcUsQZoGLHZ7xDTdM69lN64AgoIEEwFi0tnhs4wSykUa5YWxAzgFYg==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.0.1", + "mkdirp": "^3.0.1", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinypool": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", + "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js-replace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz", + "integrity": "sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-hot-client": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-2.0.4.tgz", + "integrity": "sha512-W9LOGAyGMrbGArYJN4LBCdOC5+Zwh7dHvOHC0KmGKkJhsOzaKbpo/jEjpPKVHIW0/jBWj8RZG0NUxfgA8BxgAg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0" + } + }, + "node_modules/vite-node": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.3.tgz", + "integrity": "sha512-uHV4plJ2IxCl4u1up1FQRrqclylKAogbtBfOTwcuJ28xFi+89PZ57BRh+naIRvH70HPwxy5QHYzg1OrEaC7AbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.0", + "es-module-lexer": "^1.7.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.9.tgz", + "integrity": "sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.10", + "@rollup/pluginutils": "^5.1.3", + "debug": "^4.3.7", + "error-stack-parser-es": "^0.1.5", + "fs-extra": "^11.2.0", + "open": "^10.1.0", + "perfect-debounce": "^1.0.0", + "picocolors": "^1.1.1", + "sirv": "^3.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-vue-devtools": { + "version": "7.7.6", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.7.6.tgz", + "integrity": "sha512-L7nPVM5a7lgit/Z+36iwoqHOaP3wxqVi1UvaDJwGCfblS9Y6vNqf32ILlzJVH9c47aHu90BhDXeZc+rgzHRHcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-core": "^7.7.6", + "@vue/devtools-kit": "^7.7.6", + "@vue/devtools-shared": "^7.7.6", + "execa": "^9.5.2", + "sirv": "^3.0.1", + "vite-plugin-inspect": "0.8.9", + "vite-plugin-vue-inspector": "^5.3.1" + }, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0" + } + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.3.1.tgz", + "integrity": "sha512-cBk172kZKTdvGpJuzCCLg8lJ909wopwsu3Ve9FsL1XsnLBiRT9U3MePcqrgGHgCX2ZgkqZmAGR8taxw+TV6s7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0" + } + }, + "node_modules/vite/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/vitest": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.3.tgz", + "integrity": "sha512-188iM4hAHQ0km23TN/adso1q5hhwKqUpv+Sd6p5sOuh6FhQnRNW3IsiIpvxqahtBabsJ2SLZgmGSpcYK4wQYJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "3.1.3", + "@vitest/mocker": "3.1.3", + "@vitest/pretty-format": "^3.1.3", + "@vitest/runner": "3.1.3", + "@vitest/snapshot": "3.1.3", + "@vitest/spy": "3.1.3", + "@vitest/utils": "3.1.3", + "chai": "^5.2.0", + "debug": "^4.4.0", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.13", + "tinypool": "^1.0.2", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0", + "vite-node": "3.1.3", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.1.3", + "@vitest/ui": "3.1.3", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest-browser-vue": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/vitest-browser-vue/-/vitest-browser-vue-0.2.0.tgz", + "integrity": "sha512-18v3uUQebbtSba2jbqcRvqfUCebd3f0nFA3BLKFZF9P0vnj7QgOm2JAxlcCA1ytNSnyzV3OtnNeNpThRaW6AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/test-utils": "^2.4.6" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "^2.1.0 || ^3.0.0-0", + "vitest": "^2.1.0 || ^3.0.0-0", + "vue": "^3.0.0" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz", + "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.13", + "@vue/compiler-sfc": "3.5.13", + "@vue/runtime-dom": "3.5.13", + "@vue/server-renderer": "3.5.13", + "@vue/shared": "3.5.13" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-type-helpers": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.2.10.tgz", + "integrity": "sha512-iDUO7uQK+Sab2tYuiP9D1oLujCWlhHELHMgV/cB13cuGbG4qwkLHvtfWb6FzvxrIOPDnU0oHsz2MlQjhYDeaHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-router": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", + "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/vue-tsc": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.2.10.tgz", + "integrity": "sha512-jWZ1xSaNbabEV3whpIDMbjVSVawjAyW+x1n3JeGQo7S0uv2n9F/JMgWW90tGWNFRKya4YwKMZgCtr0vRAM7DeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "~2.4.11", + "@vue/language-core": "2.2.10" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/which": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ws": { + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", + "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..3e9c639 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,55 @@ +{ + "name": "zhihu-frontend", + "version": "1.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "run-p type-check \"build-only {@}\" --", + "preview": "vite preview", + "generate:api": "openapi-typescript ./src/api/schema/openapi.json -o ./src/api/types/schema.d.ts", + "format": "biome format --write .", + "lint": "biome lint --write .", + "check": "biome check --write .", + "test:unit": "vitest", + "test:e2e": "playwright test", + "test:ts": "tsc --noEmit", + "build-only": "vite build", + "type-check": "vue-tsc --build" + }, + "dependencies": { + "@tailwindcss/vite": "^4.0.14", + "@vueuse/core": "^13.0.0", + "apexcharts": "^3.46.0", + "flowbite": "^3.1.2", + "openapi-fetch": "^0.13.5", + "pinia": "^3.0.1", + "tailwindcss": "^4.0.14", + "vue": "^3.5.13", + "vue-router": "^4.5.0", + "zod": "^3.24.2" + }, + "devDependencies": { + "@biomejs/biome": "^1.9.4", + "@faker-js/faker": "^9.6.0", + "@playwright/test": "^1.51.0", + "@tsconfig/node22": "^22.0.0", + "@types/node": "^22.13.9", + "@vitejs/plugin-vue": "^5.2.1", + "@vitest/browser": "^3.0.9", + "@vue/tsconfig": "^0.7.0", + "msw": "^2.8.2", + "npm-run-all2": "^7.0.2", + "openapi-typescript": "^7.6.1", + "playwright": "^1.51.1", + "typescript": "~5.8.0", + "vite": "^6.2.1", + "vite-plugin-vue-devtools": "^7.7.2", + "vitest": "^3.0.8", + "vitest-browser-vue": "^0.2.0", + "vue-tsc": "^2.2.8" + }, + "msw": { + "workerDirectory": ["public"] + } +} diff --git a/frontend/playwright.config.ts b/frontend/playwright.config.ts new file mode 100644 index 0000000..4016283 --- /dev/null +++ b/frontend/playwright.config.ts @@ -0,0 +1,111 @@ +import process from "node:process"; +import { defineConfig, devices } from "@playwright/test"; + +/** + * Read environment variables from file. + * https://github.com/motdotla/dotenv + */ +// require('dotenv').config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: "./e2e", + /* Maximum time one test can run for. */ + timeout: 30 * 1000, + expect: { + /** + * Maximum time expect() should wait for the condition to be met. + * For example in `await expect(locator).toHaveText();` + */ + timeout: 5000, + }, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: "html", + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ + actionTimeout: 0, + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: process.env.CI ? "http://localhost:4173" : "http://localhost:5173", + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: "on-first-retry", + screenshot: "off", + video: "off", + /* Only on CI systems run the tests headless */ + headless: !!process.env.CI, + }, + + /* Configure projects for major browsers */ + projects: [ + { + name: "chromium", + use: { + ...devices["Desktop Chrome"], + }, + }, + { + name: "firefox", + use: { + ...devices["Desktop Firefox"], + }, + }, + { + name: "webkit", + use: { + ...devices["Desktop Safari"], + }, + }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { + // ...devices['Pixel 5'], + // }, + // }, + // { + // name: 'Mobile Safari', + // use: { + // ...devices['iPhone 12'], + // }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { + // channel: 'msedge', + // }, + // }, + // { + // name: 'Google Chrome', + // use: { + // channel: 'chrome', + // }, + // }, + ], + + /* Folder for test artifacts such as screenshots, videos, traces, etc. */ + // outputDir: 'test-results/', + + /* Run your local dev server before starting the tests */ + webServer: { + /** + * Use the dev server by default for faster feedback loop. + * Use the preview server on CI for more realistic testing. + * Playwright will re-use the local server if there is already a dev-server running. + */ + command: process.env.CI ? "npm run preview" : "npm run dev", + port: process.env.CI ? 4173 : 5173, + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/frontend/public/mockServiceWorker.js b/frontend/public/mockServiceWorker.js new file mode 100644 index 0000000..7500d41 --- /dev/null +++ b/frontend/public/mockServiceWorker.js @@ -0,0 +1,307 @@ +/* eslint-disable */ +/* tslint:disable */ + +/** + * Mock Service Worker. + * @see https://github.com/mswjs/msw + * - Please do NOT modify this file. + * - Please do NOT serve this file on production. + */ + +const PACKAGE_VERSION = '2.8.2' +const INTEGRITY_CHECKSUM = '00729d72e3b82faf54ca8b9621dbb96f' +const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') +const activeClientIds = new Set() + +self.addEventListener('install', function () { + self.skipWaiting() +}) + +self.addEventListener('activate', function (event) { + event.waitUntil(self.clients.claim()) +}) + +self.addEventListener('message', async function (event) { + const clientId = event.source.id + + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break + } + + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: { + packageVersion: PACKAGE_VERSION, + checksum: INTEGRITY_CHECKSUM, + }, + }) + break + } + + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) + + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: { + client: { + id: client.id, + frameType: client.frameType, + }, + }, + }) + break + } + + case 'MOCK_DEACTIVATE': { + activeClientIds.delete(clientId) + break + } + + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) + + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +self.addEventListener('fetch', function (event) { + const { request } = event + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = crypto.randomUUID() + event.respondWith(handleRequest(event, requestId)) +}) + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const responseClone = response.clone() + + sendToClient( + client, + { + type: 'RESPONSE', + payload: { + requestId, + isMockedResponse: IS_MOCKED_RESPONSE in response, + type: responseClone.type, + status: responseClone.status, + statusText: responseClone.statusText, + body: responseClone.body, + headers: Object.fromEntries(responseClone.headers.entries()), + }, + }, + [responseClone.body], + ) + })() + } + + return response +} + +// Resolve the main client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (activeClientIds.has(event.clientId)) { + return client + } + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function getResponse(event, client, requestId) { + const { request } = event + + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const requestClone = request.clone() + + function passthrough() { + // Cast the request headers to a new Headers instance + // so the headers can be manipulated with. + const headers = new Headers(requestClone.headers) + + // Remove the "accept" header value that marked this request as passthrough. + // This prevents request alteration and also keeps it compliant with the + // user-defined CORS policies. + const acceptHeader = headers.get('accept') + if (acceptHeader) { + const values = acceptHeader.split(',').map((value) => value.trim()) + const filteredValues = values.filter( + (value) => value !== 'msw/passthrough', + ) + + if (filteredValues.length > 0) { + headers.set('accept', filteredValues.join(', ')) + } else { + headers.delete('accept') + } + } + + return fetch(requestClone, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const requestBuffer = await request.arrayBuffer() + const clientMessage = await sendToClient( + client, + { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + mode: request.mode, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: requestBuffer, + keepalive: request.keepalive, + }, + }, + [requestBuffer], + ) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'PASSTHROUGH': { + return passthrough() + } + } + + return passthrough() +} + +function sendToClient(client, message, transferrables = []) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage( + message, + [channel.port2].concat(transferrables.filter(Boolean)), + ) + }) +} + +async function respondWithMock(response) { + // Setting response status code to 0 is a no-op. + // However, when responding with a "Response.error()", the produced Response + // instance will have status code set to 0. Since it's not possible to create + // a Response instance with status code 0, handle that use-case separately. + if (response.status === 0) { + return Response.error() + } + + const mockedResponse = new Response(response.body, response) + + Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { + value: true, + enumerable: true, + }) + + return mockedResponse +} diff --git a/frontend/public/trump.jpg b/frontend/public/trump.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7cdbcb549a523fb5315a4b98e9e2e5bb6de7df8c GIT binary patch literal 29021 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

fW!(PzC)WtrPv3 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 +import { RouterLink, RouterView } from "vue-router"; +import Alert from "./components/Alert.vue"; + + + + + diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts new file mode 100644 index 0000000..b0e2a78 --- /dev/null +++ b/frontend/src/api/client.ts @@ -0,0 +1,69 @@ +import createClient, { type Middleware } from "openapi-fetch"; +import useAuthStore from "../composables/store/useAuthStore"; +import { + ForbiddenError, + SystemError, + UnAuthError, + InternalServerError, +} from "../types/error"; +import type { paths } from "./types/schema"; // generated by openapi-typescript + +const myMiddleware: Middleware = { + onRequest({ request, options }) { + const authStore = useAuthStore(); + request.headers.set("Authorization", authStore.get()); + return request; + }, + async onResponse({ request, response, options }) { + const { body, ...resOptions } = response; + if (response.status >= 400 && response.status < 500) { + if (response.status === 401) { + handleAuthError(response); + } else if (response.status === 403) { + handleForbiddenError(response); + } else { + handleSystemError(response); + } + } else if (response.status >= 500) { + await handleBusinessError(response); + } else { + return response; + } + }, + async onError({ error }) { + // wrap errors thrown by fetch + return; + }, +}; + +const client = createClient({ + baseUrl: `${import.meta.env.VITE_BASE_URL}`, + querySerializer: { + object: { + style: "form", + explode: true, + }, + }, +}); + +// register middleware +client.use(myMiddleware); + +const handleAuthError = (response: Response) => { + throw new UnAuthError(response.status); +}; + +const handleForbiddenError = (response: Response) => { + throw new ForbiddenError(response.status); +}; + +const handleSystemError = (response: Response) => { + throw new SystemError(response.status); +}; + +const handleBusinessError = async (response: Response) => { + const data = await response.json(); + throw new InternalServerError(response.status, data.detail); +}; + +export default client; diff --git a/frontend/src/api/mocks/authHandlers.ts b/frontend/src/api/mocks/authHandlers.ts new file mode 100644 index 0000000..277666a --- /dev/null +++ b/frontend/src/api/mocks/authHandlers.ts @@ -0,0 +1,10 @@ +import { faker } from "@faker-js/faker"; +import { http, HttpResponse } from "msw"; + +export default [ + http.post("/auth/sign-in", () => { + const response = HttpResponse.json(); + response.headers.set("Authorization", faker.string.alpha(16)); + return response; + }), +]; diff --git a/frontend/src/api/mocks/departmentHandlers.ts b/frontend/src/api/mocks/departmentHandlers.ts new file mode 100644 index 0000000..674f99a --- /dev/null +++ b/frontend/src/api/mocks/departmentHandlers.ts @@ -0,0 +1,39 @@ +import { faker } from "@faker-js/faker"; +import { http, HttpResponse } from "msw"; + +export default [ + http.get("/department/page-query", () => { + const generateDepartment = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + name: faker.company.name(), + parentId: faker.number.int({ min: 1, max: 100 }), + isBound: faker.datatype.boolean(), + parentName: faker.company.name(), + }); + const mockData = { + data: faker.helpers.multiple(generateDepartment, { count: 10 }), + total: 30, + }; + return HttpResponse.json(mockData); + }), + http.get("/department/query", () => { + const generateDepartment = () => ({ + id: faker.number.int({ min: 1, max: 30 }), + name: faker.company.name(), + parentId: faker.number.int({ min: 1, max: 30 }), + parentName: faker.company.name(), + }); + const mockData = faker.helpers.multiple(generateDepartment, { count: 30 }); + + return HttpResponse.json(mockData); + }), + + http.post("/department", () => { + console.log("Captured department upsert"); + return HttpResponse.json(); + }), + http.delete("/department", () => { + console.log("Captured department delete"); + return HttpResponse.json(); + }), +]; diff --git a/frontend/src/api/mocks/permissionHandlers.ts b/frontend/src/api/mocks/permissionHandlers.ts new file mode 100644 index 0000000..873d603 --- /dev/null +++ b/frontend/src/api/mocks/permissionHandlers.ts @@ -0,0 +1,43 @@ +import { faker } from "@faker-js/faker"; +import { http, HttpResponse } from "msw"; + +export default [ + http.get("/iam/permissions", () => { + const generatePermission = () => ({ + id: faker.number.int({ min: 1, max: 20 }), + code: `perm_${faker.lorem.words({ min: 1, max: 1 })}`, + name: faker.lorem.words({ min: 1, max: 1 }), + isBound: faker.datatype.boolean(), + }); + + const mockData = { + data: faker.helpers.multiple(generatePermission, { count: 10 }), + total: 20, + }; + return HttpResponse.json(mockData); + }), + + http.post("/iam/permission", async ({ request }) => { + console.log('Captured a "POST /posts" request'); + return HttpResponse.json(); + }), + + http.delete("/iam/permission", ({ params }) => { + console.log(`Captured a "DELETE /posts/${params.id}" request`); + return HttpResponse.json(); + }), + + http.post("/iam/roles/:roleId/bind-permission", ({ params, request }) => { + console.log( + `Captured a "POST /urp/roles/${params.roleId}/bind-permission" request`, + ); + return HttpResponse.json(); + }), + + http.post("/iam/roles/:roleId/unbind-permission", ({ params, request }) => { + console.log( + `Captured a "POST /urp/roles/${params.roleId}/unbind-permission" request`, + ); + return HttpResponse.json(); + }), +]; diff --git a/frontend/src/api/mocks/positionHandlers.ts b/frontend/src/api/mocks/positionHandlers.ts new file mode 100644 index 0000000..04a08d1 --- /dev/null +++ b/frontend/src/api/mocks/positionHandlers.ts @@ -0,0 +1,35 @@ +import { faker } from "@faker-js/faker"; +import { http, HttpResponse } from "msw"; + +export default [ + http.get("/position/page-query", () => { + const generatePosition = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + name: faker.person.jobTitle(), + isBound: faker.datatype.boolean(), + }); + const mockData = { + data: faker.helpers.multiple(generatePosition, { count: 10 }), + total: 30, + }; + return HttpResponse.json(mockData); + }), + http.get("/position/query", () => { + const generatePosition = () => ({ + id: faker.number.int({ min: 1, max: 30 }), + name: faker.person.jobTitle(), + }); + const mockData = faker.helpers.multiple(generatePosition, { count: 30 }); + + return HttpResponse.json(mockData); + }), + + http.post("/position", () => { + console.log("Captured position upsert"); + return HttpResponse.json(); + }), + http.delete("/position", () => { + console.log("Captured position delete"); + return HttpResponse.json(); + }), +]; diff --git a/frontend/src/api/mocks/roleHandlers.ts b/frontend/src/api/mocks/roleHandlers.ts new file mode 100644 index 0000000..1b69b23 --- /dev/null +++ b/frontend/src/api/mocks/roleHandlers.ts @@ -0,0 +1,77 @@ +import { faker } from "@faker-js/faker"; +import { http, HttpResponse } from "msw"; + +export default [ + http.get("/iam/roles", () => { + const generatePermission = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: `perm_${faker.lorem.word()}`, + name: faker.lorem.words({ min: 1, max: 3 }), + }); + + const generateRole = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: faker.helpers.arrayElement([ + "admin", + "editor", + "viewer", + "manager", + ]), + name: faker.person.jobTitle(), + isBound: faker.datatype.boolean(), + permissions: faker.helpers.multiple(generatePermission, { + count: { min: 1, max: 5 }, + }), + }); + + const mockData = { + data: faker.helpers.multiple(generateRole, { count: 10 }), + total: 20, + }; + + return HttpResponse.json(mockData); + }), + http.get("/iam/role", ({ params }) => { + const generatePermission = () => ({ + id: faker.number.int({ min: 1, max: 10 }), + code: `perm_${faker.lorem.word()}`, + name: faker.lorem.words({ min: 1, max: 3 }), + }); + + const generateRole = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: faker.helpers.arrayElement([ + "admin", + "editor", + "viewer", + "manager", + ]), + name: faker.person.jobTitle(), + permissions: faker.helpers.multiple(generatePermission, { + count: { min: 1, max: 5 }, + }), + }); + + return HttpResponse.json(generateRole()); + }), + + http.post("/iam/role", async ({ request }) => { + console.log('Captured a "POST /urp/role" request'); + return HttpResponse.json(); + }), + + http.post("/iam/permission/bind", async ({ request }) => { + console.log('Captured a "POST /iam/permission/bind" request'); + return HttpResponse.json(); + }), + + http.post("/iam/permission/unbind", async ({ request }) => { + console.log('Captured a "POST /iam/permission/unbind" request'); + return HttpResponse.json(); + }), + + http.delete("/iam/role", ({ params }) => { + console.log(`Captured a "DELETE /urp/role ${params.id}" request`); + return HttpResponse.json(); + }), +]; diff --git a/frontend/src/api/mocks/schedulerHandlers.ts b/frontend/src/api/mocks/schedulerHandlers.ts new file mode 100644 index 0000000..381257e --- /dev/null +++ b/frontend/src/api/mocks/schedulerHandlers.ts @@ -0,0 +1,53 @@ +import { faker } from "@faker-js/faker"; +import { http, HttpResponse } from "msw"; + +export default [ + http.get("/scheduler/page-query", () => { + const generateJobs = () => ({ + name: faker.word.sample(), + group: faker.helpers.arrayElement(["default", "system", "custom"]), + className: `com.example.jobs.${faker.word.sample()}Job`, + jobDataMap: { + dirty: faker.datatype.boolean(), + allowsTransientData: faker.datatype.boolean(), + keys: faker.helpers.multiple(() => faker.word.sample(), { count: 3 }), + empty: false, + wrappedMap: {}, + }, + triggerName: faker.word.sample(), + triggerGroup: faker.helpers.arrayElement(["DEFAULT", "SYSTEM"]), + schedulerType: faker.helpers.arrayElement(["CRON", "SIMPLE"]), + triggerState: faker.helpers.arrayElement(["PAUSE", "WAITING"]), + cronExpression: "0 0/30 * * * ?", + startTime: faker.date.past().getTime(), + endTime: faker.date.future().getTime(), + nextFireTime: faker.date.soon().getTime(), + previousFireTime: faker.date.recent().getTime(), + triggerJobDataMap: { + dirty: faker.datatype.boolean(), + allowsTransientData: true, + keys: [], + empty: true, + wrappedMap: {}, + }, + }); + + const mockData = { + data: faker.helpers.multiple(generateJobs, { count: 20 }), + total: 20, + }; + return HttpResponse.json(mockData); + }), + http.post("/scheduler/trigger/resume", () => { + console.log('Captured a "POST /scheduler/trigger/resume" request'); + return HttpResponse.json(); + }), + http.post("/scheduler/trigger/pause", () => { + console.log('Captured a "POST /scheduler/trigger/pause" request'); + return HttpResponse.json(); + }), + http.put("/scheduler/job/update", () => { + console.log('Captured a "POST /scheduler/job/update" request'); + return HttpResponse.json(); + }), +]; diff --git a/frontend/src/api/mocks/setup.ts b/frontend/src/api/mocks/setup.ts new file mode 100644 index 0000000..0209acb --- /dev/null +++ b/frontend/src/api/mocks/setup.ts @@ -0,0 +1,17 @@ +import { setupWorker } from "msw/browser"; +import authHandlers from "./authHandlers"; +import jobHandlers from "./schedulerHandlers"; +import permissionHandlers from "./permissionHandlers"; +import roleHandlers from "./roleHandlers"; +import userHandlers from "./userHandlers"; +import departmentHandlers from "./departmentHandlers"; +import positionHandlers from "./positionHandlers"; +export const worker = setupWorker( + ...userHandlers, + ...authHandlers, + ...roleHandlers, + ...permissionHandlers, + ...jobHandlers, + ...departmentHandlers, + ...positionHandlers, +); diff --git a/frontend/src/api/mocks/userHandlers.ts b/frontend/src/api/mocks/userHandlers.ts new file mode 100644 index 0000000..d13d8c3 --- /dev/null +++ b/frontend/src/api/mocks/userHandlers.ts @@ -0,0 +1,188 @@ +import { faker } from "@faker-js/faker"; +import { http, HttpResponse } from "msw"; +import { ROLE } from "../../router/constants"; + +export default [ + http.get("/iam/user", () => { + const generatePermission = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: `perm_${faker.lorem.words({ min: 1, max: 1 })}`, + name: faker.lorem.words({ min: 1, max: 1 }), + }); + + const generateRole = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: faker.helpers.arrayElement([ + ROLE.ADMIN, + "editor", + "viewer", + "manager", + ]), + name: faker.person.jobTitle(), + permissions: faker.helpers.multiple(generatePermission, { + count: { min: 1, max: 5 }, + }), + }); + + const generateDepartment = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: `dept_${faker.lorem.word()}`, + name: faker.company.name(), + parentId: faker.number.int({ min: 1, max: 30 }), + enable: faker.datatype.boolean(), + }); + + const generateUser = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + username: faker.internet.email(), + password: faker.internet.password(), + enable: faker.datatype.boolean(), + roles: faker.helpers.multiple(generateRole, { + count: { min: 1, max: 3 }, + }), + createTime: faker.date.recent({ days: 30 }).toISOString(), + permissions: faker.helpers.multiple(generatePermission, { + count: { min: 1, max: 5 }, + }), + departments: faker.helpers.multiple(generateDepartment, { + count: { min: 0, max: 3 }, + }), + }); + + return HttpResponse.json(generateUser()); + }), + http.get("/iam/users", () => { + const generatePermission = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: `perm_${faker.lorem.word()}`, + name: faker.lorem.words({ min: 1, max: 3 }), + }); + + const generateRole = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: [ROLE.ADMIN, "editor", "viewer", "manager"], + name: faker.person.jobTitle(), + permissions: faker.helpers.multiple(generatePermission, { + count: { min: 1, max: 5 }, + }), + }); + + const generateDepartment = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: `dept_${faker.lorem.word()}`, + name: faker.company.name(), + parentId: faker.number.int({ min: 1, max: 30 }), + enable: faker.datatype.boolean(), + }); + + const generateUser = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + username: faker.internet.email(), + password: faker.internet.password(), + enable: faker.datatype.boolean(), + roles: faker.helpers.multiple(generateRole, { + count: { min: 1, max: 3 }, + }), + createTime: faker.date.recent({ days: 30 }).toISOString(), + permissions: faker.helpers.multiple(generatePermission, { + count: { min: 1, max: 5 }, + }), + departments: faker.helpers.multiple(generateDepartment, { + count: { min: 0, max: 3 }, + }), + }); + + const mockData = { + data: faker.helpers.multiple(generateUser, { count: 10 }), + total: 30, + }; + return HttpResponse.json(mockData); + }), + http.post("/api/users/:userId/departments", () => { + console.log('Captured a "POST /api/users/:userId/departments" request'); + return HttpResponse.json({ success: true }); + }), + http.delete("/api/users/:userId/departments", () => { + console.log('Captured a "DELETE /api/users/:userId/departments" request'); + return HttpResponse.json({ success: true }); + }), + http.post("/iam/user", () => { + console.log('Captured a "POST /posts" request'); + return HttpResponse.json(); + }), + http.delete("/iam/user", ({ params }) => { + console.log(`Captured a "DELETE /posts/${params.id}" request`); + return HttpResponse.json(); + }), + http.post("/iam/me", () => { + console.log('Captured a "POST /posts" request'); + return HttpResponse.json(); + }), + http.post("/iam/role/bind", () => { + console.log('Captured a "POST /posts" request'); + return HttpResponse.json(); + }), + http.post("/iam/role/unbind", () => { + console.log('Captured a "POST /posts" request'); + return HttpResponse.json(); + }), + http.get("/iam/me", () => { + const generatePermission = () => ({ + id: faker.number.int({ min: 1, max: 1000 }), + code: `perm_${faker.lorem.word()}`, + name: faker.lorem.words({ min: 1, max: 3 }), + }); + + const generateRole = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: [ROLE.ADMIN, "editor", "viewer", "manager"], + name: faker.person.jobTitle(), + permissions: faker.helpers.multiple(generatePermission, { + count: { min: 1, max: 5 }, + }), + }); + + const generateDepartment = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + code: `dept_${faker.lorem.word()}`, + name: faker.company.name(), + parentId: faker.number.int({ min: 1, max: 30 }), + enable: faker.datatype.boolean(), + }); + + const generateUser = () => ({ + id: faker.number.int({ min: 1, max: 100 }), + username: faker.internet.email(), + password: faker.internet.password(), + enable: faker.datatype.boolean(), + roles: faker.helpers.multiple(generateRole, { + count: { min: 1, max: 3 }, + }), + createTime: faker.date.recent({ days: 30 }).toISOString(), + permissions: faker.helpers.multiple(generatePermission, { + count: { min: 1, max: 5 }, + }), + departments: faker.helpers.multiple(generateDepartment, { + count: { min: 0, max: 3 }, + }), + }); + const mockData = generateUser(); + return HttpResponse.json(mockData); + }), + http.post("/department/unbind", () => { + console.log("Captured a 'POST /department/unbind' request"); + return HttpResponse.json(); + }), + http.post("/department/bind", () => { + console.log("Captured a 'POST /department/bind' request"); + return HttpResponse.json(); + }), + http.post("/iam/position/bind", () => { + console.log('Captured a "POST /posts" request'); + return HttpResponse.json(); + }), + http.post("/iam/position/unbind", () => { + console.log('Captured a "POST /posts" request'); + return HttpResponse.json(); + }), +]; diff --git a/frontend/src/api/schema/openapi.json b/frontend/src/api/schema/openapi.json new file mode 100644 index 0000000..9bc68c8 --- /dev/null +++ b/frontend/src/api/schema/openapi.json @@ -0,0 +1,1651 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "OpenAPI definition", + "version": "v0" + }, + "servers": [ + { + "url": "http://localhost:8080", + "description": "Generated server url" + } + ], + "paths": { + "/scheduler/job/update": { + "put": { + "tags": [ + "scheduler-controller" + ], + "operationId": "updateJob", + "parameters": [ + { + "name": "cron", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerKeyDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/scheduler/trigger/resume": { + "post": { + "tags": [ + "scheduler-controller" + ], + "operationId": "resumeTrigger", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerKeyDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/scheduler/trigger/pause": { + "post": { + "tags": [ + "scheduler-controller" + ], + "operationId": "pauseTrigger", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerKeyDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/scheduler/job/trigger": { + "post": { + "tags": [ + "scheduler-controller" + ], + "operationId": "triggerJob", + "parameters": [ + { + "name": "startAt", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JobKeyDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/position": { + "post": { + "tags": [ + "position-controller" + ], + "operationId": "upsertPosition", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Position" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "position-controller" + ], + "operationId": "deletePosition", + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/user": { + "get": { + "tags": [ + "identity-access-controller" + ], + "operationId": "queryUserWithRolePermission", + "parameters": [ + { + "name": "userId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UserRolePermissionDto" + } + } + } + } + } + }, + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "upsertUser", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserUpsertDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "identity-access-controller" + ], + "operationId": "deleteUser", + "parameters": [ + { + "name": "userId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/role": { + "get": { + "tags": [ + "identity-access-controller" + ], + "operationId": "queryRoleWithPermission", + "parameters": [ + { + "name": "roleId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + } + } + } + } + }, + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "upsertRole", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleUpsertDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "identity-access-controller" + ], + "operationId": "deleteRole", + "parameters": [ + { + "name": "roleId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/role/unbind": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "unBindRoleBy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleBindDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/role/bind": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "bindRoleBy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleBindDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/position/unbind": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "unBindPositionBy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PositionBindDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/position/bind": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "bindPositionBy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PositionBindDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/permission": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "upsertPermission", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionUpsertDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "identity-access-controller" + ], + "operationId": "deletePermission", + "parameters": [ + { + "name": "permissionId", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/permission/unbind": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "unBindPermissionBy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionBindDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/permission/bind": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "bindPermissionBy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PermissionBindDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/me": { + "get": { + "tags": [ + "identity-access-controller" + ], + "operationId": "currentUser", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/UserRolePermissionDto" + } + } + } + } + } + }, + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "upsertMe", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserUpsertDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/department/unbind": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "unBindDepartmentBy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DepartmentBindDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/iam/department/bind": { + "post": { + "tags": [ + "identity-access-controller" + ], + "operationId": "bindDepartmentBy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DepartmentBindDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/department": { + "post": { + "tags": [ + "department-controller" + ], + "operationId": "upsertDepartment", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Department" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "department-controller" + ], + "operationId": "deleteDepartment", + "parameters": [ + { + "name": "id", + "in": "query", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/auth/sign-up": { + "post": { + "tags": [ + "sign-controller" + ], + "operationId": "signUp", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SignUpDto" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created" + } + } + } + }, + "/auth/sign-out": { + "post": { + "tags": [ + "sign-controller" + ], + "operationId": "signOut", + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/auth/sign-in": { + "post": { + "tags": [ + "sign-controller" + ], + "operationId": "signIn", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SignInDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/scheduler/page-query": { + "get": { + "tags": [ + "scheduler-controller" + ], + "operationId": "pageQuery", + "parameters": [ + { + "name": "pageRequestDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/PageRequestDto" + } + }, + { + "name": "queryDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/QueryDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseDtoListJobTriggerDto" + } + } + } + } + } + } + }, + "/position/query": { + "get": { + "tags": [ + "position-controller" + ], + "operationId": "queryPositions", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Position" + } + } + } + } + } + } + } + }, + "/position/page-query": { + "get": { + "tags": [ + "position-controller" + ], + "operationId": "pageQueryPositions", + "parameters": [ + { + "name": "pageRequestDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/PageRequestDto" + } + }, + { + "name": "positionQueryDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/PositionQueryDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseDtoListPositionRespDto" + } + } + } + } + } + } + }, + "/iam/users": { + "get": { + "tags": [ + "identity-access-controller" + ], + "operationId": "queryUsers", + "parameters": [ + { + "name": "pageRequestDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/PageRequestDto" + } + }, + { + "name": "userQueryDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/UserQueryDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseDtoListUserRolePermissionDto" + } + } + } + } + } + } + }, + "/iam/roles": { + "get": { + "tags": [ + "identity-access-controller" + ], + "operationId": "queryRoles", + "parameters": [ + { + "name": "pageRequestDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/PageRequestDto" + } + }, + { + "name": "roleQueryDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/RoleQueryDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseDtoListRoleDto" + } + } + } + } + } + } + }, + "/iam/permissions": { + "get": { + "tags": [ + "identity-access-controller" + ], + "operationId": "queryPermissions", + "parameters": [ + { + "name": "pageRequestDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/PageRequestDto" + } + }, + { + "name": "permissionQueryDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/PermissionQueryDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseDtoListPermissionRespDto" + } + } + } + } + } + } + }, + "/department/query": { + "get": { + "tags": [ + "department-controller" + ], + "operationId": "queryDepartments", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Department" + } + } + } + } + } + } + } + }, + "/department/page-query": { + "get": { + "tags": [ + "department-controller" + ], + "operationId": "pageQueryDepartments", + "parameters": [ + { + "name": "pageRequestDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/PageRequestDto" + } + }, + { + "name": "departmentQueryDto", + "in": "query", + "required": true, + "schema": { + "$ref": "#/components/schemas/DepartmentQueryDto" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseDtoListDepartmentRespDto" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "TriggerKeyDto": { + "required": [ + "group", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "group": { + "type": "string" + } + } + }, + "JobKeyDto": { + "required": [ + "group", + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "group": { + "type": "string" + } + } + }, + "Position": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + } + } + }, + "UserUpsertDto": { + "required": [ + "enable", + "username" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + }, + "enable": { + "type": "boolean" + } + } + }, + "RoleUpsertDto": { + "required": [ + "code", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "code": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "RoleBindDto": { + "required": [ + "roleIds", + "userId" + ], + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int64" + }, + "roleIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "PositionBindDto": { + "required": [ + "positionIds", + "userId" + ], + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int64" + }, + "positionIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "PermissionUpsertDto": { + "required": [ + "code", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "code": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "PermissionBindDto": { + "required": [ + "permissionIds", + "roleId" + ], + "type": "object", + "properties": { + "roleId": { + "type": "integer", + "format": "int64" + }, + "permissionIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "DepartmentBindDto": { + "required": [ + "departmentIds", + "userId" + ], + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int64" + }, + "departmentIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "Department": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "parentId": { + "type": "integer", + "format": "int64" + } + } + }, + "SignUpDto": { + "required": [ + "password", + "username" + ], + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "SignInDto": { + "required": [ + "password", + "username" + ], + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "PageRequestDto": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int64" + }, + "size": { + "type": "integer", + "format": "int64" + }, + "sortBy": { + "type": "object", + "additionalProperties": { + "type": "string", + "enum": [ + "ASC", + "DESC" + ] + } + }, + "offset": { + "type": "integer", + "format": "int64" + }, + "sortFields": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SortFieldObject" + } + } + } + }, + "SortFieldObject": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "order": { + "type": "string", + "enum": [ + "ASC", + "DESC", + "DEFAULT" + ] + } + } + }, + "QueryDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, + "JobTriggerDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "group": { + "type": "string" + }, + "className": { + "type": "string" + }, + "jobDataMap": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "triggerName": { + "type": "string" + }, + "triggerGroup": { + "type": "string" + }, + "schedulerType": { + "type": "string" + }, + "cronExpression": { + "type": "string" + }, + "startTime": { + "type": "integer", + "format": "int64" + }, + "endTime": { + "type": "integer", + "format": "int64" + }, + "nextFireTime": { + "type": "integer", + "format": "int64" + }, + "previousFireTime": { + "type": "integer", + "format": "int64" + }, + "triggerState": { + "type": "string" + }, + "triggerJobDataMap": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "PageResponseDtoListJobTriggerDto": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobTriggerDto" + } + } + } + }, + "PositionQueryDto": { + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "bindState": { + "type": "string", + "enum": [ + "BIND", + "UNBIND", + "ALL" + ] + } + } + }, + "PageResponseDtoListPositionRespDto": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PositionRespDto" + } + } + } + }, + "PositionRespDto": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "parentId": { + "type": "integer", + "format": "int64" + }, + "isBound": { + "type": "boolean" + } + } + }, + "UserQueryDto": { + "type": "object", + "properties": { + "username": { + "type": "string" + } + } + }, + "PageResponseDtoListUserRolePermissionDto": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRolePermissionDto" + } + } + } + }, + "PermissionRespDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "isBound": { + "type": "boolean" + } + } + }, + "RoleDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "isBound": { + "type": "boolean" + }, + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionRespDto" + } + } + } + }, + "UserRolePermissionDto": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string", + "writeOnly": true + }, + "enable": { + "type": "boolean" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "createTime": { + "type": "string", + "format": "date-time" + }, + "permissions": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionRespDto" + } + } + } + }, + "RoleQueryDto": { + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int64" + }, + "roleId": { + "type": "integer", + "format": "int64" + }, + "roleCode": { + "type": "string" + }, + "roleName": { + "type": "string" + }, + "roleIdList": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "bindState": { + "type": "string", + "enum": [ + "BIND", + "UNBIND", + "ALL" + ] + } + } + }, + "PageResponseDtoListRoleDto": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleDto" + } + } + } + }, + "PermissionQueryDto": { + "type": "object", + "properties": { + "roleId": { + "type": "integer", + "format": "int64" + }, + "permissionId": { + "type": "integer", + "format": "int64" + }, + "permissionCode": { + "type": "string" + }, + "permissionName": { + "type": "string" + }, + "permissionIdList": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "bindState": { + "type": "string", + "enum": [ + "BIND", + "UNBIND", + "ALL" + ] + } + } + }, + "PageResponseDtoListPermissionRespDto": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionRespDto" + } + } + } + }, + "DepartmentQueryDto": { + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "bindState": { + "type": "string", + "enum": [ + "BIND", + "UNBIND", + "ALL" + ] + } + } + }, + "DepartmentRespDto": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "parentId": { + "type": "integer", + "format": "int64" + }, + "parentName": { + "type": "string" + }, + "isBound": { + "type": "boolean" + } + } + }, + "PageResponseDtoListDepartmentRespDto": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DepartmentRespDto" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/frontend/src/api/types/schema.d.ts b/frontend/src/api/types/schema.d.ts new file mode 100644 index 0000000..f72ffc4 --- /dev/null +++ b/frontend/src/api/types/schema.d.ts @@ -0,0 +1,1512 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/scheduler/job/update": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put: operations["updateJob"]; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/scheduler/trigger/resume": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["resumeTrigger"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/scheduler/trigger/pause": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["pauseTrigger"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/scheduler/job/trigger": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["triggerJob"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/position": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["upsertPosition"]; + delete: operations["deletePosition"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/user": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["queryUserWithRolePermission"]; + put?: never; + post: operations["upsertUser"]; + delete: operations["deleteUser"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/role": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["queryRoleWithPermission"]; + put?: never; + post: operations["upsertRole"]; + delete: operations["deleteRole"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/role/unbind": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["unBindRoleBy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/role/bind": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["bindRoleBy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/position/unbind": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["unBindPositionBy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/position/bind": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["bindPositionBy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/permission": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["upsertPermission"]; + delete: operations["deletePermission"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/permission/unbind": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["unBindPermissionBy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/permission/bind": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["bindPermissionBy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/me": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["currentUser"]; + put?: never; + post: operations["upsertMe"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/department/unbind": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["unBindDepartmentBy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/department/bind": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["bindDepartmentBy"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/department": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["upsertDepartment"]; + delete: operations["deleteDepartment"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/auth/sign-up": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["signUp"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/auth/sign-out": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["signOut"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/auth/sign-in": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + post: operations["signIn"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/scheduler/page-query": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["pageQuery"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/position/query": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["queryPositions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/position/page-query": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["pageQueryPositions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/users": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["queryUsers"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/roles": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["queryRoles"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/iam/permissions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["queryPermissions"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/department/query": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["queryDepartments"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/department/page-query": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get: operations["pageQueryDepartments"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + TriggerKeyDto: { + name: string; + group: string; + }; + JobKeyDto: { + name: string; + group: string; + }; + Position: { + /** Format: int64 */ + id?: number; + name?: string; + }; + UserUpsertDto: { + /** Format: int64 */ + id?: number; + username: string; + password?: string; + enable: boolean; + }; + RoleUpsertDto: { + /** Format: int64 */ + id?: number; + code: string; + name: string; + }; + RoleBindDto: { + /** Format: int64 */ + userId: number; + roleIds: number[]; + }; + PositionBindDto: { + /** Format: int64 */ + userId: number; + positionIds: number[]; + }; + PermissionUpsertDto: { + /** Format: int64 */ + id?: number; + code: string; + name: string; + }; + PermissionBindDto: { + /** Format: int64 */ + roleId: number; + permissionIds: number[]; + }; + DepartmentBindDto: { + /** Format: int64 */ + userId: number; + departmentIds: number[]; + }; + Department: { + /** Format: int64 */ + id?: number; + name?: string; + /** Format: int64 */ + parentId?: number; + }; + SignUpDto: { + username: string; + password: string; + }; + SignInDto: { + username: string; + password: string; + }; + PageRequestDto: { + /** Format: int64 */ + page?: number; + /** Format: int64 */ + size?: number; + sortBy?: { + [key: string]: "ASC" | "DESC"; + }; + /** Format: int64 */ + offset?: number; + sortFields?: components["schemas"]["SortFieldObject"][]; + }; + SortFieldObject: { + name?: string; + /** @enum {string} */ + order?: "ASC" | "DESC" | "DEFAULT"; + }; + QueryDto: { + name?: string; + }; + JobTriggerDto: { + name?: string; + group?: string; + className?: string; + jobDataMap?: { + [key: string]: Record; + }; + triggerName?: string; + triggerGroup?: string; + schedulerType?: string; + cronExpression?: string; + /** Format: int64 */ + startTime?: number; + /** Format: int64 */ + endTime?: number; + /** Format: int64 */ + nextFireTime?: number; + /** Format: int64 */ + previousFireTime?: number; + triggerState?: string; + triggerJobDataMap?: { + [key: string]: Record; + }; + }; + PageResponseDtoListJobTriggerDto: { + /** Format: int64 */ + total?: number; + data?: components["schemas"]["JobTriggerDto"][]; + }; + PositionQueryDto: { + /** Format: int64 */ + userId?: number; + name?: string; + /** @enum {string} */ + bindState?: "BIND" | "UNBIND" | "ALL"; + }; + PageResponseDtoListPositionRespDto: { + /** Format: int64 */ + total?: number; + data?: components["schemas"]["PositionRespDto"][]; + }; + PositionRespDto: { + /** Format: int64 */ + id: number; + name: string; + /** Format: int64 */ + parentId?: number; + isBound?: boolean; + }; + UserQueryDto: { + username?: string; + }; + PageResponseDtoListUserRolePermissionDto: { + /** Format: int64 */ + total?: number; + data?: components["schemas"]["UserRolePermissionDto"][]; + }; + PermissionRespDto: { + /** Format: int64 */ + id?: number; + code?: string; + name?: string; + isBound?: boolean; + }; + RoleDto: { + /** Format: int64 */ + id?: number; + code?: string; + name?: string; + isBound?: boolean; + permissions?: components["schemas"]["PermissionRespDto"][]; + }; + UserRolePermissionDto: { + /** Format: int64 */ + id?: number; + username?: string; + password?: string; + enable?: boolean; + roles?: components["schemas"]["RoleDto"][]; + /** Format: date-time */ + createTime?: string; + permissions?: components["schemas"]["PermissionRespDto"][]; + }; + RoleQueryDto: { + /** Format: int64 */ + userId?: number; + /** Format: int64 */ + roleId?: number; + roleCode?: string; + roleName?: string; + roleIdList?: number[]; + /** @enum {string} */ + bindState?: "BIND" | "UNBIND" | "ALL"; + }; + PageResponseDtoListRoleDto: { + /** Format: int64 */ + total?: number; + data?: components["schemas"]["RoleDto"][]; + }; + PermissionQueryDto: { + /** Format: int64 */ + roleId?: number; + /** Format: int64 */ + permissionId?: number; + permissionCode?: string; + permissionName?: string; + permissionIdList?: number[]; + /** @enum {string} */ + bindState?: "BIND" | "UNBIND" | "ALL"; + }; + PageResponseDtoListPermissionRespDto: { + /** Format: int64 */ + total?: number; + data?: components["schemas"]["PermissionRespDto"][]; + }; + DepartmentQueryDto: { + /** Format: int64 */ + userId?: number; + name?: string; + enable?: boolean; + /** @enum {string} */ + bindState?: "BIND" | "UNBIND" | "ALL"; + }; + DepartmentRespDto: { + /** Format: int64 */ + id: number; + name: string; + /** Format: int64 */ + parentId?: number; + parentName?: string; + isBound?: boolean; + }; + PageResponseDtoListDepartmentRespDto: { + /** Format: int64 */ + total?: number; + data?: components["schemas"]["DepartmentRespDto"][]; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + updateJob: { + parameters: { + query: { + cron: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TriggerKeyDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + resumeTrigger: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TriggerKeyDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + pauseTrigger: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["TriggerKeyDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + triggerJob: { + parameters: { + query: { + startAt: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["JobKeyDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + upsertPosition: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Position"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + deletePosition: { + parameters: { + query: { + id: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + queryUserWithRolePermission: { + parameters: { + query: { + userId: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["UserRolePermissionDto"]; + }; + }; + }; + }; + upsertUser: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UserUpsertDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + deleteUser: { + parameters: { + query: { + userId: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + queryRoleWithPermission: { + parameters: { + query: { + roleId: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["RoleDto"]; + }; + }; + }; + }; + upsertRole: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RoleUpsertDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + deleteRole: { + parameters: { + query: { + roleId: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + unBindRoleBy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RoleBindDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + bindRoleBy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["RoleBindDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + unBindPositionBy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PositionBindDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + bindPositionBy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PositionBindDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + upsertPermission: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PermissionUpsertDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + deletePermission: { + parameters: { + query: { + permissionId: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + unBindPermissionBy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PermissionBindDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + bindPermissionBy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["PermissionBindDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + currentUser: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["UserRolePermissionDto"]; + }; + }; + }; + }; + upsertMe: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UserUpsertDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + unBindDepartmentBy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DepartmentBindDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + bindDepartmentBy: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DepartmentBindDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + upsertDepartment: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["Department"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + deleteDepartment: { + parameters: { + query: { + id: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + signUp: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SignUpDto"]; + }; + }; + responses: { + /** @description Created */ + 201: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + signOut: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + signIn: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["SignInDto"]; + }; + }; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; + pageQuery: { + parameters: { + query: { + pageRequestDto: components["schemas"]["PageRequestDto"]; + queryDto: components["schemas"]["QueryDto"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["PageResponseDtoListJobTriggerDto"]; + }; + }; + }; + }; + queryPositions: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["Position"][]; + }; + }; + }; + }; + pageQueryPositions: { + parameters: { + query: { + pageRequestDto: components["schemas"]["PageRequestDto"]; + positionQueryDto: components["schemas"]["PositionQueryDto"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["PageResponseDtoListPositionRespDto"]; + }; + }; + }; + }; + queryUsers: { + parameters: { + query: { + pageRequestDto: components["schemas"]["PageRequestDto"]; + userQueryDto: components["schemas"]["UserQueryDto"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["PageResponseDtoListUserRolePermissionDto"]; + }; + }; + }; + }; + queryRoles: { + parameters: { + query: { + pageRequestDto: components["schemas"]["PageRequestDto"]; + roleQueryDto: components["schemas"]["RoleQueryDto"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["PageResponseDtoListRoleDto"]; + }; + }; + }; + }; + queryPermissions: { + parameters: { + query: { + pageRequestDto: components["schemas"]["PageRequestDto"]; + permissionQueryDto: components["schemas"]["PermissionQueryDto"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["PageResponseDtoListPermissionRespDto"]; + }; + }; + }; + }; + queryDepartments: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["Department"][]; + }; + }; + }; + }; + pageQueryDepartments: { + parameters: { + query: { + pageRequestDto: components["schemas"]["PageRequestDto"]; + departmentQueryDto: components["schemas"]["DepartmentQueryDto"]; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description OK */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "*/*": components["schemas"]["PageResponseDtoListDepartmentRespDto"]; + }; + }; + }; + }; +} diff --git a/frontend/src/assets/base.css b/frontend/src/assets/base.css new file mode 100644 index 0000000..cc7d014 --- /dev/null +++ b/frontend/src/assets/base.css @@ -0,0 +1,26 @@ +/* color palette from */ +@import "tailwindcss"; +@import "flowbite/src/themes/default"; +@plugin "flowbite/plugin"; +@source "../node_modules/flowbite"; +@source "../node_modules/flowbite-datepicker"; + +@theme { + --color-primary-50: #eff6ff; + --color-primary-100: #dbeafe; + --color-primary-200: #bfdbfe; + --color-primary-300: #93c5fd; + --color-primary-400: #60a5fa; + --color-primary-500: #3b82f6; + --color-primary-600: #2563eb; + --color-primary-700: #1d4ed8; + --color-primary-800: #1e40af; + --color-primary-900: #1e3a8a; + + --font-sans: + "Inter", "ui-sans-serif", "system-ui", "-apple-system", "system-ui", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "Noto Sans", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-body: + "Inter", "ui-sans-serif", "system-ui", "-apple-system", "system-ui", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "Noto Sans", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-mono: "ui-monospace", "SFMono-Regular", "Menlo", "Monaco", "Consolas", + "Liberation Mono", "Courier New", "monospace"; +} diff --git a/frontend/src/assets/logo.svg b/frontend/src/assets/logo.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/frontend/src/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/frontend/src/assets/main.css b/frontend/src/assets/main.css new file mode 100644 index 0000000..8611f02 --- /dev/null +++ b/frontend/src/assets/main.css @@ -0,0 +1 @@ +@import "./base.css"; diff --git a/frontend/src/components/Alert.vue b/frontend/src/components/Alert.vue new file mode 100644 index 0000000..e169427 --- /dev/null +++ b/frontend/src/components/Alert.vue @@ -0,0 +1,15 @@ + + + + diff --git a/frontend/src/components/Breadcrumbs.vue b/frontend/src/components/Breadcrumbs.vue new file mode 100644 index 0000000..7cb9c5e --- /dev/null +++ b/frontend/src/components/Breadcrumbs.vue @@ -0,0 +1,36 @@ + + + diff --git a/frontend/src/components/Dashboard.vue b/frontend/src/components/Dashboard.vue new file mode 100644 index 0000000..0cde7ae --- /dev/null +++ b/frontend/src/components/Dashboard.vue @@ -0,0 +1,14 @@ + + + diff --git a/frontend/src/components/DepartmentUpsertModal.vue b/frontend/src/components/DepartmentUpsertModal.vue new file mode 100644 index 0000000..771ced3 --- /dev/null +++ b/frontend/src/components/DepartmentUpsertModal.vue @@ -0,0 +1,113 @@ + + diff --git a/frontend/src/components/Headbar.vue b/frontend/src/components/Headbar.vue new file mode 100644 index 0000000..74dcc70 --- /dev/null +++ b/frontend/src/components/Headbar.vue @@ -0,0 +1,135 @@ + + diff --git a/frontend/src/components/PermissionUpsertModal.vue b/frontend/src/components/PermissionUpsertModal.vue new file mode 100644 index 0000000..8802e9d --- /dev/null +++ b/frontend/src/components/PermissionUpsertModal.vue @@ -0,0 +1,103 @@ + + + diff --git a/frontend/src/components/PopupModal.vue b/frontend/src/components/PopupModal.vue new file mode 100644 index 0000000..a1da435 --- /dev/null +++ b/frontend/src/components/PopupModal.vue @@ -0,0 +1,52 @@ + + + diff --git a/frontend/src/components/PositionUpsertModal.vue b/frontend/src/components/PositionUpsertModal.vue new file mode 100644 index 0000000..5a4941c --- /dev/null +++ b/frontend/src/components/PositionUpsertModal.vue @@ -0,0 +1,102 @@ + + diff --git a/frontend/src/components/RoleUpsertModal.vue b/frontend/src/components/RoleUpsertModal.vue new file mode 100644 index 0000000..8f5dd4a --- /dev/null +++ b/frontend/src/components/RoleUpsertModal.vue @@ -0,0 +1,107 @@ + + + diff --git a/frontend/src/components/SchedulerUpdateModal.vue b/frontend/src/components/SchedulerUpdateModal.vue new file mode 100644 index 0000000..c72c817 --- /dev/null +++ b/frontend/src/components/SchedulerUpdateModal.vue @@ -0,0 +1,88 @@ + + + diff --git a/frontend/src/components/Sidebar.vue b/frontend/src/components/Sidebar.vue new file mode 100644 index 0000000..ce42bc2 --- /dev/null +++ b/frontend/src/components/Sidebar.vue @@ -0,0 +1,147 @@ + + + diff --git a/frontend/src/components/TablePagination.vue b/frontend/src/components/TablePagination.vue new file mode 100644 index 0000000..d568e39 --- /dev/null +++ b/frontend/src/components/TablePagination.vue @@ -0,0 +1,78 @@ + + + diff --git a/frontend/src/components/UserUpsertModal.vue b/frontend/src/components/UserUpsertModal.vue new file mode 100644 index 0000000..1feecbb --- /dev/null +++ b/frontend/src/components/UserUpsertModal.vue @@ -0,0 +1,150 @@ + + diff --git a/frontend/src/composables/auth/useUserAuth.ts b/frontend/src/composables/auth/useUserAuth.ts new file mode 100644 index 0000000..93a92c0 --- /dev/null +++ b/frontend/src/composables/auth/useUserAuth.ts @@ -0,0 +1,71 @@ +import client from "@/api/client"; +import { ref } from "vue"; +import useAuthStore from "../store/useAuthStore"; +import useUserStore from "../store/useUserStore"; + +const useUserAuth = () => { + const isAuthenticated = ref(false); + const authStore = useAuthStore(); + const userStore = useUserStore(); + + const queryCurrentUser = async () => { + const { data } = await client.GET("/iam/me"); + return data; + }; + + const refreshCurrentUser = async () => { + const currentUser = await queryCurrentUser(); + if (currentUser) { + userStore.set(currentUser); + isAuthenticated.value = true; + } + }; + + const upsertCurrentUser = async ({ + username, + password, + enable, + }: { + username: string; + password?: string | null; + enable: boolean; + }) => { + await client.POST("/iam/me", { + body: { + username, + password: password ?? undefined, + enable, + }, + }); + await refreshCurrentUser(); + }; + + const signIn = async (username: string, password: string) => { + const signInResponse = await client.POST("/auth/sign-in", { + body: { + username, + password, + }, + }); + authStore.set( + signInResponse.response.headers.get("authorization") ?? undefined, + ); + await refreshCurrentUser(); + }; + + const signOut = () => { + authStore.remove(); + isAuthenticated.value = false; + userStore.remove(); + }; + + return { + isAuthenticated, + signIn, + signOut, + queryCurrentUser, + upsertCurrentUser, + }; +}; + +export default useUserAuth; diff --git a/frontend/src/composables/department/useDepartmentBind.ts b/frontend/src/composables/department/useDepartmentBind.ts new file mode 100644 index 0000000..e4eca25 --- /dev/null +++ b/frontend/src/composables/department/useDepartmentBind.ts @@ -0,0 +1,38 @@ +import client from "@/api/client"; + +export function useDepartmentBind() { + const bindDepartment = async (userId: number, departmentIds: number[]) => { + try { + await client.POST("/iam/department/bind", { + body: { + userId, + departmentIds, + }, + }); + return true; + } catch (error) { + console.error("Error binding departments:", error); + return false; + } + }; + + const unbindDepartment = async (userId: number, departmentIds: number[]) => { + try { + await client.POST("/iam/department/unbind", { + body: { + userId, + departmentIds, + }, + }); + return true; + } catch (error) { + console.error("Error unbinding departments:", error); + return false; + } + }; + + return { + bindDepartment, + unbindDepartment, + }; +} diff --git a/frontend/src/composables/department/useDepartmentDelete.ts b/frontend/src/composables/department/useDepartmentDelete.ts new file mode 100644 index 0000000..7a40b5b --- /dev/null +++ b/frontend/src/composables/department/useDepartmentDelete.ts @@ -0,0 +1,18 @@ +import client from "@/api/client"; + +export const useDepartmentDelete = () => { + const deleteDepartment = async (departmentId: number) => { + await client.DELETE("/department", { + params: { + query: { + id: departmentId, + }, + }, + }); + }; + return { + deleteDepartment, + }; +}; + +export default useDepartmentDelete; diff --git a/frontend/src/composables/department/useDepartmentQuery.ts b/frontend/src/composables/department/useDepartmentQuery.ts new file mode 100644 index 0000000..f8935d7 --- /dev/null +++ b/frontend/src/composables/department/useDepartmentQuery.ts @@ -0,0 +1,45 @@ +import client from "@/api/client"; +import { ref } from "vue"; +import type { components } from "../../api/types/schema"; + +export const useDepartmentQuery = () => { + const total = ref(0); + const departments = ref([]); + const allDepartments = ref([]); + + const fetchAllDepartments = async () => { + const { data } = await client.GET("/department/query"); + allDepartments.value = data ?? []; + }; + const fetchDepartmentWith = async ( + param: { + name?: string; + enable?: boolean; + userId?: number; + bindState?: "ALL" | "BIND" | "UNBIND"; + }, + page = 1, + size = 10, + ) => { + const { data } = await client.GET("/department/page-query", { + params: { + query: { + pageRequestDto: { + page, + size, + }, + departmentQueryDto: param, + }, + }, + }); + total.value = !data || !data.total ? 0 : data.total; + departments.value = data?.data ?? []; + }; + return { + total, + departments, + allDepartments, + fetchDepartmentWith, + fetchAllDepartments, + }; +}; diff --git a/frontend/src/composables/department/useDepartmentUpsert.ts b/frontend/src/composables/department/useDepartmentUpsert.ts new file mode 100644 index 0000000..7dda2be --- /dev/null +++ b/frontend/src/composables/department/useDepartmentUpsert.ts @@ -0,0 +1,18 @@ +import client from "../../api/client"; +import type { DepartmentUpsertModel } from "../../types/department"; + +export const useDepartmentUpsert = () => { + const upsertDepartment = async (department: DepartmentUpsertModel) => { + await client.POST("/department", { + body: { + id: department.id, + name: department.name, + parentId: department.parentId ?? undefined, + }, + }); + }; + + return { + upsertDepartment, + }; +}; diff --git a/frontend/src/composables/job/useJobControl.ts b/frontend/src/composables/job/useJobControl.ts new file mode 100644 index 0000000..74223f6 --- /dev/null +++ b/frontend/src/composables/job/useJobControl.ts @@ -0,0 +1,38 @@ +import client from "@/api/client"; + +export const useJobControl = () => { + const resumeTrigger = async (trigger: { + triggerName: string; + triggerGroup: string; + jobQueryParam?: { + name?: string; + }; + }) => { + await client.POST("/scheduler/trigger/resume", { + body: { + name: trigger.triggerName, + group: trigger.triggerGroup, + }, + }); + }; + + const pauseTrigger = async (trigger: { + triggerName: string; + triggerGroup: string; + jobQueryParam?: { + name?: string; + }; + }) => { + await client.POST("/scheduler/trigger/pause", { + body: { + name: trigger.triggerName, + group: trigger.triggerGroup, + }, + }); + }; + + return { + pauseTrigger, + resumeTrigger, + }; +}; diff --git a/frontend/src/composables/job/useJobQuery.ts b/frontend/src/composables/job/useJobQuery.ts new file mode 100644 index 0000000..eb08543 --- /dev/null +++ b/frontend/src/composables/job/useJobQuery.ts @@ -0,0 +1,36 @@ +import client from "@/api/client"; +import { ref } from "vue"; +import type { components } from "../../api/types/schema"; +export const useJobsPaginationQuery = () => { + const total = ref(0); + const jobs = ref(); + const fetchJobsWith = async ( + queryParam?: { + name?: string; + }, + page = 1, + size = 10, + ) => { + const { data } = await client.GET("/scheduler/page-query", { + params: { + query: { + pageRequestDto: { + page: page, + size: size, + }, + queryDto: { + name: queryParam?.name, + }, + }, + }, + }); + total.value = !data || !data.total ? 0 : data.total; + jobs.value = data?.data ?? []; + }; + + return { + total, + jobs, + fetchJobsWith, + }; +}; diff --git a/frontend/src/composables/job/useJobUpdate.ts b/frontend/src/composables/job/useJobUpdate.ts new file mode 100644 index 0000000..c2dc297 --- /dev/null +++ b/frontend/src/composables/job/useJobUpdate.ts @@ -0,0 +1,24 @@ +import client from "@/api/client"; + +export const useJobUpdate = () => { + const updateCron = async (trigger: { + triggerName: string; + triggerGroup: string; + cron: string; + }) => { + await client.PUT("/scheduler/job/update", { + params: { + query: { + cron: trigger.cron, + }, + }, + body: { + name: trigger.triggerName, + group: trigger.triggerGroup, + }, + }); + }; + return { + updateCron, + }; +}; diff --git a/frontend/src/composables/page.ts b/frontend/src/composables/page.ts new file mode 100644 index 0000000..4af7371 --- /dev/null +++ b/frontend/src/composables/page.ts @@ -0,0 +1,67 @@ +import { computed, ref } from "vue"; + +export interface PaginationState { + currentPage: number; + pageSize: number; + total: number; +} + +export interface UsePaginationOptions { + initialPage?: number; + initialPageSize?: number; + initialTotal?: number; +} + +export function usePagination(options: UsePaginationOptions = {}) { + const { initialPage = 1, initialPageSize = 10, initialTotal = 0 } = options; + + const currentPage = ref(initialPage); + const pageSize = ref(initialPageSize); + const total = ref(initialTotal); + + const totalPages = computed(() => Math.ceil(total.value / pageSize.value)); + + const pageNumbers = computed(() => { + const pages = []; + for (let i = 1; i <= totalPages.value; i++) { + pages.push(i); + } + return pages; + }); + + const displayRange = computed(() => { + const start = + total.value === 0 ? 0 : (currentPage.value - 1) * pageSize.value + 1; + const end = + total.value === 0 + ? 0 + : Math.min(currentPage.value * pageSize.value, total.value); + return { start, end }; + }); + + const isFirstPage = computed( + () => total.value === 0 || currentPage.value === 1, + ); + + const isLastPage = computed( + () => total.value === 0 || currentPage.value === totalPages.value, + ); + + const updatePaginationState = (state: Partial) => { + if (state.currentPage !== undefined) currentPage.value = state.currentPage; + if (state.pageSize !== undefined) pageSize.value = state.pageSize; + if (state.total !== undefined) total.value = state.total; + }; + + return { + currentPage, + pageSize, + total, + totalPages, + pageNumbers, + displayRange, + isFirstPage, + isLastPage, + updatePaginationState, + }; +} diff --git a/frontend/src/composables/permission/usePermissionBind.ts b/frontend/src/composables/permission/usePermissionBind.ts new file mode 100644 index 0000000..5638756 --- /dev/null +++ b/frontend/src/composables/permission/usePermissionBind.ts @@ -0,0 +1,36 @@ +import client from "@/api/client"; +export const usePermissionBind = () => { + const bindPermission = async ({ + roleId, + permissionIds, + }: { + roleId: number; + permissionIds: number[]; + }) => { + await client.POST("/iam/permission/bind", { + body: { + roleId, + permissionIds, + }, + }); + }; + + const unbindPermission = async ({ + roleId, + permissionIds, + }: { + roleId: number; + permissionIds: number[]; + }) => { + await client.POST("/iam/permission/unbind", { + body: { + roleId, + permissionIds, + }, + }); + }; + return { + bindPermission, + unbindPermission, + }; +}; diff --git a/frontend/src/composables/permission/usePermissionDelete.ts b/frontend/src/composables/permission/usePermissionDelete.ts new file mode 100644 index 0000000..40789ff --- /dev/null +++ b/frontend/src/composables/permission/usePermissionDelete.ts @@ -0,0 +1,19 @@ +import client from "@/api/client"; + +const usePermissionDelete = () => { + const deletePermission = async (id: number) => { + await client.DELETE("/iam/permission", { + params: { + query: { + permissionId: id, + }, + }, + }); + }; + + return { + deletePermission, + }; +}; + +export default usePermissionDelete; diff --git a/frontend/src/composables/permission/usePermissionQuery.ts b/frontend/src/composables/permission/usePermissionQuery.ts new file mode 100644 index 0000000..5592157 --- /dev/null +++ b/frontend/src/composables/permission/usePermissionQuery.ts @@ -0,0 +1,48 @@ +import client from "@/api/client"; +import { ref } from "vue"; +import type { components } from "../../api/types/schema"; + +const usePermissionsQuery = () => { + const total = ref(0); + const permissions = ref([]); + const fetchPermissionsWith = async ( + query: { + name?: string; + roleId?: number; + bindState?: "BIND" | "ALL" | "UNBIND"; + }, + page = 1, + size = 10, + ) => { + const { data } = await client.GET("/iam/permissions", { + params: { + query: { + pageRequestDto: { + page, + size, + }, + permissionQueryDto: { + permissionName: query.name, + roleId: query.roleId, + bindState: query.bindState, + }, + }, + }, + }); + + if (!data) { + throw new Error("获取权限数据失败"); + } + + total.value = data.total ?? 0; + permissions.value = data.data ?? []; + }; + + return { + total, + permissions, + fetchPermissionsWith, + }; +}; + +export default usePermissionsQuery; diff --git a/frontend/src/composables/permission/usePermissionUpsert.ts b/frontend/src/composables/permission/usePermissionUpsert.ts new file mode 100644 index 0000000..b101769 --- /dev/null +++ b/frontend/src/composables/permission/usePermissionUpsert.ts @@ -0,0 +1,19 @@ +import client from "../../api/client"; +import type { PermissionUpsertModel } from "../../types/permission"; + +const usePermissionUpsert = () => { + const upsertPermission = async (permission: PermissionUpsertModel) => { + await client.POST("/iam/permission", { + body: { + id: permission.id, + name: permission.name, + code: permission.code, + }, + }); + }; + + return { + upsertPermission, + }; +}; +export default usePermissionUpsert; diff --git a/frontend/src/composables/position/usePositionBind.ts b/frontend/src/composables/position/usePositionBind.ts new file mode 100644 index 0000000..5eb9675 --- /dev/null +++ b/frontend/src/composables/position/usePositionBind.ts @@ -0,0 +1,38 @@ +import client from "@/api/client"; + +export function usePositionBind() { + const bindPosition = async (userId: number, positionIds: number[]) => { + try { + await client.POST("/iam/position/bind", { + body: { + userId, + positionIds, + }, + }); + return true; + } catch (error) { + console.error("Error binding positions:", error); + return false; + } + }; + + const unbindPosition = async (userId: number, positionIds: number[]) => { + try { + await client.POST("/iam/position/unbind", { + body: { + userId, + positionIds, + }, + }); + return true; + } catch (error) { + console.error("Error unbinding positions:", error); + return false; + } + }; + + return { + bindPosition, + unbindPosition, + }; +} diff --git a/frontend/src/composables/position/usePositionDelete.ts b/frontend/src/composables/position/usePositionDelete.ts new file mode 100644 index 0000000..ad65328 --- /dev/null +++ b/frontend/src/composables/position/usePositionDelete.ts @@ -0,0 +1,18 @@ +import client from "@/api/client"; + +export const usePositionDelete = () => { + const deletePosition = async (positionId: number) => { + await client.DELETE("/position", { + params: { + query: { + id: positionId, + }, + }, + }); + }; + return { + deletePosition, + }; +}; + +export default usePositionDelete; diff --git a/frontend/src/composables/position/usePositionQuery.ts b/frontend/src/composables/position/usePositionQuery.ts new file mode 100644 index 0000000..70bdfcf --- /dev/null +++ b/frontend/src/composables/position/usePositionQuery.ts @@ -0,0 +1,45 @@ +import client from "@/api/client"; +import { ref } from "vue"; +import type { components } from "../../api/types/schema"; + +export const usePositionQuery = () => { + const total = ref(0); + const positions = ref([]); + const allPositions = ref([]); + + const fetchAllPositions = async () => { + const { data } = await client.GET("/position/query"); + allPositions.value = data ?? []; + }; + const fetchPositionWith = async ( + param: { + name?: string; + enable?: boolean; + userId?: number; + bindState?: "ALL" | "BIND" | "UNBIND"; + }, + page = 1, + size = 10, + ) => { + const { data } = await client.GET("/position/page-query", { + params: { + query: { + pageRequestDto: { + page, + size, + }, + positionQueryDto: param, + }, + }, + }); + total.value = !data || !data.total ? 0 : data.total; + positions.value = data?.data ?? []; + }; + return { + total, + positions, + allPositions, + fetchPositionWith, + fetchAllPositions, + }; +}; diff --git a/frontend/src/composables/position/usePositionUpsert.ts b/frontend/src/composables/position/usePositionUpsert.ts new file mode 100644 index 0000000..611dc79 --- /dev/null +++ b/frontend/src/composables/position/usePositionUpsert.ts @@ -0,0 +1,16 @@ +import client from "../../api/client"; +import type { components } from "../../api/types/schema"; + +export const usePositionUpsert = () => { + const upsertPosition = async ( + position: components["schemas"]["Position"], + ) => { + await client.POST("/position", { + body: position, + }); + }; + + return { + upsertPosition, + }; +}; diff --git a/frontend/src/composables/role/useRoleBind.ts b/frontend/src/composables/role/useRoleBind.ts new file mode 100644 index 0000000..85e2778 --- /dev/null +++ b/frontend/src/composables/role/useRoleBind.ts @@ -0,0 +1,28 @@ +import client from "@/api/client"; + +export const useRoleBind = () => { + const bindRole = async ({ + userId, + roleIds, + }: { userId: number; roleIds: number[] }) => { + await client.POST("/iam/role/bind", { + body: { + userId, + roleIds, + }, + }); + }; + + const unbindRole = async (userId: number, roleIds: number[]) => { + await client.POST("/iam/role/unbind", { + body: { + userId, + roleIds, + }, + }); + }; + return { + bindRole, + unbindRole, + }; +}; diff --git a/frontend/src/composables/role/useRoleDelete.ts b/frontend/src/composables/role/useRoleDelete.ts new file mode 100644 index 0000000..7edd736 --- /dev/null +++ b/frontend/src/composables/role/useRoleDelete.ts @@ -0,0 +1,19 @@ +import client from "../../api/client"; + +const useRoleDelete = () => { + const deleteRole = async (roleId: number) => { + await client.DELETE("/iam/role", { + params: { + query: { + roleId, + }, + }, + }); + }; + + return { + deleteRole, + }; +}; + +export default useRoleDelete; diff --git a/frontend/src/composables/role/useRoleUpsert.ts b/frontend/src/composables/role/useRoleUpsert.ts new file mode 100644 index 0000000..18961fa --- /dev/null +++ b/frontend/src/composables/role/useRoleUpsert.ts @@ -0,0 +1,17 @@ +import client from "../../api/client"; + +export const useRoleUpsert = () => { + const upsertRole = async (role: { + id?: number; + name: string; + code: string; + }) => { + await client.POST("/iam/role", { + body: role, + }); + }; + + return { + upsertRole, + }; +}; diff --git a/frontend/src/composables/role/useRolesQuery.ts b/frontend/src/composables/role/useRolesQuery.ts new file mode 100644 index 0000000..1bfc8b6 --- /dev/null +++ b/frontend/src/composables/role/useRolesQuery.ts @@ -0,0 +1,61 @@ +import client from "@/api/client"; +import { ref } from "vue"; +import type { components } from "../../api/types/schema"; + +export const useRolesQuery = () => { + const total = ref(0); + const roles = ref(); + const roleWithDetail = ref(); + + const getRoleWithDetail = async (roleId: number) => { + const { data } = await client.GET("/iam/role", { + params: { + query: { + roleId, + }, + }, + }); + roleWithDetail.value = data; + }; + + const fetchRolesWith = async ( + param: { + name?: string; + userId?: number; + bindState?: "BIND" | "ALL" | "UNBIND"; + }, + page = 1, + size = 10, + ) => { + const { data } = await client.GET("/iam/roles", { + params: { + query: { + pageRequestDto: { + page, + size, + }, + roleQueryDto: { + roleName: param.name, + userId: param.userId, + bindState: param.bindState, + }, + }, + }, + }); + + if (!data) { + throw new Error("获取角色数据失败"); + } + + total.value = data.total ?? 0; + roles.value = data.data ?? []; + }; + + return { + total, + roles, + roleWithDetail, + getRoleWithDetail, + fetchRolesWith, + }; +}; diff --git a/frontend/src/composables/store/useAlertStore.ts b/frontend/src/composables/store/useAlertStore.ts new file mode 100644 index 0000000..9bac232 --- /dev/null +++ b/frontend/src/composables/store/useAlertStore.ts @@ -0,0 +1,57 @@ +import { StorageSerializers, useStorage } from "@vueuse/core"; +import { defineStore } from "pinia"; +import { computed } from "vue"; +import type { AlertProps } from "../../types/alert"; + +const useAlertStore = defineStore("alertStore", () => { + const alertStorage = useStorage( + "alert-storage", + { + content: undefined, + level: undefined, + isShow: undefined, + timer: undefined, + }, + localStorage, + { + serializer: StorageSerializers.object, + }, + ); + + const showAlert = ({ + content: newContent, + level: newLevel, + }: { content: string; level: "info" | "success" | "warning" | "error" }) => { + clearTimeout(alertStorage.value.timer); + alertStorage.value = { + content: newContent, + level: newLevel, + isShow: true, + timer: setTimeout(() => { + alertStorage.value.isShow = false; + }, 3000), + }; + }; + + const levelClassName = computed(() => { + if (!alertStorage.value.level) { + return; + } + return { + info: "text-blue-800 bg-blue-50 dark:bg-gray-800 dark:text-blue-400 ", + success: + "text-green-800 bg-green-50 dark:bg-gray-800 dark:text-green-400", + warning: + "text-yellow-800 bg-yellow-50 dark:bg-gray-800 dark:text-yellow-300", + error: "text-red-800 bg-red-50 dark:bg-gray-800 dark:text-red-400", + }[alertStorage.value.level]; + }); + + return { + alertStorage, + showAlert, + levelClassName, + }; +}); + +export default useAlertStore; diff --git a/frontend/src/composables/store/useAuthStore.ts b/frontend/src/composables/store/useAuthStore.ts new file mode 100644 index 0000000..8bde450 --- /dev/null +++ b/frontend/src/composables/store/useAuthStore.ts @@ -0,0 +1,28 @@ +import { StorageSerializers, useStorage } from "@vueuse/core"; +import { defineStore } from "pinia"; + +const useAuthStore = defineStore("authStore", () => { + const tokenStore = useStorage("auth-storage", null, localStorage, { + serializer: StorageSerializers.object, + }); + + const set = (token?: string) => { + tokenStore.value = token; + }; + + const get = () => { + return tokenStore.value; + }; + + const remove = () => { + tokenStore.value = undefined; + }; + + return { + set, + get, + remove, + }; +}); + +export default useAuthStore; diff --git a/frontend/src/composables/store/useUserStore.ts b/frontend/src/composables/store/useUserStore.ts new file mode 100644 index 0000000..4f164cc --- /dev/null +++ b/frontend/src/composables/store/useUserStore.ts @@ -0,0 +1,44 @@ +import { StorageSerializers, useStorage } from "@vueuse/core"; +import { defineStore } from "pinia"; +import { computed } from "vue"; +import type { components } from "../../api/types/schema"; +const useUserStore = defineStore("userStore", () => { + const user = useStorage( + "user-storage", + null, + localStorage, + { + serializer: StorageSerializers.object, + }, + ); + + const set: ( + userRolePermission?: components["schemas"]["UserRolePermissionDto"], + ) => void = (userRolePermission) => { + user.value = userRolePermission; + }; + + function remove() { + user.value = null; + } + + const roleCodes = computed(() => { + return user.value?.roles?.flatMap((role) => role.code); + }); + + const permissionCodes = computed(() => { + return user.value?.roles?.flatMap((role) => + role.permissions?.map((permission) => permission.code), + ); + }); + + return { + user, + set, + remove, + roleCodes, + permissionCodes, + }; +}); + +export default useUserStore; diff --git a/frontend/src/composables/user/useUserDelete.ts b/frontend/src/composables/user/useUserDelete.ts new file mode 100644 index 0000000..55359a2 --- /dev/null +++ b/frontend/src/composables/user/useUserDelete.ts @@ -0,0 +1,19 @@ +import { ref } from "vue"; +import client from "../../api/client"; + +const useUserDelete = () => { + const deleteUser = async (userId: number) => { + await client.DELETE("/iam/user", { + params: { + query: { + userId, + }, + }, + }); + }; + return { + deleteUser, + }; +}; + +export default useUserDelete; diff --git a/frontend/src/composables/user/useUserQuery.ts b/frontend/src/composables/user/useUserQuery.ts new file mode 100644 index 0000000..8286359 --- /dev/null +++ b/frontend/src/composables/user/useUserQuery.ts @@ -0,0 +1,50 @@ +import client from "@/api/client"; +import { ref } from "vue"; +import type { components } from "../../api/types/schema"; + +export const useUserQuery = () => { + const total = ref(0); + const users = ref([]); + const user = ref(); + + const getUserWithDetail = async (userId: number) => { + const { data } = await client.GET("/iam/user", { + params: { + query: { + userId: userId, + }, + }, + }); + user.value = data; + }; + + const fetchUsersWith = async ( + param: { + username?: string; + }, + page = 1, + size = 10, + ) => { + const { data } = await client.GET("/iam/users", { + params: { + query: { + pageRequestDto: { + page, + size, + }, + userQueryDto: param, + }, + }, + }); + total.value = !data || !data.total ? 0 : data.total; + users.value = data?.data ?? []; + }; + + return { + total, + users, + user, + fetchUsersWith, + getUserWithDetail, + }; +}; diff --git a/frontend/src/composables/user/useUserUpsert.ts b/frontend/src/composables/user/useUserUpsert.ts new file mode 100644 index 0000000..0fcc6fc --- /dev/null +++ b/frontend/src/composables/user/useUserUpsert.ts @@ -0,0 +1,20 @@ +import { ref } from "vue"; +import client from "../../api/client"; +import type { UserUpsertSubmitModel } from "../../types/user"; + +export const useUserUpsert = () => { + const upsertUser = async (user: UserUpsertSubmitModel) => { + const { data } = await client.POST("/iam/user", { + body: { + id: user.id, + username: user.username, + password: user.password, + enable: user.enable, + }, + }); + }; + + return { + upsertUser, + }; +}; diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000..cdd9efe --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,33 @@ +import "./assets/main.css"; + +import { createPinia } from "pinia"; +import { createApp } from "vue"; + +import App from "./App.vue"; +import useUserAuth from "./composables/auth/useUserAuth"; +import useAlertStore from "./composables/store/useAlertStore"; +import router from "./router"; +import makeErrorHandler from "./utils/errorHandler"; + +async function enableMocking() { + if (import.meta.env.VITE_ENABLE_MOCK === "false") { + return; + } + + const { worker } = await import("./api/mocks/setup"); + + // `worker.start()` returns a Promise that resolves + // once the Service Worker is up and ready to intercept requests. + return worker.start(); +} + +enableMocking().then(() => { + const app = createApp(App); + app.use(createPinia()); + const { signOut } = useUserAuth(); + const { showAlert } = useAlertStore(); + app.use(router); + const errorHandler = makeErrorHandler(router, signOut, showAlert); + app.config.errorHandler = errorHandler; + app.mount("#app"); +}); diff --git a/frontend/src/router/constants.ts b/frontend/src/router/constants.ts new file mode 100644 index 0000000..095a4ea --- /dev/null +++ b/frontend/src/router/constants.ts @@ -0,0 +1,63 @@ +export enum RoutePath { + HOME = "/", + LOGIN = "/login", + DASHBOARD = "/dashboard", + GLOBAL_NOTFOUND = "/:pathMatch(.*)*", + NOTFOUND = ":pathMatch(.*)*", + OVERVIEW = "overview", + USERVIEW = "users", + ROLEVIEW = "roles", + BINDROLEVIEW = "bind-roles/:userId", + BINDPERMISSIONVIEW = "bind-permissions/:roleId", + BINDDEPARTMENTVIEW = "bind-departments/:userId", + BINDPOSITIONVIEW = "bind-positions/:userId", + PERMISSIONVIEW = "permissions", + DEPARTMENTVIEW = "departments", + POSITIONVIEW = "positions", + CREATEUSERVIEW = "create-user", + SCHEDULERVIEW = "scheduler", + UPSERTUSERVIEW = "upsert-user", + UPSERTROLEVIEW = "upsert-role", + UPSERTPERMISSIONVIEW = "upsert-permission", + UPSERTDEPARTMENTVIEW = "upsert-department", + UPSERTPOSITIONVIEW = "upsert-position", + SETTINGS = "settings", +} + +export enum RouteName { + HOME = "home", + LOGIN = "login", + DASHBOARD = "dashboard", + OVERVIEW = "overview", + USERVIEW = "users", + ROLEVIEW = "roles", + BINDROLEVIEW = "bind-roles", + BINDPERMISSIONVIEW = "bind-permissions", + BINDDEPARTMENTVIEW = "bind-departments", + BINDPOSITIONVIEW = "bind-positions", + PERMISSIONVIEW = "permissions", + DEPARTMENTVIEW = "departments", + POSITIONVIEW = "positions", + CREATEUSERVIEW = "create-user", + SCHEDULERVIEW = "scheduler", + UPSERTUSERVIEW = "upsert-user", + UPSERTROLEVIEW = "upsert-role", + UPSERTPERMISSIONVIEW = "upsert-permission", + UPSERTDEPARTMENTVIEW = "upsert-department", + UPSERTPOSITIONVIEW = "upsert-position", + SETTINGS = "settings", + NOTFOUND = "notfound", + GLOBAL_NOTFOUND = "global-notfound", +} + +export enum ROLE { + ADMIN = "ADMIN", + USER = "USER", +} + +export enum PERMISSION { + USER_VIEW = "user:view", + USER_ADD = "user:add", + USER_EDIT = "user:edit", + USER_DELETE = "user:delete", +} diff --git a/frontend/src/router/guards.ts b/frontend/src/router/guards.ts new file mode 100644 index 0000000..596a508 --- /dev/null +++ b/frontend/src/router/guards.ts @@ -0,0 +1,47 @@ +import useUserStore from "@/composables/store/useUserStore"; +import type { NavigationGuard, Router } from "vue-router"; +import type { RouteMeta } from "../types/router"; +import { RoutePath } from "./constants"; + +export const authGuard: NavigationGuard = (to) => { + const userStore = useUserStore(); + if (to.meta.requiresAuth && !userStore.user) { + return { + path: RoutePath.LOGIN, + query: { redirect: to.fullPath }, + }; + } + if (to.path === RoutePath.LOGIN && userStore.user) { + return { path: `${RoutePath.DASHBOARD}/${RoutePath.USERVIEW}` }; + } +}; + +export const permissionGuard: NavigationGuard = (to) => { + const userStore = useUserStore(); + const routeMeta: RouteMeta = to.meta; + if (routeMeta.hasPermission) { + const hasPermission = userStore.permissionCodes?.includes( + routeMeta.hasPermission, + ); + if (!hasPermission) { + return false; + } + } +}; + +export const roleGuard: NavigationGuard = (to) => { + const userStore = useUserStore(); + const routeMeta: RouteMeta = to.meta; + if (routeMeta.hasRole) { + const hasRole = userStore.roleCodes?.includes(routeMeta.hasRole); + if (!hasRole) { + return false; + } + } +}; + +export const setupGuards = (router: Router) => { + router.beforeEach(authGuard); + router.beforeEach(permissionGuard); + router.beforeEach(roleGuard); +}; diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts new file mode 100644 index 0000000..f0f914f --- /dev/null +++ b/frontend/src/router/index.ts @@ -0,0 +1,29 @@ +import { createRouter, createWebHistory } from "vue-router"; +import type { RouteRecordRaw } from "vue-router"; +import { setupGuards } from "./guards"; + +import authRoutes from "./modules/auth"; +import dashboardRoutes from "./modules/dashboard"; +import errorRoutes from "./modules/error"; +import { RouteName } from "./constants"; + +const routes: RouteRecordRaw[] = [ + dashboardRoutes, + ...authRoutes, + ...errorRoutes, +]; + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes, +}); + +router.onError((err) => { + console.error("router err:", err); + // TODO 增加一个错误页面 + router.push(RouteName.USERVIEW); + return false; +}); +setupGuards(router); + +export default router; diff --git a/frontend/src/router/modules/auth.ts b/frontend/src/router/modules/auth.ts new file mode 100644 index 0000000..757ffc4 --- /dev/null +++ b/frontend/src/router/modules/auth.ts @@ -0,0 +1,19 @@ +import type { RouteRecordRaw } from "vue-router"; +import { RouteName, RoutePath } from "../constants"; + +const authRoutes: RouteRecordRaw[] = [ + { + path: RoutePath.HOME, + name: RouteName.HOME, + redirect: { + name: RouteName.LOGIN, + }, + }, + { + path: RoutePath.LOGIN, + name: RouteName.LOGIN, + component: () => import("../../views/LoginView.vue"), + }, +]; + +export default authRoutes; diff --git a/frontend/src/router/modules/dashboard.ts b/frontend/src/router/modules/dashboard.ts new file mode 100644 index 0000000..ae016ae --- /dev/null +++ b/frontend/src/router/modules/dashboard.ts @@ -0,0 +1,67 @@ +import type { RouteRecordRaw } from "vue-router"; +import Dashboard from "../../components/Dashboard.vue"; +import OverView from "../../views/OverView.vue"; +import { ROLE, RouteName, RoutePath } from "../constants"; +import userManagementRoutes from "./user"; + +const dashboardRoutes: RouteRecordRaw = { + path: RoutePath.DASHBOARD, + name: RouteName.DASHBOARD, + component: Dashboard, + meta: { + requiresAuth: true, + }, + children: [ + { + path: RoutePath.OVERVIEW, + name: RouteName.OVERVIEW, + component: () => import("@/views/OverView.vue"), + meta: { + requiresAuth: true, + }, + }, + { + path: RoutePath.SETTINGS, + name: RouteName.SETTINGS, + component: () => import("@/views/SettingsView.vue"), + meta: { + requiresAuth: true, + }, + }, + ...userManagementRoutes, + { + path: RoutePath.NOTFOUND, + name: RouteName.NOTFOUND, + component: () => import("@/views/NotFound.vue"), + }, + { + path: RoutePath.SCHEDULERVIEW, + name: RouteName.SCHEDULERVIEW, + component: () => import("@/views/SchedulerView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + { + path: RoutePath.DEPARTMENTVIEW, + name: RouteName.DEPARTMENTVIEW, + component: () => import("@/views/DepartmentView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + { + path: RoutePath.POSITIONVIEW, + name: RouteName.POSITIONVIEW, + component: () => import("@/views/PositionView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + ], +}; + +export default dashboardRoutes; diff --git a/frontend/src/router/modules/error.ts b/frontend/src/router/modules/error.ts new file mode 100644 index 0000000..2d9b913 --- /dev/null +++ b/frontend/src/router/modules/error.ts @@ -0,0 +1,12 @@ +import type { RouteRecordRaw } from "vue-router"; +import { RouteName, RoutePath } from "../constants"; + +const errorRoutes: RouteRecordRaw[] = [ + { + path: RoutePath.GLOBAL_NOTFOUND, + name: RouteName.GLOBAL_NOTFOUND, + component: () => import("../../views/NotFound.vue"), + }, +]; + +export default errorRoutes; diff --git a/frontend/src/router/modules/user.ts b/frontend/src/router/modules/user.ts new file mode 100644 index 0000000..ce0dca7 --- /dev/null +++ b/frontend/src/router/modules/user.ts @@ -0,0 +1,70 @@ +import type { RouteRecordRaw } from "vue-router"; +import { ROLE, RouteName, RoutePath } from "../constants"; + +const userManagementRoutes: RouteRecordRaw[] = [ + { + path: RoutePath.USERVIEW, + name: RouteName.USERVIEW, + component: () => import("@/views/UserView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + { + path: RoutePath.ROLEVIEW, + name: RouteName.ROLEVIEW, + component: () => import("@/views/RoleView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + { + path: RoutePath.BINDROLEVIEW, + name: RouteName.BINDROLEVIEW, + component: () => import("@/views/BindRoleView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + { + path: RoutePath.BINDDEPARTMENTVIEW, + name: RouteName.BINDDEPARTMENTVIEW, + component: () => import("@/views/BindDepartmentView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + { + path: RoutePath.BINDPERMISSIONVIEW, + name: RouteName.BINDPERMISSIONVIEW, + component: () => import("@/views/BindPermissionView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + { + path: RoutePath.PERMISSIONVIEW, + name: RouteName.PERMISSIONVIEW, + component: () => import("@/views/PermissionView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, + { + path: RoutePath.BINDPOSITIONVIEW, + name: RouteName.BINDPOSITIONVIEW, + component: () => import("@/views/BindPositionView.vue"), + meta: { + requiresAuth: true, + hasRole: ROLE.ADMIN, + }, + }, +]; + +export default userManagementRoutes; diff --git a/frontend/src/types/alert.d.ts b/frontend/src/types/alert.d.ts new file mode 100644 index 0000000..7aceada --- /dev/null +++ b/frontend/src/types/alert.d.ts @@ -0,0 +1,6 @@ +export interface AlertProps { + content?: string; + level?: "info" | "success" | "warning" | "error"; + isShow?: boolean; + timer?: number; +} diff --git a/frontend/src/types/department.d.ts b/frontend/src/types/department.d.ts new file mode 100644 index 0000000..36dedbf --- /dev/null +++ b/frontend/src/types/department.d.ts @@ -0,0 +1,5 @@ +export interface DepartmentUpsertModel { + id?: number; + name: string; + parentId?: number | null; +} diff --git a/frontend/src/types/error.ts b/frontend/src/types/error.ts new file mode 100644 index 0000000..37fa4db --- /dev/null +++ b/frontend/src/types/error.ts @@ -0,0 +1,53 @@ +class HttpError extends Error { + status: number; + detail: string | undefined; + constructor(message: string, status: number, detail: string | undefined) { + super(message); + this.name = "HttpError"; + this.status = status; + this.detail = detail; + } +} + +class UnAuthError extends HttpError { + constructor(status: number, detail?: string) { + super("身份认证异常", status, detail); + this.name = "UnAuthError"; + } +} + +class ForbiddenError extends HttpError { + constructor(status: number, detail?: string) { + super("权限校验异常", status, detail); + this.name = "ForbiddenError"; + } +} + +class SystemError extends HttpError { + constructor(status: number, detail?: string) { + super("系统错误,请稍候再试", status, detail); + this.name = "SystemError"; + } +} + +class InternalServerError extends HttpError { + constructor(status: number, detail?: string) { + super("服务器错误,请稍候再试", status, detail); + this.name = "InternalServerError"; + } +} + +class BadRequestError extends HttpError { + constructor(status: number, detail?: string) { + super("请求非法", status, detail); + this.name = "BadRequestError"; + } +} + +export { + UnAuthError, + ForbiddenError, + SystemError, + InternalServerError, + BadRequestError, +}; diff --git a/frontend/src/types/permission.d.ts b/frontend/src/types/permission.d.ts new file mode 100644 index 0000000..d43584e --- /dev/null +++ b/frontend/src/types/permission.d.ts @@ -0,0 +1,5 @@ +export interface PermissionUpsertModel { + id?: number; + name: string; + code: string; +} diff --git a/frontend/src/types/position.d.ts b/frontend/src/types/position.d.ts new file mode 100644 index 0000000..0e858fb --- /dev/null +++ b/frontend/src/types/position.d.ts @@ -0,0 +1,4 @@ +export interface PositionUpsertModel { + id?: number; + name: string; +} diff --git a/frontend/src/types/role.d.ts b/frontend/src/types/role.d.ts new file mode 100644 index 0000000..3c70923 --- /dev/null +++ b/frontend/src/types/role.d.ts @@ -0,0 +1,5 @@ +export interface RoleUpsertModel { + id?: number; + name: string; + code: string; +} diff --git a/frontend/src/types/router.d.ts b/frontend/src/types/router.d.ts new file mode 100644 index 0000000..6e3b3e0 --- /dev/null +++ b/frontend/src/types/router.d.ts @@ -0,0 +1,11 @@ +import "vue-router"; + +declare module "vue-router" { + interface RouteMeta { + requiresAuth?: boolean; + hasPermission?: string; + hasRole?: string; + } +} + +export { RouteMeta }; diff --git a/frontend/src/types/user.d.ts b/frontend/src/types/user.d.ts new file mode 100644 index 0000000..51ae374 --- /dev/null +++ b/frontend/src/types/user.d.ts @@ -0,0 +1,8 @@ +export interface UserUpsertSubmitModel { + id?: number; + username: string; + password?: string; + enable: boolean; +} + +export type User = UserRolePermissionModel | null; diff --git a/frontend/src/utils/errorHandler.ts b/frontend/src/utils/errorHandler.ts new file mode 100644 index 0000000..fc9c6ce --- /dev/null +++ b/frontend/src/utils/errorHandler.ts @@ -0,0 +1,50 @@ +import type { ComponentPublicInstance } from "vue"; +import type { Router } from "vue-router"; +import { RoutePath } from "../router/constants"; +import { + ForbiddenError, + InternalServerError, + SystemError, + UnAuthError, +} from "../types/error"; + +const makeErrorHandler = + ( + router: Router, + signOut: () => void, + showAlert: ({ + content, + level, + }: { + content: string; + level: "info" | "success" | "warning" | "error"; + }) => void, + ) => + (err: unknown, instance: ComponentPublicInstance | null, info: string) => { + console.error(err); + if (err instanceof UnAuthError) { + signOut(); + router.push(RoutePath.LOGIN); + showAlert({ + level: "error", + content: err.message, + }); + } else if (err instanceof ForbiddenError) { + showAlert({ + level: "error", + content: err.message, + }); + } else if (err instanceof SystemError) { + showAlert({ + level: "error", + content: err.message, + }); + } else if (err instanceof InternalServerError) { + showAlert({ + level: "error", + content: err.detail ?? err.message, + }); + } + }; + +export default makeErrorHandler; diff --git a/frontend/src/views/BindDepartmentView.vue b/frontend/src/views/BindDepartmentView.vue new file mode 100644 index 0000000..a77a486 --- /dev/null +++ b/frontend/src/views/BindDepartmentView.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/frontend/src/views/BindPermissionView.vue b/frontend/src/views/BindPermissionView.vue new file mode 100644 index 0000000..47d4a5d --- /dev/null +++ b/frontend/src/views/BindPermissionView.vue @@ -0,0 +1,241 @@ + + + + + diff --git a/frontend/src/views/BindPositionView.vue b/frontend/src/views/BindPositionView.vue new file mode 100644 index 0000000..ada86b9 --- /dev/null +++ b/frontend/src/views/BindPositionView.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/frontend/src/views/BindRoleView.vue b/frontend/src/views/BindRoleView.vue new file mode 100644 index 0000000..3b51fe3 --- /dev/null +++ b/frontend/src/views/BindRoleView.vue @@ -0,0 +1,235 @@ + + + + + diff --git a/frontend/src/views/DepartmentView.vue b/frontend/src/views/DepartmentView.vue new file mode 100644 index 0000000..dbd628b --- /dev/null +++ b/frontend/src/views/DepartmentView.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/frontend/src/views/LoginView.vue b/frontend/src/views/LoginView.vue new file mode 100644 index 0000000..907c620 --- /dev/null +++ b/frontend/src/views/LoginView.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/frontend/src/views/NotFound.vue b/frontend/src/views/NotFound.vue new file mode 100644 index 0000000..daf476f --- /dev/null +++ b/frontend/src/views/NotFound.vue @@ -0,0 +1,17 @@ + + + diff --git a/frontend/src/views/OverView.vue b/frontend/src/views/OverView.vue new file mode 100644 index 0000000..0ffcb43 --- /dev/null +++ b/frontend/src/views/OverView.vue @@ -0,0 +1,584 @@ + + + + + diff --git a/frontend/src/views/PermissionView.vue b/frontend/src/views/PermissionView.vue new file mode 100644 index 0000000..906d903 --- /dev/null +++ b/frontend/src/views/PermissionView.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/frontend/src/views/PositionView.vue b/frontend/src/views/PositionView.vue new file mode 100644 index 0000000..543be5b --- /dev/null +++ b/frontend/src/views/PositionView.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/frontend/src/views/RoleView.vue b/frontend/src/views/RoleView.vue new file mode 100644 index 0000000..1250911 --- /dev/null +++ b/frontend/src/views/RoleView.vue @@ -0,0 +1,233 @@ + + + + + diff --git a/frontend/src/views/SchedulerView.vue b/frontend/src/views/SchedulerView.vue new file mode 100644 index 0000000..d37b5ff --- /dev/null +++ b/frontend/src/views/SchedulerView.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue new file mode 100644 index 0000000..a3fae3b --- /dev/null +++ b/frontend/src/views/SettingsView.vue @@ -0,0 +1,154 @@ + + + diff --git a/frontend/src/views/UserView.vue b/frontend/src/views/UserView.vue new file mode 100644 index 0000000..041b9eb --- /dev/null +++ b/frontend/src/views/UserView.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json new file mode 100644 index 0000000..41adfd2 --- /dev/null +++ b/frontend/tsconfig.app.json @@ -0,0 +1,12 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "allowJs": true, + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..dc744cc --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,14 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.vitest.json" + } + ] +} diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json new file mode 100644 index 0000000..dc6fc7b --- /dev/null +++ b/frontend/tsconfig.node.json @@ -0,0 +1,19 @@ +{ + "extends": "@tsconfig/node22/tsconfig.json", + "include": [ + "vite.config.*", + "vitest.config.*", + "cypress.config.*", + "nightwatch.conf.*", + "playwright.config.*", + "eslint.config.*" + ], + "compilerOptions": { + "noEmit": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "module": "ESNext", + "moduleResolution": "Bundler", + "noUncheckedIndexedAccess": true, + "types": ["node"] + } +} diff --git a/frontend/tsconfig.vitest.json b/frontend/tsconfig.vitest.json new file mode 100644 index 0000000..808658b --- /dev/null +++ b/frontend/tsconfig.vitest.json @@ -0,0 +1,10 @@ +{ + "extends": "./tsconfig.app.json", + "include": ["src/**/__tests__/*", "env.d.ts"], + "exclude": [], + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.vitest.tsbuildinfo", + "lib": [], + "types": ["node", "@vitest/browser/providers/playwright"] + } +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 0000000..eecea0e --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,29 @@ +import { URL, fileURLToPath } from "node:url"; + +import tailwindcss from "@tailwindcss/vite"; +import vue from "@vitejs/plugin-vue"; +import { defineConfig } from "vite"; +import { loadEnv } from "vite"; +import vueDevTools from "vite-plugin-vue-devtools"; + +// https://vite.dev/config/ +export default defineConfig(({ mode }) => { + const env = loadEnv(mode, process.cwd()); + return { + server: { + port: Number(env.VITE_APP_PORT), + }, + preview: { + port: Number(env.VITE_APP_PORT), + }, + plugins: [vue(), vueDevTools(), tailwindcss()], + build: { + sourcemap: Boolean(env.VITE_SOURCE_MAP), + }, + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)), + }, + }, + }; +}); diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts new file mode 100644 index 0000000..35adc05 --- /dev/null +++ b/frontend/vitest.config.ts @@ -0,0 +1,26 @@ +import { fileURLToPath } from "node:url"; +import { configDefaults, defineConfig, mergeConfig } from "vitest/config"; +import viteConfig from "./vite.config"; + +export default defineConfig(({ command, mode }) => { + return mergeConfig( + { + test: { + inspectBrk: false, + fileParallelism: true, + testTimeout: 0, + exclude: [...configDefaults.exclude, "e2e/**"], + root: fileURLToPath(new URL("./", import.meta.url)), + browser: { + enabled: true, + headless: false, + provider: "playwright", + // https://vitest.dev/guide/browser/playwright + instances: [{ browser: "chromium" }], + screenshotFailures: false, + }, + }, + }, + viteConfig({ mode, command }), + ); +});