@gadmin2n/schematics 0.0.71 → 0.0.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +21 -0
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +9 -1
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package-lock.json +15579 -0
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +5 -3
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +16 -4
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +2 -0
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.controller.ts +106 -0
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.module.ts +10 -0
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/agenda/agenda.service.ts +569 -0
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +1159 -481
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.env +1 -0
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +1 -1
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +130 -3
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +5 -5
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +2 -2
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +15 -0
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +55 -43
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +1 -1
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +2 -4
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +2 -4
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/index.tsx +536 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/show.tsx +671 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +9 -60
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +2 -2
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +3 -1
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +11 -11
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/vite-env.d.ts +12 -0
  28. package/package.json +1 -1
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/web/.npmrc +0 -1
  30. package/src/lib/application/application.schema.d.ts +0 -59
  31. package/src/lib/application/files/gadmin2-game-angle-demo/.dockerignore +0 -33
  32. package/src/lib/application/files/gadmin2-game-angle-demo/.gitignore +0 -46
  33. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/_/.gitignore +0 -1
  34. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/_/husky.sh +0 -36
  35. package/src/lib/application/files/gadmin2-game-angle-demo/.husky/pre-commit +0 -10
  36. package/src/lib/application/files/gadmin2-game-angle-demo/Dockerfile +0 -63
  37. package/src/lib/application/files/gadmin2-game-angle-demo/Jenkinsfile +0 -70
  38. package/src/lib/application/files/gadmin2-game-angle-demo/config/.types.d.ts +0 -143
  39. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/canvas.prisma +0 -45
  40. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/example.prisma +0 -34
  41. package/src/lib/application/files/gadmin2-game-angle-demo/config/prisma/system.prisma +0 -173
  42. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Audit.ts +0 -70
  43. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Event.ts +0 -70
  44. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Game.ts +0 -58
  45. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/ITActivityDay.ts +0 -70
  46. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Log.ts +0 -56
  47. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Page.ts +0 -70
  48. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/PageResource.ts +0 -70
  49. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Resource.ts +0 -70
  50. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/Role.ts +0 -58
  51. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/RolePages.ts +0 -70
  52. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/RoleResource.ts +0 -70
  53. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/SavedQuery.ts +0 -70
  54. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/User.ts +0 -70
  55. package/src/lib/application/files/gadmin2-game-angle-demo/config/ui/_common.ts +0 -16
  56. package/src/lib/application/files/gadmin2-game-angle-demo/readme.md +0 -142
  57. package/src/lib/application/files/gadmin2-game-angle-demo/server/.env +0 -31
  58. package/src/lib/application/files/gadmin2-game-angle-demo/server/.env.local +0 -1
  59. package/src/lib/application/files/gadmin2-game-angle-demo/server/.eslintrc.js +0 -28
  60. package/src/lib/application/files/gadmin2-game-angle-demo/server/.prettierignore +0 -7
  61. package/src/lib/application/files/gadmin2-game-angle-demo/server/.prettierrc +0 -4
  62. package/src/lib/application/files/gadmin2-game-angle-demo/server/README.md +0 -55
  63. package/src/lib/application/files/gadmin2-game-angle-demo/server/config/ac.config.ts +0 -24
  64. package/src/lib/application/files/gadmin2-game-angle-demo/server/config/index.ts +0 -58
  65. package/src/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +0 -25
  66. package/src/lib/application/files/gadmin2-game-angle-demo/server/migrate-between-pg-schemas.js +0 -1232
  67. package/src/lib/application/files/gadmin2-game-angle-demo/server/package.json +0 -143
  68. package/src/lib/application/files/gadmin2-game-angle-demo/server/prisma/.generator.prisma +0 -34
  69. package/src/lib/application/files/gadmin2-game-angle-demo/server/prisma.config.ts +0 -16
  70. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/lib/page-helpers.ts +0 -157
  71. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/page-manage.ts +0 -290
  72. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/permission-manage.ts +0 -184
  73. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/prismaModels.ts +0 -143
  74. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/sync-resources.ts +0 -100
  75. package/src/lib/application/files/gadmin2-game-angle-demo/server/scripts/syncDataMngtPages.ts +0 -119
  76. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/games.ts +0 -1
  77. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +0 -21
  78. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/permissions.ts +0 -244
  79. package/src/lib/application/files/gadmin2-game-angle-demo/server/seed/users.ts +0 -7
  80. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/alias.config.ts +0 -7
  81. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.spec.ts +0 -22
  82. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.ts +0 -192
  83. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +0 -91
  84. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/app.service.ts +0 -189
  85. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/auth.guard.ts +0 -154
  86. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/http-cache.interceptor.ts +0 -21
  87. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/logger.ts +0 -19
  88. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/roles.guard.ts +0 -47
  89. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/safe-log.util.ts +0 -176
  90. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/taihu.ts +0 -175
  91. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/tracing.ts +0 -174
  92. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/trim.pipe.ts +0 -51
  93. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/utils.ts +0 -145
  94. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/lib/woaAuth.ts +0 -95
  95. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +0 -132
  96. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.spec.ts +0 -20
  97. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.controller.ts +0 -190
  98. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.module.ts +0 -10
  99. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.spec.ts +0 -338
  100. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/audit/audit.service.ts +0 -83
  101. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.spec.ts +0 -20
  102. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.controller.ts +0 -81
  103. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.dto.ts +0 -49
  104. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.module.ts +0 -11
  105. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.spec.ts +0 -334
  106. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/canvas/canvas.service.ts +0 -249
  107. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.spec.ts +0 -20
  108. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.controller.ts +0 -188
  109. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.module.ts +0 -10
  110. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.spec.ts +0 -18
  111. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/game/game.service.ts +0 -83
  112. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +0 -4
  113. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.spec.ts +0 -20
  114. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.controller.ts +0 -250
  115. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.module.ts +0 -10
  116. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.spec.ts +0 -18
  117. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/page/page.service.ts +0 -1051
  118. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.spec.ts +0 -20
  119. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.controller.ts +0 -196
  120. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.module.ts +0 -13
  121. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.spec.ts +0 -18
  122. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/pageResource/pageResource.service.ts +0 -219
  123. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.spec.ts +0 -20
  124. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.controller.ts +0 -196
  125. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.module.ts +0 -10
  126. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.spec.ts +0 -18
  127. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/resource/resource.service.ts +0 -199
  128. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.spec.ts +0 -20
  129. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.controller.ts +0 -210
  130. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.module.ts +0 -12
  131. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.spec.ts +0 -18
  132. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/role.service.ts +0 -862
  133. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/role/roles-refresher.service.ts +0 -133
  134. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.spec.ts +0 -20
  135. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.controller.ts +0 -196
  136. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.module.ts +0 -10
  137. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.spec.ts +0 -18
  138. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/rolePages/rolePages.service.ts +0 -201
  139. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.spec.ts +0 -20
  140. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.controller.ts +0 -196
  141. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.module.ts +0 -10
  142. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.spec.ts +0 -18
  143. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/roleResource/roleResource.service.ts +0 -216
  144. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.spec.ts +0 -20
  145. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.controller.ts +0 -198
  146. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.module.ts +0 -10
  147. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.spec.ts +0 -18
  148. package/src/lib/application/files/gadmin2-game-angle-demo/server/src/modules/user/user.service.ts +0 -104
  149. package/src/lib/application/files/gadmin2-game-angle-demo/server/start-prod.sh +0 -130
  150. package/src/lib/application/files/gadmin2-game-angle-demo/server/test/app.e2e-spec.ts +0 -24
  151. package/src/lib/application/files/gadmin2-game-angle-demo/server/test/jest-e2e.json +0 -9
  152. package/src/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.build.json +0 -4
  153. package/src/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.json +0 -36
  154. package/src/lib/application/files/gadmin2-game-angle-demo/server/yarn.lock +0 -7737
  155. package/src/lib/application/files/gadmin2-game-angle-demo/web/.env +0 -2
  156. package/src/lib/application/files/gadmin2-game-angle-demo/web/.eslintrc.json +0 -38
  157. package/src/lib/application/files/gadmin2-game-angle-demo/web/.npmrc +0 -1
  158. package/src/lib/application/files/gadmin2-game-angle-demo/web/.prettierignore +0 -2
  159. package/src/lib/application/files/gadmin2-game-angle-demo/web/.prettierrc +0 -4
  160. package/src/lib/application/files/gadmin2-game-angle-demo/web/README.MD +0 -48
  161. package/src/lib/application/files/gadmin2-game-angle-demo/web/dev-shell-entry.html +0 -49
  162. package/src/lib/application/files/gadmin2-game-angle-demo/web/index.html +0 -19
  163. package/src/lib/application/files/gadmin2-game-angle-demo/web/package.json +0 -92
  164. package/src/lib/application/files/gadmin2-game-angle-demo/web/postcss.config.cjs +0 -6
  165. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/favicon.ico +0 -0
  166. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/en.svg +0 -1
  167. package/src/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/zh_CN.svg +0 -11
  168. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +0 -137
  169. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/auditLogProvider.ts +0 -89
  170. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +0 -144
  171. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +0 -287
  172. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/ListPageHeader.tsx +0 -56
  173. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +0 -318
  174. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +0 -323
  175. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/SqlModal.tsx +0 -495
  176. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.css +0 -10
  177. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.jsx +0 -53
  178. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentContext.tsx +0 -375
  179. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/ElementInspector.tsx +0 -1133
  180. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/agentAttributes.ts +0 -70
  181. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/index.ts +0 -8
  182. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +0 -1034
  183. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/pagePathUtils.ts +0 -66
  184. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/promptGenerator.ts +0 -135
  185. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/propPatcher.ts +0 -84
  186. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +0 -58
  187. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/index.ts +0 -4
  188. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +0 -96
  189. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +0 -72
  190. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +0 -104
  191. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/index.tsx +0 -2
  192. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/BarChart/index.tsx +0 -896
  193. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartSwitcher/index.tsx +0 -219
  194. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/ChartViewer/index.tsx +0 -159
  195. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Filter/index.tsx +0 -192
  196. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/LineChart/index.tsx +0 -1034
  197. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/NumCard.module.css +0 -8
  198. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumCard/index.tsx +0 -509
  199. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/NumLineCard/index.tsx +0 -66
  200. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/PieChart/index.tsx +0 -552
  201. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/RadarChart/index.tsx +0 -263
  202. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Section/index.tsx +0 -35
  203. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/Table/index.tsx +0 -207
  204. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/TreemapChart/index.tsx +0 -382
  205. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/WorldMap/index.tsx +0 -135
  206. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/chart-constants.ts +0 -53
  207. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/InfoIcon.tsx +0 -8
  208. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/icon/index.ts +0 -1
  209. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/config.ts +0 -31
  210. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/nameMap.json +0 -9
  211. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/map/world.geo.json +0 -39349
  212. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/canvas/metric-info-tooltip/index.tsx +0 -19
  213. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/business/index.tsx +0 -65
  214. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +0 -54
  215. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/custom-avatar.tsx +0 -42
  216. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +0 -8
  217. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +0 -106
  218. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/index.ts +0 -4
  219. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/layout.tsx +0 -32
  220. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/logo.tsx +0 -19
  221. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +0 -431
  222. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/title.tsx +0 -61
  223. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/offLayoutArea/index.tsx +0 -5
  224. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/pagination-total.tsx +0 -21
  225. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/index.ts +0 -1
  226. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/tags/role-tag.tsx +0 -44
  227. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/components/text.tsx +0 -78
  228. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/config/http.ts +0 -49
  229. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +0 -428
  230. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +0 -16
  231. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +0 -199
  232. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +0 -335
  233. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DeleteDataConfirm.tsx +0 -56
  234. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +0 -401
  235. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/EditDataModal.tsx +0 -129
  236. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/SkillMenu.tsx +0 -202
  237. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/UndoConfirm.tsx +0 -36
  238. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/index.tsx +0 -8
  239. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +0 -835
  240. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/enums/audit-log.enum.ts +0 -13
  241. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/enums/index.ts +0 -1
  242. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +0 -471
  243. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-name-initials.ts +0 -8
  244. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/get-random-color.ts +0 -27
  245. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +0 -84
  246. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/index.tsx +0 -8
  247. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +0 -491
  248. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +0 -82
  249. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/page-tree.ts +0 -74
  250. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +0 -226
  251. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/utils.tsx +0 -9
  252. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/index.ts +0 -7
  253. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +0 -138
  254. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchDelete.ts +0 -191
  255. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperations.ts +0 -153
  256. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperationsCore.ts +0 -193
  257. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchUpdate.ts +0 -182
  258. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +0 -220
  259. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useECharts.tsx +0 -144
  260. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useFetchData.ts +0 -33
  261. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +0 -303
  262. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRoles.ts +0 -34
  263. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRowSelection.ts +0 -38
  264. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useUserPageAccess.ts +0 -353
  265. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +0 -23
  266. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/index.tsx +0 -27
  267. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +0 -321
  268. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +0 -324
  269. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/meta.json +0 -4
  270. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +0 -81
  271. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.css +0 -3
  272. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/components/action-cell.tsx +0 -134
  273. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/create.tsx +0 -105
  274. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/edit.tsx +0 -121
  275. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.ts +0 -8
  276. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.tsx +0 -4
  277. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/list.tsx +0 -220
  278. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/show.tsx +0 -74
  279. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasCell.tsx +0 -87
  280. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +0 -192
  281. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +0 -409
  282. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasPage.tsx +0 -1372
  283. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasToolbar.tsx +0 -384
  284. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CodeFloatWindow.tsx +0 -476
  285. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/ComponentThumbnail.tsx +0 -137
  286. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/IsolatedLivePreview.tsx +0 -101
  287. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/LivePreview.tsx +0 -236
  288. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/PublishModal.tsx +0 -200
  289. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasApi.ts +0 -92
  290. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasConfigRegistry.tsx +0 -25
  291. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasContextMenuRegistry.tsx +0 -875
  292. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasDefaults.ts +0 -126
  293. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/canvasI18n.ts +0 -11
  294. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/BarChartDataSourceModal.tsx +0 -115
  295. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/ChartViewerConfigModal.tsx +0 -217
  296. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/LineChartDataSourceModal.tsx +0 -153
  297. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/NumCardDataSourceModal.tsx +0 -211
  298. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/PromptModal.tsx +0 -90
  299. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/RadarChartDataSourceModal.tsx +0 -87
  300. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/TableDataSourceModal.tsx +0 -204
  301. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/demos.ts +0 -1153
  302. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/index.tsx +0 -2
  303. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/sectionCompactor.ts +0 -45
  304. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/types.ts +0 -45
  305. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas-page/index.tsx +0 -108
  306. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/create.tsx +0 -105
  307. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/edit.tsx +0 -121
  308. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/index.tsx +0 -4
  309. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/list.tsx +0 -237
  310. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/game/show.tsx +0 -74
  311. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/AssignRolesModal.tsx +0 -177
  312. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/CreatePageModal.tsx +0 -42
  313. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/EditPageModal.tsx +0 -46
  314. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageDetailDrawer.tsx +0 -136
  315. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/Components/PageFormModal.tsx +0 -815
  316. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/hooks/usePageManagement.ts +0 -40
  317. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/index.ts +0 -1
  318. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/list.tsx +0 -1370
  319. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/queries.ts +0 -17
  320. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/page/types.ts +0 -45
  321. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/permissionReadme/index.tsx +0 -1090
  322. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/CreateModal.tsx +0 -25
  323. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/EditModal.tsx +0 -28
  324. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/ResourceDetailDrawer.tsx +0 -177
  325. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/Components/modal.tsx +0 -230
  326. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/index.ts +0 -2
  327. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/list.tsx +0 -250
  328. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/queries.ts +0 -10
  329. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/resource/types.ts +0 -9
  330. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/CreateModal.tsx +0 -30
  331. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/EditModal.tsx +0 -47
  332. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/RoleDetailDrawer.tsx +0 -66
  333. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/Components/modal.tsx +0 -300
  334. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/hooks/useRolePage.ts +0 -35
  335. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/index.ts +0 -1
  336. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/list.tsx +0 -405
  337. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/queries.ts +0 -8
  338. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/role/types.ts +0 -8
  339. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/create-modal.tsx +0 -17
  340. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/edit-modal.tsx +0 -19
  341. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/form-modal.tsx +0 -194
  342. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/index.ts +0 -5
  343. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/role-tag.tsx +0 -48
  344. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/components/show-drawer.tsx +0 -145
  345. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/index.ts +0 -1
  346. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/list.tsx +0 -377
  347. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/routes/user/queries.ts +0 -14
  348. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/setupTests.ts +0 -5
  349. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd.css +0 -132
  350. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/fc.css +0 -58
  351. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/index.css +0 -128
  352. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-drawer.module.css +0 -18
  353. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/styles/show-page.module.css +0 -21
  354. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/audit-log.ts +0 -1
  355. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/index.ts +0 -3
  356. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/role.ts +0 -7
  357. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/types/user.ts +0 -1
  358. package/src/lib/application/files/gadmin2-game-angle-demo/web/src/vite-env.d.ts +0 -13
  359. package/src/lib/application/files/gadmin2-game-angle-demo/web/tsconfig.json +0 -28
  360. package/src/lib/application/files/gadmin2-game-angle-demo/web/vite.config.ts +0 -48
  361. package/src/lib/application/files/gadmin2-game-angle-demo/web/yarn.lock +0 -9482
  362. package/src/lib/class/class.schema.d.ts +0 -32
  363. package/src/lib/class/files/js/__name__.js +0 -1
  364. package/src/lib/class/files/js/__name__.spec.js +0 -7
  365. package/src/lib/class/files/ts/__name__.spec.ts +0 -7
  366. package/src/lib/class/files/ts/__name__.ts +0 -1
  367. package/src/lib/client-app/angular/angular.schema.d.ts +0 -32
  368. package/src/lib/client-app/angular/files/angular.constants.ts +0 -4
  369. package/src/lib/client-app/angular/files/angular.module.ts +0 -41
  370. package/src/lib/client-app/angular/files/angular.providers.ts +0 -27
  371. package/src/lib/client-app/angular/files/angular.utils.ts +0 -19
  372. package/src/lib/client-app/angular/files/interfaces/angular-options.interface.ts +0 -87
  373. package/src/lib/client-app/angular/files/loaders/abstract.loader.ts +0 -16
  374. package/src/lib/client-app/angular/files/loaders/express.loader.ts +0 -25
  375. package/src/lib/client-app/angular/files/loaders/fastify.loader.ts +0 -34
  376. package/src/lib/client-app/angular/files/loaders/noop.loader.ts +0 -12
  377. package/src/lib/configuration/configuration.schema.d.ts +0 -18
  378. package/src/lib/configuration/files/js/nest-cli.json +0 -6
  379. package/src/lib/configuration/files/ts/nest-cli.json +0 -5
  380. package/src/lib/controller/controller.schema.d.ts +0 -45
  381. package/src/lib/controller/files/js/__name__.controller.js +0 -4
  382. package/src/lib/controller/files/js/__name__.controller.spec.js +0 -18
  383. package/src/lib/controller/files/ts/__name__.controller.spec.ts +0 -18
  384. package/src/lib/controller/files/ts/__name__.controller.ts +0 -137
  385. package/src/lib/decorator/decorator.schema.d.ts +0 -24
  386. package/src/lib/decorator/files/js/__name__.decorator.js +0 -3
  387. package/src/lib/decorator/files/ts/__name__.decorator.ts +0 -3
  388. package/src/lib/filter/files/js/__name__.filter.js +0 -6
  389. package/src/lib/filter/files/js/__name__.filter.spec.js +0 -7
  390. package/src/lib/filter/files/ts/__name__.filter.spec.ts +0 -7
  391. package/src/lib/filter/files/ts/__name__.filter.ts +0 -6
  392. package/src/lib/filter/filter.schema.d.ts +0 -28
  393. package/src/lib/gateway/files/js/__name__.gateway.js +0 -9
  394. package/src/lib/gateway/files/js/__name__.gateway.spec.js +0 -18
  395. package/src/lib/gateway/files/ts/__name__.gateway.spec.ts +0 -18
  396. package/src/lib/gateway/files/ts/__name__.gateway.ts +0 -9
  397. package/src/lib/gateway/gateway.schema.d.ts +0 -36
  398. package/src/lib/guard/files/js/__name__.guard.js +0 -8
  399. package/src/lib/guard/files/js/__name__.guard.spec.js +0 -7
  400. package/src/lib/guard/files/ts/__name__.guard.spec.ts +0 -7
  401. package/src/lib/guard/files/ts/__name__.guard.ts +0 -11
  402. package/src/lib/guard/guard.schema.d.ts +0 -28
  403. package/src/lib/interceptor/files/js/__name__.interceptor.js +0 -8
  404. package/src/lib/interceptor/files/js/__name__.interceptor.spec.js +0 -7
  405. package/src/lib/interceptor/files/ts/default/__name__.interceptor.spec.ts +0 -7
  406. package/src/lib/interceptor/files/ts/default/__name__.interceptor.ts +0 -9
  407. package/src/lib/interceptor/files/ts/generated/__name__.interceptor.spec.ts +0 -7
  408. package/src/lib/interceptor/files/ts/generated/__name__.interceptor.ts +0 -13
  409. package/src/lib/interceptor/interceptor.schema.d.ts +0 -35
  410. package/src/lib/interface/files/__name__.interface.ts +0 -1
  411. package/src/lib/interface/interface.schema.d.ts +0 -20
  412. package/src/lib/library/files/js/.babelrc +0 -4
  413. package/src/lib/library/files/js/jsconfig.json +0 -9
  414. package/src/lib/library/files/js/src/__name__.module.js +0 -8
  415. package/src/lib/library/files/js/src/__name__.service.js +0 -4
  416. package/src/lib/library/files/js/src/__name__.service.spec.js +0 -18
  417. package/src/lib/library/files/js/src/index.js +0 -2
  418. package/src/lib/library/files/ts/src/__name__.module.ts +0 -8
  419. package/src/lib/library/files/ts/src/__name__.service.spec.ts +0 -18
  420. package/src/lib/library/files/ts/src/__name__.service.ts +0 -4
  421. package/src/lib/library/files/ts/src/index.ts +0 -2
  422. package/src/lib/library/files/ts/tsconfig.lib.json +0 -9
  423. package/src/lib/library/library.schema.d.ts +0 -24
  424. package/src/lib/middleware/files/js/__name__.middleware.js +0 -8
  425. package/src/lib/middleware/files/js/__name__.middleware.spec.js +0 -7
  426. package/src/lib/middleware/files/ts/__name__.middleware.spec.ts +0 -7
  427. package/src/lib/middleware/files/ts/__name__.middleware.ts +0 -8
  428. package/src/lib/middleware/middleware.schema.d.ts +0 -28
  429. package/src/lib/module/files/js/__name__.module.js +0 -4
  430. package/src/lib/module/files/ts/__name__.module.ts +0 -4
  431. package/src/lib/module/module.schema.d.ts +0 -40
  432. package/src/lib/pipe/files/js/__name__.pipe.js +0 -8
  433. package/src/lib/pipe/files/js/__name__.pipe.spec.js +0 -7
  434. package/src/lib/pipe/files/ts/__name__.pipe.spec.ts +0 -7
  435. package/src/lib/pipe/files/ts/__name__.pipe.ts +0 -8
  436. package/src/lib/pipe/pipe.schema.d.ts +0 -28
  437. package/src/lib/prisma-resource/files/ts/__name__.controller.spec.ts +0 -20
  438. package/src/lib/prisma-resource/files/ts/__name__.controller.ts +0 -63
  439. package/src/lib/prisma-resource/files/ts/__name__.module.ts +0 -9
  440. package/src/lib/prisma-resource/files/ts/__name__.service.spec.ts +0 -18
  441. package/src/lib/prisma-resource/files/ts/__name__.service.ts +0 -28
  442. package/src/lib/prisma-resource/files/ts/dto/create-__name@singular__.dto.ts +0 -1
  443. package/src/lib/prisma-resource/files/ts/dto/create-__name@singular__.input.ts +0 -7
  444. package/src/lib/prisma-resource/files/ts/dto/update-__name@singular__.dto.ts +0 -6
  445. package/src/lib/prisma-resource/files/ts/dto/update-__name@singular__.input.ts +0 -13
  446. package/src/lib/prisma-resource/files/ts/entities/__name@singular@ent__.ts +0 -7
  447. package/src/lib/prisma-resource/prisma-resource.schema.d.ts +0 -57
  448. package/src/lib/provider/files/js/__name__.js +0 -4
  449. package/src/lib/provider/files/js/__name__.spec.js +0 -18
  450. package/src/lib/provider/files/ts/__name__.spec.ts +0 -18
  451. package/src/lib/provider/files/ts/__name__.ts +0 -4
  452. package/src/lib/provider/provider.schema.d.ts +0 -48
  453. package/src/lib/resolver/files/js/__name__.resolver.js +0 -4
  454. package/src/lib/resolver/files/js/__name__.resolver.spec.js +0 -18
  455. package/src/lib/resolver/files/ts/__name__.resolver.spec.ts +0 -18
  456. package/src/lib/resolver/files/ts/__name__.resolver.ts +0 -4
  457. package/src/lib/resolver/resolver.schema.d.ts +0 -36
  458. package/src/lib/resource/files/ts/__name__.controller.spec.ts +0 -20
  459. package/src/lib/resource/files/ts/__name__.controller.ts +0 -63
  460. package/src/lib/resource/files/ts/__name__.gateway.spec.ts +0 -19
  461. package/src/lib/resource/files/ts/__name__.gateway.ts +0 -34
  462. package/src/lib/resource/files/ts/__name__.graphql +0 -24
  463. package/src/lib/resource/files/ts/__name__.module.ts +0 -9
  464. package/src/lib/resource/files/ts/__name__.resolver.spec.ts +0 -19
  465. package/src/lib/resource/files/ts/__name__.resolver.ts +0 -60
  466. package/src/lib/resource/files/ts/__name__.service.spec.ts +0 -18
  467. package/src/lib/resource/files/ts/__name__.service.ts +0 -28
  468. package/src/lib/resource/files/ts/dto/create-__name@singular__.dto.ts +0 -1
  469. package/src/lib/resource/files/ts/dto/create-__name@singular__.input.ts +0 -7
  470. package/src/lib/resource/files/ts/dto/update-__name@singular__.dto.ts +0 -6
  471. package/src/lib/resource/files/ts/dto/update-__name@singular__.input.ts +0 -13
  472. package/src/lib/resource/files/ts/entities/__name@singular@ent__.ts +0 -7
  473. package/src/lib/resource/resource.schema.d.ts +0 -57
  474. package/src/lib/service/files/js/__name__.service.js +0 -4
  475. package/src/lib/service/files/js/__name__.service.spec.js +0 -18
  476. package/src/lib/service/files/ts/__name__.service.spec.ts +0 -18
  477. package/src/lib/service/files/ts/__name__.service.ts +0 -4
  478. package/src/lib/service/service.schema.d.ts +0 -44
  479. package/src/lib/sub-app/files/js/.babelrc +0 -4
  480. package/src/lib/sub-app/files/js/index.js +0 -2
  481. package/src/lib/sub-app/files/js/jsconfig.json +0 -10
  482. package/src/lib/sub-app/files/js/src/app.controller.js +0 -15
  483. package/src/lib/sub-app/files/js/src/app.controller.spec.js +0 -22
  484. package/src/lib/sub-app/files/js/src/app.module.js +0 -10
  485. package/src/lib/sub-app/files/js/src/app.service.js +0 -8
  486. package/src/lib/sub-app/files/js/src/main.js +0 -8
  487. package/src/lib/sub-app/files/js/test/app.e2e-spec.js +0 -23
  488. package/src/lib/sub-app/files/js/test/jest-e2e.json +0 -5
  489. package/src/lib/sub-app/files/ts/src/__name__.controller.spec.ts +0 -22
  490. package/src/lib/sub-app/files/ts/src/__name__.controller.ts +0 -12
  491. package/src/lib/sub-app/files/ts/src/__name__.module.ts +0 -10
  492. package/src/lib/sub-app/files/ts/src/__name__.service.ts +0 -8
  493. package/src/lib/sub-app/files/ts/src/main.ts +0 -8
  494. package/src/lib/sub-app/files/ts/test/app.e2e-spec.ts +0 -24
  495. package/src/lib/sub-app/files/ts/test/jest-e2e.json +0 -9
  496. package/src/lib/sub-app/files/ts/tsconfig.app.json +0 -9
  497. package/src/lib/sub-app/sub-app.schema.d.ts +0 -21
  498. package/src/lib/sub-app/workspace/js/.babelrc +0 -4
  499. package/src/lib/sub-app/workspace/js/index.js +0 -2
  500. package/src/lib/sub-app/workspace/js/jsconfig.json +0 -10
  501. package/src/lib/sub-app/workspace/ts/tsconfig.app.json +0 -9
