@gadmin2n/schematics 0.0.55

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 (320) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +9 -0
  3. package/dist/collection.json +122 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +18 -0
  6. package/dist/lib/application/application.factory.d.ts +3 -0
  7. package/dist/lib/application/application.factory.js +92 -0
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/.dockerignore +33 -0
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/Dockerfile +14 -0
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/Jenkinsfile +44 -0
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/build.sh +18 -0
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/config/.types.d.ts +143 -0
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/sample.prisma +65 -0
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Game.ts +58 -0
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Log.ts +56 -0
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Role.ts +58 -0
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Source.ts +76 -0
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/Tasklog.ts +76 -0
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/_common.ts +16 -0
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/readme.md +49 -0
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/server/.env +20 -0
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/server/.eslintrc.js +25 -0
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/server/.prettierrc +4 -0
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/server/README.md +71 -0
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/server/config/ac.config.ts +24 -0
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/server/config/index.ts +60 -0
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/server/gadmin-cli.json +17 -0
  28. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +106 -0
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/server/prisma/.generator.prisma +32 -0
  30. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/games.ts +71 -0
  31. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/index.ts +27 -0
  32. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/roles.ts +4 -0
  33. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.spec.ts +22 -0
  34. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.controller.ts +52 -0
  35. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.module.ts +75 -0
  36. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/app.service.ts +50 -0
  37. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/auth.guard.ts +108 -0
  38. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/roles.guard.ts +47 -0
  39. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/utils.ts +54 -0
  40. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/woaAuth.ts +82 -0
  41. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/lib/yufuid.ts +160 -0
  42. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/main.ts +119 -0
  43. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/index.ts +3 -0
  44. package/dist/lib/application/files/gadmin2-game-angle-demo/server/test/app.e2e-spec.ts +24 -0
  45. package/dist/lib/application/files/gadmin2-game-angle-demo/server/test/jest-e2e.json +9 -0
  46. package/dist/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.build.json +4 -0
  47. package/dist/lib/application/files/gadmin2-game-angle-demo/server/tsconfig.json +21 -0
  48. package/dist/lib/application/files/gadmin2-game-angle-demo/web/README.MD +48 -0
  49. package/dist/lib/application/files/gadmin2-game-angle-demo/web/craco.config.js +27 -0
  50. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +81 -0
  51. package/dist/lib/application/files/gadmin2-game-angle-demo/web/public/favicon.ico +0 -0
  52. package/dist/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/en.svg +1 -0
  53. package/dist/lib/application/files/gadmin2-game-angle-demo/web/public/images/flags/zh_CN.svg +11 -0
  54. package/dist/lib/application/files/gadmin2-game-angle-demo/web/public/index.html +53 -0
  55. package/dist/lib/application/files/gadmin2-game-angle-demo/web/public/locales/en/common.json +128 -0
  56. package/dist/lib/application/files/gadmin2-game-angle-demo/web/public/locales/zh_CN/common.json +130 -0
  57. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/App.tsx +185 -0
  58. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/auditLogProvider.ts +87 -0
  59. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/authProvider.ts +124 -0
  60. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/BulkActions.tsx +236 -0
  61. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/ListPageHeader.tsx +56 -0
  62. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +292 -0
  63. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/SearchBar.tsx +294 -0
  64. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.css +10 -0
  65. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/VanillaJSONEditor/index.js +53 -0
  66. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentContext.tsx +201 -0
  67. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/AgentPanel.tsx +497 -0
  68. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/ElementInspector.tsx +282 -0
  69. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/agentAttributes.ts +61 -0
  70. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/index.ts +18 -0
  71. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/inspectorActions.ts +111 -0
  72. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/promptGenerator.ts +75 -0
  73. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/agentPanel/skills.ts +464 -0
  74. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/eventList/index.tsx +62 -0
  75. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/index.ts +4 -0
  76. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logButton/index.tsx +96 -0
  77. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/logList/index.tsx +73 -0
  78. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/components/modalDiffViewer/index.tsx +104 -0
  79. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/auditLog/index.tsx +2 -0
  80. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/business/index.tsx +65 -0
  81. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/contexts/color-mode/index.tsx +60 -0
  82. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +4 -0
  83. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header/index.tsx +130 -0
  84. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/index.ts +2 -0
  85. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/sider.tsx +218 -0
  86. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/styles.ts +10 -0
  87. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/offLayoutArea/index.tsx +5 -0
  88. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/form.tsx +419 -0
  89. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/index.tsx +3 -0
  90. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +465 -0
  91. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/login.ts +124 -0
  92. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/show.tsx +182 -0
  93. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/utils.ts +76 -0
  94. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/index.ts +7 -0
  95. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +138 -0
  96. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchDelete.ts +191 -0
  97. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperations.ts +152 -0
  98. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchOperationsCore.ts +193 -0
  99. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useBatchUpdate.ts +182 -0
  100. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useListPageState.ts +303 -0
  101. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useRowSelection.ts +38 -0
  102. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/i18n.ts +19 -0
  103. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/index.tsx +28 -0
  104. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/meta.json +4 -0
  105. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/react-app-env.d.ts +1 -0
  106. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/reportWebVitals.ts +15 -0
  107. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/setupTests.ts +5 -0
  108. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/antd.less +79 -0
  109. package/dist/lib/application/files/gadmin2-game-angle-demo/web/tsconfig.json +27 -0
  110. package/dist/lib/application/schema.json +99 -0
  111. package/dist/lib/class/class.factory.d.ts +3 -0
  112. package/dist/lib/class/class.factory.js +42 -0
  113. package/dist/lib/class/files/js/__name__.js +1 -0
  114. package/dist/lib/class/files/js/__name__.spec.js +7 -0
  115. package/dist/lib/class/files/ts/__name__.spec.ts +7 -0
  116. package/dist/lib/class/files/ts/__name__.ts +1 -0
  117. package/dist/lib/class/schema.json +45 -0
  118. package/dist/lib/client-app/angular/angular.factory.d.ts +3 -0
  119. package/dist/lib/client-app/angular/angular.factory.js +98 -0
  120. package/dist/lib/client-app/angular/files/angular.constants.ts +4 -0
  121. package/dist/lib/client-app/angular/files/angular.module.ts +41 -0
  122. package/dist/lib/client-app/angular/files/angular.providers.ts +27 -0
  123. package/dist/lib/client-app/angular/files/angular.utils.ts +19 -0
  124. package/dist/lib/client-app/angular/files/interfaces/angular-options.interface.ts +87 -0
  125. package/dist/lib/client-app/angular/files/loaders/abstract.loader.ts +16 -0
  126. package/dist/lib/client-app/angular/files/loaders/express.loader.ts +25 -0
  127. package/dist/lib/client-app/angular/files/loaders/fastify.loader.ts +34 -0
  128. package/dist/lib/client-app/angular/files/loaders/noop.loader.ts +12 -0
  129. package/dist/lib/client-app/angular/schema.json +24 -0
  130. package/dist/lib/configuration/configuration.factory.d.ts +3 -0
  131. package/dist/lib/configuration/configuration.factory.js +24 -0
  132. package/dist/lib/configuration/files/js/nest-cli.json +6 -0
  133. package/dist/lib/configuration/files/ts/nest-cli.json +5 -0
  134. package/dist/lib/controller/controller.factory.d.ts +3 -0
  135. package/dist/lib/controller/controller.factory.js +118 -0
  136. package/dist/lib/controller/files/js/__name__.controller.js +4 -0
  137. package/dist/lib/controller/files/js/__name__.controller.spec.js +18 -0
  138. package/dist/lib/controller/files/ts/__name__.controller.spec.ts +18 -0
  139. package/dist/lib/controller/files/ts/__name__.controller.ts +137 -0
  140. package/dist/lib/controller/schema.json +51 -0
  141. package/dist/lib/decorator/decorator.factory.d.ts +3 -0
  142. package/dist/lib/decorator/decorator.factory.js +33 -0
  143. package/dist/lib/decorator/files/js/__name__.decorator.js +3 -0
  144. package/dist/lib/decorator/files/ts/__name__.decorator.ts +3 -0
  145. package/dist/lib/decorator/schema.json +36 -0
  146. package/dist/lib/defaults.d.ts +16 -0
  147. package/dist/lib/defaults.js +19 -0
  148. package/dist/lib/filter/files/js/__name__.filter.js +6 -0
  149. package/dist/lib/filter/files/js/__name__.filter.spec.js +7 -0
  150. package/dist/lib/filter/files/ts/__name__.filter.spec.ts +7 -0
  151. package/dist/lib/filter/files/ts/__name__.filter.ts +6 -0
  152. package/dist/lib/filter/filter.factory.d.ts +3 -0
  153. package/dist/lib/filter/filter.factory.js +34 -0
  154. package/dist/lib/filter/schema.json +41 -0
  155. package/dist/lib/gateway/files/js/__name__.gateway.js +9 -0
  156. package/dist/lib/gateway/files/js/__name__.gateway.spec.js +18 -0
  157. package/dist/lib/gateway/files/ts/__name__.gateway.spec.ts +18 -0
  158. package/dist/lib/gateway/files/ts/__name__.gateway.ts +9 -0
  159. package/dist/lib/gateway/gateway.factory.d.ts +3 -0
  160. package/dist/lib/gateway/gateway.factory.js +62 -0
  161. package/dist/lib/gateway/schema.json +41 -0
  162. package/dist/lib/guard/files/js/__name__.guard.js +8 -0
  163. package/dist/lib/guard/files/js/__name__.guard.spec.js +7 -0
  164. package/dist/lib/guard/files/ts/__name__.guard.spec.ts +7 -0
  165. package/dist/lib/guard/files/ts/__name__.guard.ts +11 -0
  166. package/dist/lib/guard/guard.factory.d.ts +3 -0
  167. package/dist/lib/guard/guard.factory.js +34 -0
  168. package/dist/lib/guard/schema.json +41 -0
  169. package/dist/lib/interceptor/files/js/__name__.interceptor.js +8 -0
  170. package/dist/lib/interceptor/files/js/__name__.interceptor.spec.js +7 -0
  171. package/dist/lib/interceptor/files/ts/default/__name__.interceptor.spec.ts +7 -0
  172. package/dist/lib/interceptor/files/ts/default/__name__.interceptor.ts +9 -0
  173. package/dist/lib/interceptor/files/ts/generated/__name__.interceptor.spec.ts +7 -0
  174. package/dist/lib/interceptor/files/ts/generated/__name__.interceptor.ts +13 -0
  175. package/dist/lib/interceptor/interceptor.factory.d.ts +3 -0
  176. package/dist/lib/interceptor/interceptor.factory.js +116 -0
  177. package/dist/lib/interceptor/schema.json +50 -0
  178. package/dist/lib/interface/files/__name__.interface.ts +1 -0
  179. package/dist/lib/interface/interface.factory.d.ts +3 -0
  180. package/dist/lib/interface/interface.factory.js +32 -0
  181. package/dist/lib/interface/schema.json +32 -0
  182. package/dist/lib/library/files/js/.babelrc +4 -0
  183. package/dist/lib/library/files/js/jsconfig.json +9 -0
  184. package/dist/lib/library/files/js/src/__name__.module.js +8 -0
  185. package/dist/lib/library/files/js/src/__name__.service.js +4 -0
  186. package/dist/lib/library/files/js/src/__name__.service.spec.js +18 -0
  187. package/dist/lib/library/files/js/src/index.js +2 -0
  188. package/dist/lib/library/files/ts/src/__name__.module.ts +8 -0
  189. package/dist/lib/library/files/ts/src/__name__.service.spec.ts +18 -0
  190. package/dist/lib/library/files/ts/src/__name__.service.ts +4 -0
  191. package/dist/lib/library/files/ts/src/index.ts +2 -0
  192. package/dist/lib/library/files/ts/tsconfig.lib.json +9 -0
  193. package/dist/lib/library/library.factory.d.ts +3 -0
  194. package/dist/lib/library/library.factory.js +190 -0
  195. package/dist/lib/library/schema.json +37 -0
  196. package/dist/lib/middleware/files/js/__name__.middleware.js +8 -0
  197. package/dist/lib/middleware/files/js/__name__.middleware.spec.js +7 -0
  198. package/dist/lib/middleware/files/ts/__name__.middleware.spec.ts +7 -0
  199. package/dist/lib/middleware/files/ts/__name__.middleware.ts +8 -0
  200. package/dist/lib/middleware/middleware.factory.d.ts +3 -0
  201. package/dist/lib/middleware/middleware.factory.js +34 -0
  202. package/dist/lib/middleware/schema.json +41 -0
  203. package/dist/lib/module/files/js/__name__.module.js +4 -0
  204. package/dist/lib/module/files/ts/__name__.module.ts +4 -0
  205. package/dist/lib/module/module.factory.d.ts +3 -0
  206. package/dist/lib/module/module.factory.js +58 -0
  207. package/dist/lib/module/schema.json +46 -0
  208. package/dist/lib/pipe/files/js/__name__.pipe.js +8 -0
  209. package/dist/lib/pipe/files/js/__name__.pipe.spec.js +7 -0
  210. package/dist/lib/pipe/files/ts/__name__.pipe.spec.ts +7 -0
  211. package/dist/lib/pipe/files/ts/__name__.pipe.ts +8 -0
  212. package/dist/lib/pipe/pipe.factory.d.ts +3 -0
  213. package/dist/lib/pipe/pipe.factory.js +34 -0
  214. package/dist/lib/pipe/schema.json +41 -0
  215. package/dist/lib/prisma-resource/files/ts/__name__.controller.spec.ts +20 -0
  216. package/dist/lib/prisma-resource/files/ts/__name__.controller.ts +63 -0
  217. package/dist/lib/prisma-resource/files/ts/__name__.module.ts +9 -0
  218. package/dist/lib/prisma-resource/files/ts/__name__.service.spec.ts +18 -0
  219. package/dist/lib/prisma-resource/files/ts/__name__.service.ts +28 -0
  220. package/dist/lib/prisma-resource/files/ts/dto/create-__name@singular__.dto.ts +1 -0
  221. package/dist/lib/prisma-resource/files/ts/dto/create-__name@singular__.input.ts +7 -0
  222. package/dist/lib/prisma-resource/files/ts/dto/update-__name@singular__.dto.ts +6 -0
  223. package/dist/lib/prisma-resource/files/ts/dto/update-__name@singular__.input.ts +13 -0
  224. package/dist/lib/prisma-resource/files/ts/entities/__name@singular@ent__.ts +7 -0
  225. package/dist/lib/prisma-resource/prisma-resource.factory.d.ts +3 -0
  226. package/dist/lib/prisma-resource/prisma-resource.factory.js +131 -0
  227. package/dist/lib/prisma-resource/schema.json +91 -0
  228. package/dist/lib/provider/files/js/__name__.js +4 -0
  229. package/dist/lib/provider/files/js/__name__.spec.js +18 -0
  230. package/dist/lib/provider/files/ts/__name__.spec.ts +18 -0
  231. package/dist/lib/provider/files/ts/__name__.ts +4 -0
  232. package/dist/lib/provider/provider.factory.d.ts +3 -0
  233. package/dist/lib/provider/provider.factory.js +67 -0
  234. package/dist/lib/provider/schema.json +45 -0
  235. package/dist/lib/resolver/files/js/__name__.resolver.js +4 -0
  236. package/dist/lib/resolver/files/js/__name__.resolver.spec.js +18 -0
  237. package/dist/lib/resolver/files/ts/__name__.resolver.spec.ts +18 -0
  238. package/dist/lib/resolver/files/ts/__name__.resolver.ts +4 -0
  239. package/dist/lib/resolver/resolver.factory.d.ts +3 -0
  240. package/dist/lib/resolver/resolver.factory.js +62 -0
  241. package/dist/lib/resolver/schema.json +41 -0
  242. package/dist/lib/resource/files/ts/__name__.controller.spec.ts +20 -0
  243. package/dist/lib/resource/files/ts/__name__.controller.ts +63 -0
  244. package/dist/lib/resource/files/ts/__name__.gateway.spec.ts +19 -0
  245. package/dist/lib/resource/files/ts/__name__.gateway.ts +34 -0
  246. package/dist/lib/resource/files/ts/__name__.graphql +24 -0
  247. package/dist/lib/resource/files/ts/__name__.module.ts +9 -0
  248. package/dist/lib/resource/files/ts/__name__.resolver.spec.ts +19 -0
  249. package/dist/lib/resource/files/ts/__name__.resolver.ts +60 -0
  250. package/dist/lib/resource/files/ts/__name__.service.spec.ts +18 -0
  251. package/dist/lib/resource/files/ts/__name__.service.ts +28 -0
  252. package/dist/lib/resource/files/ts/dto/create-__name@singular__.dto.ts +1 -0
  253. package/dist/lib/resource/files/ts/dto/create-__name@singular__.input.ts +7 -0
  254. package/dist/lib/resource/files/ts/dto/update-__name@singular__.dto.ts +6 -0
  255. package/dist/lib/resource/files/ts/dto/update-__name@singular__.input.ts +13 -0
  256. package/dist/lib/resource/files/ts/entities/__name@singular@ent__.ts +7 -0
  257. package/dist/lib/resource/resource.factory.d.ts +3 -0
  258. package/dist/lib/resource/resource.factory.js +131 -0
  259. package/dist/lib/resource/schema.json +90 -0
  260. package/dist/lib/service/files/js/__name__.service.js +4 -0
  261. package/dist/lib/service/files/js/__name__.service.spec.js +18 -0
  262. package/dist/lib/service/files/ts/__name__.service.spec.ts +18 -0
  263. package/dist/lib/service/files/ts/__name__.service.ts +4 -0
  264. package/dist/lib/service/schema.json +41 -0
  265. package/dist/lib/service/service.factory.d.ts +3 -0
  266. package/dist/lib/service/service.factory.js +63 -0
  267. package/dist/lib/sub-app/files/js/.babelrc +4 -0
  268. package/dist/lib/sub-app/files/js/index.js +2 -0
  269. package/dist/lib/sub-app/files/js/jsconfig.json +10 -0
  270. package/dist/lib/sub-app/files/js/src/app.controller.js +15 -0
  271. package/dist/lib/sub-app/files/js/src/app.controller.spec.js +22 -0
  272. package/dist/lib/sub-app/files/js/src/app.module.js +10 -0
  273. package/dist/lib/sub-app/files/js/src/app.service.js +8 -0
  274. package/dist/lib/sub-app/files/js/src/main.js +8 -0
  275. package/dist/lib/sub-app/files/js/test/app.e2e-spec.js +23 -0
  276. package/dist/lib/sub-app/files/js/test/jest-e2e.json +5 -0
  277. package/dist/lib/sub-app/files/ts/src/__name__.controller.spec.ts +22 -0
  278. package/dist/lib/sub-app/files/ts/src/__name__.controller.ts +12 -0
  279. package/dist/lib/sub-app/files/ts/src/__name__.module.ts +10 -0
  280. package/dist/lib/sub-app/files/ts/src/__name__.service.ts +8 -0
  281. package/dist/lib/sub-app/files/ts/src/main.ts +8 -0
  282. package/dist/lib/sub-app/files/ts/test/app.e2e-spec.ts +24 -0
  283. package/dist/lib/sub-app/files/ts/test/jest-e2e.json +9 -0
  284. package/dist/lib/sub-app/files/ts/tsconfig.app.json +9 -0
  285. package/dist/lib/sub-app/schema.json +32 -0
  286. package/dist/lib/sub-app/sub-app.factory.d.ts +3 -0
  287. package/dist/lib/sub-app/sub-app.factory.js +245 -0
  288. package/dist/lib/sub-app/workspace/js/.babelrc +4 -0
  289. package/dist/lib/sub-app/workspace/js/index.js +2 -0
  290. package/dist/lib/sub-app/workspace/js/jsconfig.json +10 -0
  291. package/dist/lib/sub-app/workspace/ts/tsconfig.app.json +9 -0
  292. package/dist/utils/change.d.ts +46 -0
  293. package/dist/utils/change.js +95 -0
  294. package/dist/utils/dependencies.utils.d.ts +15 -0
  295. package/dist/utils/dependencies.utils.js +42 -0
  296. package/dist/utils/export-from.declarator.d.ts +10 -0
  297. package/dist/utils/export-from.declarator.js +39 -0
  298. package/dist/utils/formatting.d.ts +1 -0
  299. package/dist/utils/formatting.js +12 -0
  300. package/dist/utils/index.d.ts +9 -0
  301. package/dist/utils/index.js +25 -0
  302. package/dist/utils/json-file.util.d.ts +15 -0
  303. package/dist/utils/json-file.util.js +68 -0
  304. package/dist/utils/metadata.manager.d.ts +13 -0
  305. package/dist/utils/metadata.manager.js +162 -0
  306. package/dist/utils/module-import.declarator.d.ts +10 -0
  307. package/dist/utils/module-import.declarator.js +39 -0
  308. package/dist/utils/module-metadata.declarator.d.ts +4 -0
  309. package/dist/utils/module-metadata.declarator.js +12 -0
  310. package/dist/utils/module.declarator.d.ts +23 -0
  311. package/dist/utils/module.declarator.js +32 -0
  312. package/dist/utils/module.finder.d.ts +13 -0
  313. package/dist/utils/module.finder.js +24 -0
  314. package/dist/utils/name.parser.d.ts +12 -0
  315. package/dist/utils/name.parser.js +17 -0
  316. package/dist/utils/path.solver.d.ts +4 -0
  317. package/dist/utils/path.solver.js +14 -0
  318. package/dist/utils/source-root.helpers.d.ts +8 -0
  319. package/dist/utils/source-root.helpers.js +35 -0
  320. package/package.json +99 -0
@@ -0,0 +1,160 @@
1
+ import * as jwt from 'jsonwebtoken';
2
+ import * as request from 'request';
3
+ import { URLSearchParams } from 'url';
4
+
5
+ export type YuFuTokenInfo = {
6
+ access_token: string;
7
+ id_token: string;
8
+ expires_in: number;
9
+ token_type: 'Bearer';
10
+ scope: string;
11
+ };
12
+
13
+ export type YuFuUserInfo = {
14
+ user_id: string;
15
+ sub: string;
16
+ name: string;
17
+ preferred_username: string;
18
+ email: string;
19
+ email_verified: boolean;
20
+ phone_number_verified: boolean;
21
+ };
22
+
23
+ export type GAdminUserInfo = Pick<
24
+ YuFuUserInfo,
25
+ 'user_id' | 'sub' | 'name' | 'email'
26
+ >;
27
+ export const GAdminTokenName = 'gadmin-token';
28
+
29
+ // see https://docs.qq.com/doc/DSEN0SlhZWWFJSHR4
30
+ export default class YuFuId {
31
+ static config = {
32
+ clientId: process.env.YUFU_CLIENT_ID,
33
+ clientSecret: process.env.YUFU_CLIENT_SECRET || 'gadmin-default-secret',
34
+ apiBase: process.env.YUFU_BASE,
35
+ callback: process.env.YUFU_CALLBACK,
36
+ logout: process.env.YUFU_LOGOUT,
37
+ };
38
+
39
+ static callApi<T>(
40
+ url: string,
41
+ params?: Record<string, any>,
42
+ options?: Record<string, any>,
43
+ ): Promise<T> {
44
+ return new Promise((resolve, reject) => {
45
+ request(
46
+ {
47
+ url: `${YuFuId.config.apiBase}${url}`,
48
+ method: 'POST',
49
+ json: true,
50
+ body: params,
51
+ ...options,
52
+ },
53
+ (error: Error, _response: unknown, body: Record<string, any>) => {
54
+ if (error) {
55
+ reject(error);
56
+ return;
57
+ }
58
+ if (body.error) {
59
+ reject(new Error(body.error_description));
60
+ return;
61
+ }
62
+ resolve(body as T);
63
+ },
64
+ );
65
+ });
66
+ }
67
+
68
+ static getToken(code: string) {
69
+ return YuFuId.callApi<YuFuTokenInfo>('/token', {
70
+ client_id: YuFuId.config.clientId,
71
+ client_secret: YuFuId.config.clientSecret,
72
+ grant_type: 'authorization_code',
73
+ redirect_uri: YuFuId.config.callback,
74
+ code,
75
+ });
76
+ }
77
+
78
+ static refreshToken(refreshToken: string) {
79
+ return YuFuId.callApi<YuFuTokenInfo>('/token', {
80
+ client_id: YuFuId.config.clientId,
81
+ client_secret: YuFuId.config.clientSecret,
82
+ grant_type: 'refresh_token',
83
+ refresh_token: refreshToken,
84
+ });
85
+ }
86
+
87
+ // get userinfo by api
88
+ static getUserInfo(accessToken: string) {
89
+ return YuFuId.callApi<YuFuUserInfo>('/userinfo', undefined, {
90
+ method: 'GET',
91
+ headers: {
92
+ Authorization: `Bearer ${accessToken}`,
93
+ },
94
+ });
95
+ }
96
+
97
+ static authorize(redirectUrl: string, uiLocales = 'zh-CN') {
98
+ const map = new Map();
99
+ map.set('response_type', 'code');
100
+ map.set('client_id', YuFuId.config.clientId);
101
+ map.set('ui_locales', uiLocales);
102
+ map.set('scope', 'openid profile email');
103
+ map.set('redirect_uri', YuFuId.config.callback);
104
+ map.set('state', redirectUrl);
105
+ const params = new URLSearchParams(map);
106
+ return `${YuFuId.config.apiBase}/authorize?${params.toString()}`;
107
+ }
108
+
109
+ static logout(redirectUrl: string) {
110
+ const map = new Map();
111
+ map.set('return_to', redirectUrl);
112
+ const params = new URLSearchParams(map);
113
+ return `${YuFuId.config.logout}?${params.toString()}`;
114
+ }
115
+
116
+ /**
117
+ * 生成JWT
118
+ * @param payload 用户信息
119
+ * @param expiresIn 过期时间,单位秒
120
+ * @returns token
121
+ */
122
+ static sign(payload: GAdminUserInfo, expiresIn = 1800) {
123
+ return new Promise<string>((resolve, reject) => {
124
+ jwt.sign(
125
+ payload,
126
+ YuFuId.config.clientSecret,
127
+ { expiresIn },
128
+ (err, token) => {
129
+ if (err) {
130
+ reject(err);
131
+ return;
132
+ }
133
+ resolve(token as string);
134
+ },
135
+ );
136
+ });
137
+ }
138
+
139
+ /**
140
+ * 验证并返回sign生成的JWT信息
141
+ * @param token JWT
142
+ * @returns 用户信息
143
+ */
144
+ static verify(token: string) {
145
+ return new Promise<GAdminUserInfo>((resolve, reject) => {
146
+ if (!token) {
147
+ reject(new Error('no token'));
148
+ return;
149
+ }
150
+
151
+ jwt.verify(token, YuFuId.config.clientSecret, {}, (err, decoded) => {
152
+ if (err) {
153
+ reject(err);
154
+ return;
155
+ }
156
+ resolve(decoded as GAdminUserInfo);
157
+ });
158
+ });
159
+ }
160
+ }
@@ -0,0 +1,119 @@
1
+ import { AllExceptionsFilter, UserType } from '@gadmin2/nest-common';
2
+ import { ClassSerializerInterceptor, ValidationPipe } from '@nestjs/common';
3
+ import { ConfigService } from '@nestjs/config';
4
+ import { HttpAdapterHost, NestFactory, Reflector } from '@nestjs/core';
5
+ import {
6
+ DocumentBuilder,
7
+ SwaggerDocumentOptions,
8
+ SwaggerModule,
9
+ } from '@nestjs/swagger';
10
+ import * as cookieParser from 'cookie-parser';
11
+ import 'dotenv/config';
12
+ import { PrismaClientExceptionFilter, PrismaService } from 'nestjs-prisma';
13
+ import { AppModule } from './app.module';
14
+ import AuthGuard from './lib/auth.guard';
15
+ import RolesGuard from './lib/roles.guard';
16
+
17
+ // https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields#working-with-bigint
18
+ const stringify = JSON.stringify;
19
+ JSON.stringify = (value: any, _: any, space: string | number | undefined) => {
20
+ return stringify(
21
+ value,
22
+ (key, value) => (typeof value === 'bigint' ? Number(value) : value), // return everything else unchanged)
23
+ space,
24
+ );
25
+ };
26
+
27
+ async function bootstrap() {
28
+ const app = await NestFactory.create(AppModule, { cors: true });
29
+
30
+ const configService = app.get(ConfigService);
31
+
32
+ // enable shutdown hook
33
+ const prismaService: PrismaService = app.get(PrismaService);
34
+ prismaService.enableShutdownHooks(app);
35
+
36
+ app.use(cookieParser());
37
+ app.useGlobalGuards(
38
+ new AuthGuard(
39
+ process.env.WOA_TOKEN || '7R6XOQVQXUW4OCKFZHBIXZ8FLJJLQX5A',
40
+ new Reflector(),
41
+ ),
42
+
43
+ new RolesGuard((user: UserType) => {
44
+ return prismaService.role
45
+ .findMany({
46
+ where: {
47
+ userid: user.username,
48
+ },
49
+ })
50
+ .then((records) => {
51
+ if (records.length === 0) {
52
+ if (['clzhu', 'kavenma'].includes(user.username)) {
53
+ return { business: [-1], roles: ['SYSTEM_ADMIN'] };
54
+ }
55
+ return { business: [], roles: [] };
56
+ }
57
+ return {
58
+ business: [],
59
+ roles: JSON.parse(records[0].roles),
60
+ };
61
+ })
62
+ .catch(() => {
63
+ if (['clzhu', 'kavenma'].includes(user.username)) {
64
+ return { business: [-1], roles: ['SYSTEM_ADMIN'] };
65
+ }
66
+ return { business: [], roles: [] };
67
+ });
68
+ }, new Reflector()),
69
+ );
70
+
71
+ // binds ValidationPipe to the entire application 。自动转换负载数据(url query和body),并验证数据是否符合dto的数据约束
72
+ app.useGlobalPipes(
73
+ new ValidationPipe({
74
+ transform: true, // 👈 automatically transform payloads
75
+ transformOptions: {
76
+ enableImplicitConversion: true, // 👈 transform payloads based on TS type
77
+ },
78
+ }),
79
+ );
80
+
81
+ // apply transform to all responses
82
+ app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));
83
+
84
+ // apply PrismaClientExceptionFilter to entire application, requires HttpAdapterHost because it extends BaseExceptionFilter
85
+ const { httpAdapter } = app.get(HttpAdapterHost);
86
+ app.useGlobalFilters(
87
+ new PrismaClientExceptionFilter(httpAdapter),
88
+ new AllExceptionsFilter(),
89
+ );
90
+
91
+ // Swagger Api
92
+ const swaggerConfig = configService.get('swagger');
93
+ if (swaggerConfig.enabled) {
94
+ const config = new DocumentBuilder()
95
+ .setTitle(swaggerConfig.title || 'Nestjs')
96
+ .setDescription(swaggerConfig.description || 'The nestjs API description')
97
+ .setVersion(swaggerConfig.version || '1.0')
98
+ //.addBearerAuth()
99
+ .addApiKey({ type: 'apiKey' }, 'X-API-KEY')
100
+ .build();
101
+ const options: SwaggerDocumentOptions = {
102
+ operationIdFactory: (controllerKey: string, methodKey: string) =>
103
+ methodKey,
104
+ };
105
+ const document = SwaggerModule.createDocument(app, config, options);
106
+
107
+ SwaggerModule.setup(swaggerConfig.path || 'api', app, document, {
108
+ customSiteTitle: 'Prisma Day',
109
+ });
110
+ }
111
+
112
+ await app.listen(configService.get('nest').port);
113
+
114
+ console.log(
115
+ `Application is running on: ${await app.getUrl()}/${swaggerConfig.path}`,
116
+ );
117
+ }
118
+
119
+ bootstrap();
@@ -0,0 +1,3 @@
1
+ import generatedModules from '../generated/modules.index';
2
+
3
+ export default [...generatedModules];
@@ -0,0 +1,24 @@
1
+ import { INestApplication } from '@nestjs/common';
2
+ import { Test, TestingModule } from '@nestjs/testing';
3
+ import * as request from 'supertest';
4
+ import { AppModule } from '../src/app.module';
5
+
6
+ describe('AppController (e2e)', () => {
7
+ let app: INestApplication;
8
+
9
+ beforeEach(async () => {
10
+ const moduleFixture: TestingModule = await Test.createTestingModule({
11
+ imports: [AppModule],
12
+ }).compile();
13
+
14
+ app = moduleFixture.createNestApplication();
15
+ await app.init();
16
+ });
17
+
18
+ it('/ (GET)', () => {
19
+ return request(app.getHttpServer())
20
+ .get('/')
21
+ .expect(200)
22
+ .expect('Hello World!');
23
+ });
24
+ });
@@ -0,0 +1,9 @@
1
+ {
2
+ "moduleFileExtensions": ["js", "json", "ts"],
3
+ "rootDir": ".",
4
+ "testEnvironment": "node",
5
+ "testRegex": ".e2e-spec.ts$",
6
+ "transform": {
7
+ "^.+\\.(t|j)s$": "ts-jest"
8
+ }
9
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
4
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "declaration": true,
5
+ "removeComments": true,
6
+ "emitDecoratorMetadata": true,
7
+ "experimentalDecorators": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "target": "es2017",
10
+ "sourceMap": true,
11
+ "outDir": "./dist",
12
+ "baseUrl": "./",
13
+ "incremental": true,
14
+ "skipLibCheck": true,
15
+ "strictNullChecks": true,
16
+ "noImplicitAny": false,
17
+ "strictBindCallApply": false,
18
+ "forceConsistentCasingInFileNames": false,
19
+ "noFallthroughCasesInSwitch": false
20
+ }
21
+ }
@@ -0,0 +1,48 @@
1
+ # my-refine-demo
2
+
3
+ <div align="center" style="margin: 30px;">
4
+ <a href="https://refine.dev">
5
+ <img src="https://refine.ams3.cdn.digitaloceanspaces.com/refine_logo.png" align="center" />
6
+ </a>
7
+ </div>
8
+ <br/>
9
+
10
+ This [refine](https://github.com/pankod/refine) project was generated with [superplate](https://github.com/pankod/refine).
11
+
12
+ ## Getting Started
13
+
14
+ **refine** is a React-based framework for building data-intensive applications in no time ✨
15
+
16
+ Refine offers lots of out-of-the box functionality for rapid development, without compromising extreme customizability. Use-cases include, but are not limited to admin panels, B2B applications and dashboards.
17
+
18
+ ## Available Scripts
19
+
20
+ ### Running the development server.
21
+
22
+ ```bash
23
+ $ yarn dev
24
+ ```
25
+
26
+ ### Building for production.
27
+
28
+ ```bash
29
+ $ yarn build
30
+ ```
31
+
32
+ ## Learn More
33
+
34
+ To learn more about **refine**, please check out the [Documentation](https://refine.dev/docs)
35
+
36
+ - **Ant Design** [Docs](https://refine.dev/docs/ui-frameworks/antd/tutorial/)
37
+ - **Ant Design Custom Theme** [Docs](https://refine.dev/docs/ui-frameworks/antd/customization/antd-custom-theme/)
38
+ - **React Router** [Docs](https://refine.dev/docs/core/providers/router-provider/)
39
+ - **REST Data Provider** [Docs](https://refine.dev/docs/core/providers/data-provider/#overview)
40
+ - **Custom Auth Provider** [Docs](https://refine.dev/docs/core/providers/auth-provider/)
41
+ - **Example Pages** [Docs](https://refine.dev/docs/guides-and-concepts/custom-pages/)
42
+ - **KBar Command Palette** [Docs](https://github.com/pankod/refine/tree/next/examples/commandPalette/kbar)
43
+ - **i18n** [Docs](https://refine.dev/docs/core/providers/i18n-provider/)
44
+
45
+
46
+ ## License
47
+
48
+ MIT
@@ -0,0 +1,27 @@
1
+ const CracoLessPlugin = require("craco-less");
2
+ const webpack = require('webpack');
3
+
4
+ module.exports = {
5
+ plugins: [
6
+ {
7
+ plugin: CracoLessPlugin,
8
+ options: {
9
+ lessLoaderOptions: {
10
+ lessOptions: {
11
+ // modifyVars: { "@primary-color": "#1DA57A" },
12
+ javascriptEnabled: true,
13
+ },
14
+ },
15
+ },
16
+ },
17
+ ],
18
+ webpack: {
19
+ plugins: {
20
+ add: [
21
+ new webpack.ProvidePlugin({
22
+ process: 'process/browser.js',
23
+ })
24
+ ]
25
+ },
26
+ },
27
+ };
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "gadmin2-demo-web",
3
+ "version": "0.0.1",
4
+ "description": "",
5
+ "author": "",
6
+ "private": true,
7
+ "dependencies": {
8
+ "@ant-design/icons": "^5.0.1",
9
+ "@gadmin2n/react-common": "^0.0.44",
10
+ "@refinedev/antd": "5.22.0",
11
+ "@refinedev/cli": "2.5.5",
12
+ "@refinedev/core": "4.20.0",
13
+ "@refinedev/inferencer": "4.1.0",
14
+ "@refinedev/kbar": "^1.1.0",
15
+ "@refinedev/react-router-v6": "4.3.2",
16
+ "@tanstack/react-query": "^4.10.1",
17
+ "@uiw/react-md-editor": "^3.19.5",
18
+ "antd": "^5.5.1",
19
+ "class-validator": "^0.14.0",
20
+ "i18next": "^22.4.7",
21
+ "i18next-browser-languagedetector": "^7.0.1",
22
+ "i18next-xhr-backend": "^3.2.2",
23
+ "js-cookie": "^3.0.5",
24
+ "json-stable-stringify": "^1.0.1",
25
+ "lodash.foreach": "^4.5.0",
26
+ "lodash.groupby": "^4.6.0",
27
+ "lodash.memoize": "^4.1.2",
28
+ "react": "^18.2.0",
29
+ "react-diff-viewer": "^3.1.1",
30
+ "react-dom": "^18.2.0",
31
+ "react-i18next": "^11.8.11",
32
+ "react-router-dom": "^6.8.1",
33
+ "reflect-metadata": "^0.1.13",
34
+ "vanilla-jsoneditor": "^0.23.7"
35
+ },
36
+ "devDependencies": {
37
+ "@craco/craco": "^7.0.0",
38
+ "@testing-library/jest-dom": "^5.16.4",
39
+ "@testing-library/react": "^13.1.1",
40
+ "@testing-library/user-event": "^14.1.1",
41
+ "@types/jest": "^29.2.4",
42
+ "@types/js-cookie": "^3.0.3",
43
+ "@types/json-stable-stringify": "^1.0.34",
44
+ "@types/lodash.foreach": "^4.5.7",
45
+ "@types/lodash.groupby": "^4.6.7",
46
+ "@types/lodash.memoize": "^4.1.7",
47
+ "@types/node": "^12.20.10",
48
+ "@types/react": "^18.0.15",
49
+ "@types/react-dom": "^18.0.6",
50
+ "craco-less": "^2.0.0",
51
+ "process": "^0.11.10",
52
+ "react-scripts": "^5.0.0",
53
+ "typescript": "^5.0.0",
54
+ "web-vitals": "^1.1.1"
55
+ },
56
+ "scripts": {
57
+ "dev": "refine start",
58
+ "build": "refine build",
59
+ "test": "react-scripts test",
60
+ "eject": "react-scripts eject",
61
+ "refine": "refine"
62
+ },
63
+ "eslintConfig": {
64
+ "extends": [
65
+ "react-app",
66
+ "react-app/jest"
67
+ ]
68
+ },
69
+ "browserslist": {
70
+ "production": [
71
+ ">0.2%",
72
+ "not dead",
73
+ "not op_mini all"
74
+ ],
75
+ "development": [
76
+ "last 1 chrome version",
77
+ "last 1 firefox version",
78
+ "last 1 safari version"
79
+ ]
80
+ }
81
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="640" height="480" viewBox="0 0 640 480"><defs><clipPath id="a"><path fill-opacity=".67" d="M-85.333 0h682.67v512h-682.67z"/></clipPath></defs><g clip-path="url(#a)" transform="translate(80) scale(.94)"><g stroke-width="1pt"><path fill="#006" d="M-256 0H768.02v512.01H-256z"/><path fill="#fff" d="M-256 0v57.244l909.535 454.768H768.02V454.77L-141.515 0H-256zM768.02 0v57.243L-141.515 512.01H-256v-57.243L653.535 0H768.02z"/><path fill="#fff" d="M170.675 0v512.01h170.67V0h-170.67zM-256 170.67v170.67H768.02V170.67H-256z"/><path fill="#c00" d="M-256 204.804v102.402H768.02V204.804H-256zM204.81 0v512.01h102.4V0h-102.4zM-256 512.01L85.34 341.34h76.324l-341.34 170.67H-256zM-256 0L85.34 170.67H9.016L-256 38.164V0zm606.356 170.67L691.696 0h76.324L426.68 170.67h-76.324zM768.02 512.01L426.68 341.34h76.324L768.02 473.848v38.162z"/></g></g></svg>
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icons-cn" viewBox="0 0 512 512">
2
+ <defs>
3
+ <path id="a" fill="#ff0" d="M1-.3-.7.8 0-1 .6.8-1-.3z"/>
4
+ </defs>
5
+ <path fill="#ee1c25" d="M0 0h512v512H0z"/>
6
+ <use xlink:href="#a" width="30" height="20" transform="matrix(76.8 0 0 76.8 128 128)"/>
7
+ <use xlink:href="#a" width="30" height="20" transform="rotate(-121 142.6 -47) scale(25.5827)"/>
8
+ <use xlink:href="#a" width="30" height="20" transform="rotate(-98.1 198 -82) scale(25.6)"/>
9
+ <use xlink:href="#a" width="30" height="20" transform="rotate(-74 272.4 -114) scale(25.6137)"/>
10
+ <use xlink:href="#a" width="30" height="20" transform="matrix(16 -19.968 19.968 16 256 230.4)"/>
11
+ </svg>
@@ -0,0 +1,53 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <meta name="theme-color" content="#000000" />
8
+ <meta
9
+ name="description"
10
+ content="Gadmin2 demo"
11
+ />
12
+ <meta
13
+ data-rh="true"
14
+ property="og:image"
15
+ content="https://refine.dev/img/refine_social_new.png"
16
+ />
17
+ <meta
18
+ data-rh="true"
19
+ name="twitter:image"
20
+ content="https://refine.dev/img/refine_social_new.png"
21
+ />
22
+ <!--
23
+ manifest.json provides metadata used when your web app is installed on a
24
+ user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
25
+ -->
26
+ <!--
27
+ Notice the use of %PUBLIC_URL% in the tags above.
28
+ It will be replaced with the URL of the `public` folder during the build.
29
+ Only files inside the `public` folder can be referenced from the HTML.
30
+
31
+ Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
32
+ work correctly both with client-side routing and a non-root public URL.
33
+ Learn how to configure a non-root public URL by running `npm run build`.
34
+ -->
35
+ <title>
36
+ Gadmin2 demo
37
+ </title>
38
+ </head>
39
+ <body>
40
+ <noscript>You need to enable JavaScript to run this app.</noscript>
41
+ <div id="root"></div>
42
+ <!--
43
+ This HTML file is a template.
44
+ If you open it directly in the browser, you will see an empty page.
45
+
46
+ You can add webfonts, meta tags, or analytics to this file.
47
+ The build step will place the bundled scripts into the <body> tag.
48
+
49
+ To begin the development, run `npm start` or `yarn start`.
50
+ To create a production bundle, use `npm run build` or `yarn build`.
51
+ -->
52
+ </body>
53
+ </html>