@@ -1,862 +0,0 @@
1
- import { Inject, Injectable } from '@nestjs/common';
2
- import { Prisma, Role } from '@prisma/client';
3
- import { WINSTON_MODULE_PROVIDER } from 'nest-winston';
4
- import { PrismaService } from 'nestjs-prisma';
5
- import { Logger } from 'winston';
6
-
7
- import { RolesBuilder } from 'nest-access-control';
8
- import { createSafeLogData } from '../../lib/safe-log.util';
9
-
10
- @Injectable()
11
- export class RoleService {
12
- // 单例 RolesBuilder 引用 — 其他代码通过 DI 或导出此实例读取
13
- private rolesBuilder: RolesBuilder = new RolesBuilder();
14
-
15
- constructor(
16
- private prisma: PrismaService,
17
- @Inject(WINSTON_MODULE_PROVIDER) private readonly logger: Logger,
18
- ) {}
19
-
20
- get rolesBuilderRef() {
21
- return this.rolesBuilder;
22
- }
23
-
24
- async getBuilder(): Promise<RolesBuilder> {
25
- // console.log('[__ROLE_PAGE_RESOURCE__] Getting roles from DB...');
26
- const newBuilder = new RolesBuilder();
27
-
28
- // 查询所有通用资源
29
- const commonResources = await this.prisma.resource.findMany({
30
- where: { isCommonResource: true },
31
- select: { id: true, name: true },
32
- });
33
-
34
- const rows = await this.prisma.role.findMany({
35
- include: {
36
- roleResources: {
37
- include: {
38
- resource: true,
39
- },
40
- },
41
- },
42
- });
43
-
44
- for (const role of rows) {
45
- const roleName = role.name;
46
-
47
- const grant = newBuilder.grant(roleName);
48
-
49
- // 记录该角色已配置的资源 ID,用于判断是否需要添加通用资源的默认权限
50
- const configuredResourceIds = new Set<number>();
51
-
52
- // 处理新的数据结构:通过 roleResources 关联表获取权限
53
- if (role.roleResources && role.roleResources.length > 0) {
54
- for (const roleResource of role.roleResources) {
55
- const resourceName = roleResource.resource?.name;
56
- const resourceId = roleResource.resource?.id;
57
- const actions = roleResource.actions;
58
-
59
- if (resourceId) {
60
- configuredResourceIds.add(resourceId);
61
- }
62
-
63
- if (resourceName && actions) {
64
- // actions 现在是 JsonValue 类型,需要处理
65
- let actionsArray: string[] = [];
66
- if (typeof actions === 'string') {
67
- actionsArray = actions.split(',');
68
- } else if (Array.isArray(actions)) {
69
- actionsArray = actions.map(String);
70
- } else if (actions && typeof actions === 'object') {
71
- // 如果是对象,尝试提取数组或转换为字符串数组
72
- actionsArray = Object.values(actions).map(String);
73
- }
74
- for (const action of actionsArray) {
75
- grant[action](resourceName, ['*']);
76
- }
77
- }
78
- }
79
- }
80
-
81
- // 为所有角色添加通用资源的 readAny 权限(如果该角色没有配置该资源)
82
- for (const commonResource of commonResources) {
83
- if (!configuredResourceIds.has(commonResource.id)) {
84
- grant.readAny(commonResource.name, ['*']);
85
- }
86
- }
87
- }
88
-
89
- this.rolesBuilder = newBuilder;
90
- // console.log(
91
- // `[__ROLE_PAGE_RESOURCE__] Roles built successfully with ${commonResources.length} common resources.`,
92
- // );
93
- return newBuilder;
94
- }
95
-
96
- async createOne(roleCreateArgs: Prisma.RoleCreateArgs) {
97
- this.logger.info(
98
- '[Role] Creating role',
99
- createSafeLogData({
100
- operation: 'CREATE',
101
- table: 'role',
102
- data: roleCreateArgs.data,
103
- }),
104
- );
105
- const result = await this.prisma.role.create(roleCreateArgs);
106
- this.logger.info(
107
- '[Role] Role created successfully',
108
- createSafeLogData({
109
- operation: 'CREATE',
110
- table: 'role',
111
- result: result,
112
- }),
113
- );
114
- return result;
115
- }
116
-
117
- /**
118
- * 根据 pageIds 准备 roleResources 数据(从 pageResources 查询并合并 actions)
119
- * @param pageIds 页面 ID 数组
120
- * @returns roleResources 数据数组(不包含 roleId)
121
- */
122
- private async prepareRoleResourcesFromPages(
123
- pageIds: number[],
124
- ): Promise<Omit<Prisma.RoleResourceCreateManyInput, 'roleId'>[]> {
125
- if (!pageIds || pageIds.length === 0) {
126
- return [];
127
- }
128
-
129
- // 查询 pageResources 数据(在事务外查询是安全的,因为 pageResource 是相对静态的配置数据)
130
- const pageResources = await this.prisma.pageResource.findMany({
131
- where: {
132
- pageId: { in: pageIds },
133
- },
134
- select: {
135
- resourceId: true,
136
- actions: true,
137
- },
138
- });
139
-
140
- if (pageResources.length === 0) {
141
- return [];
142
- }
143
-
144
- // 合并 actions(同一个 resource 可能在多个 page 中,需要取并集)
145
- const resourceActionsMap = new Map<number, Set<string>>();
146
-
147
- for (const pr of pageResources) {
148
- const resourceId = pr.resourceId;
149
- let actionsSet = resourceActionsMap.get(resourceId);
150
-
151
- if (!actionsSet) {
152
- actionsSet = new Set<string>();
153
- resourceActionsMap.set(resourceId, actionsSet);
154
- }
155
-
156
- // 解析 actions(JSON 数组格式,如 ["readAny", "deleteAny"])
157
- const actions = this.parseActions(pr.actions);
158
- actions.forEach((action) => actionsSet.add(action));
159
- }
160
-
161
- return Array.from(resourceActionsMap.entries()).map(
162
- ([resourceId, actionsSet]) => ({
163
- resourceId,
164
- actions: Array.from(actionsSet) as Prisma.InputJsonValue,
165
- }),
166
- );
167
- }
168
-
169
- /**
170
- * 同步角色的页面权限和资源权限(用于事务数组)
171
- * @param roleId 角色 ID
172
- * @param pageIds 页面 ID 数组
173
- * @param roleResourcesTemplate 资源权限模板数据(不包含 roleId)
174
- * @returns 事务操作数组
175
- */
176
- private async syncRolePagesAndResources(
177
- roleId: number,
178
- pageIds: number[],
179
- roleResourcesTemplate: Omit<Prisma.RoleResourceCreateManyInput, 'roleId'>[],
180
- ): Promise<any[]> {
181
- const operations: any[] = [];
182
-
183
- // 查询当前角色的旧页面权限
184
- const oldRolePages = await this.prisma.rolePages.findMany({
185
- where: { roleId },
186
- include: {
187
- page: {
188
- select: {
189
- id: true,
190
- name: true,
191
- },
192
- },
193
- },
194
- });
195
-
196
- // 查询当前角色的旧资源权限
197
- const oldRoleResources = await this.prisma.roleResource.findMany({
198
- where: { roleId },
199
- include: {
200
- resource: {
201
- select: {
202
- id: true,
203
- name: true,
204
- isCommonResource: true,
205
- },
206
- },
207
- },
208
- });
209
-
210
- const oldPageIds = oldRolePages.map((rp) => rp.pageId);
211
- const newPageIds = pageIds;
212
-
213
- // 计算页面变化
214
- const pagesToDelete = oldRolePages.filter(
215
- (rp) => !newPageIds.includes(rp.pageId),
216
- );
217
- const pagesToAdd = newPageIds.filter(
218
- (pageId) => !oldPageIds.includes(pageId),
219
- );
220
-
221
- // 计算资源变化
222
- const oldResourceMap = new Map(
223
- oldRoleResources.map((rr) => [
224
- rr.resourceId,
225
- {
226
- actions: rr.actions,
227
- resourceName: rr.resource.name,
228
- },
229
- ]),
230
- );
231
-
232
- const newResourceMap = new Map(
233
- roleResourcesTemplate.map((template) => [
234
- template.resourceId,
235
- {
236
- actions: template.actions,
237
- },
238
- ]),
239
- );
240
-
241
- // 查询所有「通过页面管理的资源」(即在 t_page_resource 中存在的资源)
242
- // 只有这类资源才应受页面变更影响;直接授权的资源(如 rolePages/roleResource/pageResource)
243
- // 没有 t_page_resource 记录,绝对不能被页面同步逻辑删除
244
- const allPageManagedResources = await this.prisma.pageResource.findMany({
245
- select: { resourceId: true },
246
- distinct: ['resourceId'],
247
- });
248
- const pageManagedResourceIds = new Set(
249
- allPageManagedResources.map((pr) => pr.resourceId),
250
- );
251
-
252
- // 只删除那些:1) 不在新资源列表中,且 2) 不是通用资源,且 3) 是页面管理的资源
253
- // 条件 3 确保直接授权的资源(没有任何 t_page_resource 记录)不会被误删
254
- const resourcesToDelete = oldRoleResources.filter(
255
- (rr) =>
256
- !newResourceMap.has(rr.resourceId) &&
257
- !rr.resource.isCommonResource &&
258
- pageManagedResourceIds.has(rr.resourceId),
259
- );
260
-
261
- const resourcesToAdd = roleResourcesTemplate.filter(
262
- (template) => !oldResourceMap.has(template.resourceId),
263
- );
264
-
265
- const resourcesToUpdate = roleResourcesTemplate.filter((template) => {
266
- const oldResource = oldResourceMap.get(template.resourceId);
267
- if (!oldResource) return false;
268
- // 比较 actions 是否有变化(排序后再比较,避免顺序不同导致误判)
269
- const oldActions = Array.isArray(oldResource.actions)
270
- ? [...(oldResource.actions as string[])].sort()
271
- : [];
272
- const newActions = Array.isArray(template.actions)
273
- ? [...(template.actions as string[])].sort()
274
- : [];
275
- return JSON.stringify(oldActions) !== JSON.stringify(newActions);
276
- });
277
-
278
- // 打印对比结果
279
- console.log(
280
- '\n[__ROLE_PAGE_RESOURCE__] ========== 角色权限变更对比 ==========',
281
- );
282
- console.log(`[__ROLE_PAGE_RESOURCE__] 角色 ID: ${roleId}`);
283
- console.log('[__ROLE_PAGE_RESOURCE__] 【页面权限变化】');
284
- console.log(
285
- `[__ROLE_PAGE_RESOURCE__] 删除的页面 (${pagesToDelete.length}):`,
286
- );
287
- pagesToDelete.forEach((rp) => {
288
- console.log(
289
- `[__ROLE_PAGE_RESOURCE__] - [${rp.pageId}] ${rp.page.name}`,
290
- );
291
- });
292
- console.log(`[__ROLE_PAGE_RESOURCE__] 新增的页面 (${pagesToAdd.length}):`);
293
- for (const pageId of pagesToAdd) {
294
- const page = await this.prisma.page.findUnique({
295
- where: { id: pageId },
296
- select: { id: true, name: true },
297
- });
298
- if (page) {
299
- console.log(`[__ROLE_PAGE_RESOURCE__] + [${page.id}] ${page.name}`);
300
- }
301
- }
302
-
303
- console.log('[__ROLE_PAGE_RESOURCE__] 【资源权限变化】');
304
- console.log(
305
- `[__ROLE_PAGE_RESOURCE__] 删除的资源 (${resourcesToDelete.length}):`,
306
- );
307
- resourcesToDelete.forEach((rr) => {
308
- console.log(
309
- `[__ROLE_PAGE_RESOURCE__] - [${rr.resourceId}] ${
310
- rr.resource.name
311
- } - actions: ${JSON.stringify(rr.actions)}`,
312
- );
313
- });
314
-
315
- console.log(
316
- `[__ROLE_PAGE_RESOURCE__] 新增的资源 (${resourcesToAdd.length}):`,
317
- );
318
- for (const template of resourcesToAdd) {
319
- const resource = await this.prisma.resource.findUnique({
320
- where: { id: template.resourceId },
321
- select: { id: true, name: true },
322
- });
323
- if (resource) {
324
- console.log(
325
- `[__ROLE_PAGE_RESOURCE__] + [${resource.id}] ${
326
- resource.name
327
- } - actions: ${JSON.stringify(template.actions)}`,
328
- );
329
- }
330
- }
331
-
332
- console.log(
333
- `[__ROLE_PAGE_RESOURCE__] 更新的资源 (${resourcesToUpdate.length}):`,
334
- );
335
- for (const template of resourcesToUpdate) {
336
- const resource = await this.prisma.resource.findUnique({
337
- where: { id: template.resourceId },
338
- select: { id: true, name: true },
339
- });
340
- const oldResource = oldResourceMap.get(template.resourceId);
341
- if (resource && oldResource) {
342
- console.log(
343
- `[__ROLE_PAGE_RESOURCE__] ~ [${resource.id}] ${resource.name}`,
344
- );
345
- console.log(
346
- `[__ROLE_PAGE_RESOURCE__] 旧 actions: ${JSON.stringify(
347
- oldResource.actions,
348
- )}`,
349
- );
350
- console.log(
351
- `[__ROLE_PAGE_RESOURCE__] 新 actions: ${JSON.stringify(
352
- template.actions,
353
- )}`,
354
- );
355
- }
356
- }
357
- // 1. 增量更新 rolePages:只删除需要删除的,只添加需要添加的
358
- const pageIdsToDelete = pagesToDelete.map((rp) => rp.pageId);
359
-
360
- if (pageIdsToDelete.length > 0) {
361
- this.logger.info(
362
- '[RolePages] Deleting role pages',
363
- createSafeLogData({
364
- operation: 'DELETE_MANY',
365
- table: 'rolePages',
366
- roleId: roleId,
367
- pageIds: pageIdsToDelete,
368
- }),
369
- );
370
- operations.push(
371
- this.prisma.rolePages.deleteMany({
372
- where: {
373
- roleId,
374
- pageId: { in: pageIdsToDelete },
375
- },
376
- }),
377
- );
378
- }
379
-
380
- // 2. 如果有新的 pageIds,批量插入
381
- if (pagesToAdd.length > 0) {
382
- const rolePagesData = pagesToAdd.map((pageId) => ({
383
- roleId,
384
- pageId,
385
- }));
386
-
387
- this.logger.info(
388
- '[RolePages] Creating role pages',
389
- createSafeLogData({
390
- operation: 'CREATE_MANY',
391
- table: 'rolePages',
392
- roleId: roleId,
393
- data: rolePagesData,
394
- }),
395
- );
396
- operations.push(
397
- this.prisma.rolePages.createMany({
398
- data: rolePagesData,
399
- skipDuplicates: true,
400
- }),
401
- );
402
- }
403
-
404
- // 3. 只删除那些需要删除的资源(不是全部删除)
405
- if (resourcesToDelete.length > 0) {
406
- const resourceIdsToDelete = resourcesToDelete.map((rr) => rr.resourceId);
407
- this.logger.info(
408
- '[RoleResource] Deleting role resources',
409
- createSafeLogData({
410
- operation: 'DELETE_MANY',
411
- table: 'roleResource',
412
- roleId: roleId,
413
- resourceIds: resourceIdsToDelete,
414
- oldData: resourcesToDelete,
415
- }),
416
- );
417
- operations.push(
418
- this.prisma.roleResource.deleteMany({
419
- where: {
420
- roleId,
421
- resourceId: {
422
- in: resourceIdsToDelete,
423
- },
424
- },
425
- }),
426
- );
427
- }
428
-
429
- // 4. 插入新的资源权限
430
- if (resourcesToAdd.length > 0) {
431
- const roleResourcesData = resourcesToAdd.map((template) => ({
432
- ...template,
433
- roleId,
434
- }));
435
-
436
- this.logger.info(
437
- '[RoleResource] Creating role resources',
438
- createSafeLogData({
439
- operation: 'CREATE_MANY',
440
- table: 'roleResource',
441
- roleId: roleId,
442
- data: roleResourcesData,
443
- }),
444
- );
445
- operations.push(
446
- this.prisma.roleResource.createMany({
447
- data: roleResourcesData,
448
- skipDuplicates: true,
449
- }),
450
- );
451
- }
452
-
453
- // 5. 更新已存在但 actions 有变化的资源
454
- if (resourcesToUpdate.length > 0) {
455
- for (const template of resourcesToUpdate) {
456
- const oldResource = oldResourceMap.get(template.resourceId);
457
- this.logger.info(
458
- '[RoleResource] Updating role resource',
459
- createSafeLogData({
460
- operation: 'UPDATE_MANY',
461
- table: 'roleResource',
462
- roleId: roleId,
463
- resourceId: template.resourceId,
464
- oldActions: oldResource?.actions,
465
- newActions: template.actions,
466
- }),
467
- );
468
- operations.push(
469
- this.prisma.roleResource.updateMany({
470
- where: {
471
- roleId,
472
- resourceId: template.resourceId,
473
- },
474
- data: {
475
- actions: template.actions,
476
- },
477
- }),
478
- );
479
- }
480
- }
481
-
482
- return operations;
483
- }
484
-
485
- /**
486
- * 刷新指定角色的所有资源权限
487
- * 当页面的资源配置发生变化时,需要调用此方法重新计算角色的 RoleResource
488
- */
489
- async refreshRolePermissions(roleId: number) {
490
- // 1. 获取角色当前关联的所有页面
491
- const rolePages = await this.prisma.rolePages.findMany({
492
- where: { roleId },
493
- select: { pageId: true },
494
- });
495
- const pageIds = rolePages.map((rp) => rp.pageId);
496
-
497
- // 2. 根据页面重新计算资源权限模板
498
- const roleResourcesTemplate =
499
- pageIds.length > 0
500
- ? await this.prepareRoleResourcesFromPages(pageIds)
501
- : [];
502
-
503
- // 3. 生成同步操作
504
- const operations = await this.syncRolePagesAndResources(
505
- roleId,
506
- pageIds,
507
- roleResourcesTemplate,
508
- );
509
-
510
- // 4. 执行事务
511
- if (operations.length > 0) {
512
- this.logger.info(
513
- `[RoleService] Refreshing permissions for role ${roleId}`,
514
- );
515
- await this.prisma.$transaction(operations);
516
- }
517
- }
518
-
519
- /**
520
- * 刷新所有关联了指定页面的角色的权限
521
- * 当页面资源发生变更(新增/修改/删除)时调用
522
- */
523
- async refreshRolesWithPage(pageId: number) {
524
- const rolePages = await this.prisma.rolePages.findMany({
525
- where: { pageId },
526
- select: { roleId: true },
527
- });
528
-
529
- this.logger.info(
530
- `[RoleService] Found ${rolePages.length} roles associated with page ${pageId}, starting refresh...`,
531
- );
532
-
533
- for (const rp of rolePages) {
534
- await this.refreshRolePermissions(rp.roleId);
535
- }
536
- }
537
-
538
- /**
539
- * 在事务中创建角色及其页面权限,确保原子性
540
- * @param roleData 角色创建数据
541
- * @param pageIds 页面 ID 数组(可选)
542
- */
543
- async createRoleWithPages(
544
- roleData: Prisma.RoleCreateInput,
545
- pageIds?: number[],
546
- ) {
547
- // 先准备 roleResources 数据模板
548
- const roleResourcesTemplate =
549
- pageIds && pageIds.length > 0
550
- ? await this.prepareRoleResourcesFromPages(pageIds)
551
- : [];
552
-
553
- // 使用 Prisma 的嵌套创建语法,一次性完成所有操作
554
- // 这样可以使用事务数组形式而非回调形式
555
- const createData: Prisma.RoleCreateInput = {
556
- ...roleData,
557
- };
558
-
559
- // 如果有 pageIds,添加嵌套创建
560
- if (pageIds && pageIds.length > 0) {
561
- createData.rolePages = {
562
- create: pageIds.map((pageId) => ({ pageId })),
563
- };
564
-
565
- if (roleResourcesTemplate.length > 0) {
566
- createData.roleResources = {
567
- create: roleResourcesTemplate.map((template) => ({
568
- resourceId: template.resourceId,
569
- actions: template.actions,
570
- })),
571
- };
572
- }
573
- }
574
-
575
- // 使用事务数组形式(而非回调形式)
576
- this.logger.info(
577
- '[Role] Creating role with pages in transaction',
578
- createSafeLogData({
579
- operation: 'CREATE_WITH_PAGES',
580
- table: 'role',
581
- roleData: roleData,
582
- pageIds: pageIds,
583
- roleResourcesTemplate: roleResourcesTemplate,
584
- }),
585
- );
586
- const operations = [
587
- this.prisma.role.create({
588
- data: createData,
589
- }),
590
- ];
591
-
592
- const results = await this.prisma.$transaction(operations);
593
- this.logger.info(
594
- '[Role] Role with pages created successfully',
595
- createSafeLogData({
596
- operation: 'CREATE_WITH_PAGES',
597
- table: 'role',
598
- result: results[0],
599
- }),
600
- );
601
- return results[0];
602
- }
603
-
604
- /**
605
- * 解析 actions 字段(支持多种格式)
606
- * JSON 数组格式如: ["readAny", "deleteAny"]
607
- */
608
- private parseActions(actions: any): string[] {
609
- if (!actions) return [];
610
-
611
- // 如果已经是数组,直接返回
612
- if (Array.isArray(actions)) {
613
- return actions.map(String).filter(Boolean);
614
- }
615
-
616
- // 如果是字符串,尝试解析为 JSON
617
- if (typeof actions === 'string') {
618
- try {
619
- const parsed = JSON.parse(actions);
620
- if (Array.isArray(parsed)) {
621
- return parsed.map(String).filter(Boolean);
622
- }
623
- // 如果不是数组,按逗号分隔
624
- return actions
625
- .split(',')
626
- .map((s) => s.trim())
627
- .filter(Boolean);
628
- } catch {
629
- // JSON 解析失败,按逗号分隔
630
- return actions
631
- .split(',')
632
- .map((s) => s.trim())
633
- .filter(Boolean);
634
- }
635
- }
636
-
637
- return [];
638
- }
639
-
640
- async createMany(data: Prisma.RoleCreateManyArgs['data']) {
641
- this.logger.info(
642
- '[Role] Creating multiple roles',
643
- createSafeLogData({
644
- operation: 'CREATE_MANY',
645
- table: 'role',
646
- count: Array.isArray(data) ? data.length : 1,
647
- data: data,
648
- }),
649
- );
650
- const result = await this.prisma.role.createMany({
651
- data,
652
- skipDuplicates: true,
653
- });
654
- this.logger.info(
655
- '[Role] Multiple roles created successfully',
656
- createSafeLogData({
657
- operation: 'CREATE_MANY',
658
- table: 'role',
659
- count: result.count,
660
- }),
661
- );
662
- return result;
663
- }
664
-
665
- async findMany(
666
- roleFindManyArgs: Prisma.RoleFindManyArgs,
667
- ): Promise<{ itemCount: number; entities: Role[] }> {
668
- const itemCount = await this.prisma.role.count({
669
- where: roleFindManyArgs.where,
670
- });
671
- const entities = await this.prisma.role.findMany(roleFindManyArgs);
672
- return { itemCount, entities };
673
- }
674
-
675
- async findUnique(id: number, select: Prisma.RoleFindUniqueArgs['select']) {
676
- return await this.prisma.role.findUnique({
677
- where: { id: id },
678
- select,
679
- });
680
- }
681
-
682
- async updateMany(roleUpdateManyArgs: Prisma.RoleUpdateManyArgs) {
683
- this.logger.info(
684
- '[Role] Updating multiple roles',
685
- createSafeLogData({
686
- operation: 'UPDATE_MANY',
687
- table: 'role',
688
- where: roleUpdateManyArgs.where,
689
- data: roleUpdateManyArgs.data,
690
- }),
691
- );
692
- const result = await this.prisma.role.updateMany(roleUpdateManyArgs);
693
- this.logger.info(
694
- '[Role] Multiple roles updated successfully',
695
- createSafeLogData({
696
- operation: 'UPDATE_MANY',
697
- table: 'role',
698
- count: result.count,
699
- }),
700
- );
701
- return result;
702
- }
703
-
704
- async updateUnique(id: number, data: Prisma.RoleUpdateManyArgs['data']) {
705
- const oldData = await this.prisma.role.findUnique({ where: { id } });
706
- this.logger.info(
707
- '[Role] Updating role',
708
- createSafeLogData({
709
- operation: 'UPDATE',
710
- table: 'role',
711
- id: id,
712
- oldData: oldData,
713
- newData: data,
714
- }),
715
- );
716
- const result = await this.prisma.role.update({
717
- where: { id: id },
718
- data,
719
- });
720
- this.logger.info(
721
- '[Role] Role updated successfully',
722
- createSafeLogData({
723
- operation: 'UPDATE',
724
- table: 'role',
725
- id: id,
726
- result: result,
727
- }),
728
- );
729
- return result;
730
- }
731
-
732
- /**
733
- * 在事务中更新角色及其页面权限,确保原子性
734
- * @param id 角色 ID
735
- * @param roleData 角色更新数据
736
- * @param pageIds 页面 ID 数组(可选)
737
- */
738
- async updateRoleWithPages(
739
- id: number,
740
- roleData: Prisma.RoleUpdateManyArgs['data'],
741
- pageIds?: number[],
742
- ) {
743
- // 先准备 roleResources 数据模板
744
- const roleResourcesTemplate =
745
- pageIds && pageIds.length > 0
746
- ? await this.prepareRoleResourcesFromPages(pageIds)
747
- : [];
748
-
749
- // 构建事务操作数组
750
- const oldRole = await this.prisma.role.findUnique({ where: { id } });
751
- this.logger.info(
752
- '[Role] Updating role with pages in transaction',
753
- createSafeLogData({
754
- operation: 'UPDATE_WITH_PAGES',
755
- table: 'role',
756
- id: id,
757
- oldData: oldRole,
758
- newRoleData: roleData,
759
- pageIds: pageIds,
760
- roleResourcesTemplate: roleResourcesTemplate,
761
- }),
762
- );
763
- const operations: any[] = [
764
- // 1. 更新角色基本信息
765
- this.prisma.role.update({
766
- where: { id },
767
- data: roleData,
768
- }),
769
- ];
770
-
771
- // 2. 处理页面权限和资源权限更新
772
- if (pageIds !== undefined && pageIds !== null) {
773
- const syncOperations = await this.syncRolePagesAndResources(
774
- id,
775
- pageIds,
776
- roleResourcesTemplate,
777
- );
778
- operations.push(...syncOperations);
779
- }
780
-
781
- // 执行事务,返回第一个操作的结果(更新后的角色)
782
- const results = await this.prisma.$transaction(operations);
783
- this.logger.info(
784
- '[Role] Role with pages updated successfully',
785
- createSafeLogData({
786
- operation: 'UPDATE_WITH_PAGES',
787
- table: 'role',
788
- id: id,
789
- result: results[0],
790
- }),
791
- );
792
- return results[0];
793
-
794
- // 暂时注释掉事务执行,仅返回更新后的角色信息
795
- // console.log('⚠️ 数据库事务已被注释,不会实际执行更新操作');
796
- // return await this.prisma.role.findUnique({
797
- // where: { id },
798
- // });
799
- }
800
-
801
- async deleteMany(roleDeleteManyArgs: Prisma.RoleDeleteManyArgs) {
802
- const oldData = await this.prisma.role.findMany({
803
- where: roleDeleteManyArgs.where,
804
- });
805
- this.logger.info(
806
- '[Role] Deleting multiple roles',
807
- createSafeLogData({
808
- operation: 'DELETE_MANY',
809
- table: 'role',
810
- where: roleDeleteManyArgs.where,
811
- oldData: oldData,
812
- }),
813
- );
814
- const result = await this.prisma.role.deleteMany(roleDeleteManyArgs);
815
- this.logger.info(
816
- '[Role] Multiple roles deleted successfully',
817
- createSafeLogData({
818
- operation: 'DELETE_MANY',
819
- table: 'role',
820
- count: result.count,
821
- }),
822
- );
823
- return result;
824
- }
825
-
826
- async deleteUnique(id: number) {
827
- const oldData = await this.prisma.role.findUnique({ where: { id } });
828
- this.logger.info(
829
- '[Role] Deleting role',
830
- createSafeLogData({
831
- operation: 'DELETE',
832
- table: 'role',
833
- id: id,
834
- oldData: oldData,
835
- }),
836
- );
837
- await this.prisma.role.delete({
838
- where: { id: id },
839
- });
840
- this.logger.info(
841
- '[Role] Role deleted successfully',
842
- createSafeLogData({
843
- operation: 'DELETE',
844
- table: 'role',
845
- id: id,
846
- }),
847
- );
848
- return { count: 1 };
849
- }
850
-
851
- async count(roleCountArgs?: Prisma.RoleCountArgs) {
852
- return await this.prisma.role.count(roleCountArgs);
853
- }
854
-
855
- async groupBy(roleGroupByArgs: Prisma.RoleGroupByArgs) {
856
- return await this.prisma.role.groupBy(roleGroupByArgs as any);
857
- }
858
-
859
- async aggregate(roleAggregateArgs: Prisma.RoleAggregateArgs) {
860
- return await this.prisma.role.aggregate(roleAggregateArgs);
861
- }
862
- }