@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,294 @@
1
+ import React from 'react';
2
+ import { SearchOutlined } from '@ant-design/icons';
3
+ import { Button, DatePicker, Form, FormProps, Input, Space } from 'antd';
4
+ import { agentAttrs } from './agentPanel/agentAttributes';
5
+
6
+ const { RangePicker } = DatePicker;
7
+
8
+ export interface SearchBarField {
9
+ name: string;
10
+ type: 'keyword' | 'dateRange' | 'custom';
11
+ label?: string;
12
+ placeholder?: string;
13
+ component?: React.ReactNode;
14
+ style?: React.CSSProperties;
15
+ }
16
+
17
+ export interface SearchBarRenderContext {
18
+ /** Form props from parent */
19
+ formProps: FormProps;
20
+ /** Fields configuration */
21
+ fields: SearchBarField[];
22
+ /** Translation function */
23
+ t: (key: string, defaultValue?: string) => string;
24
+ /** Resource name */
25
+ resourceName: string;
26
+ /** Render a single field */
27
+ renderField: (field: SearchBarField) => React.ReactNode;
28
+ /** Default submit button */
29
+ defaultSubmitButton: React.ReactNode;
30
+ }
31
+
32
+ export interface SearchBarProps {
33
+ formProps: FormProps;
34
+ fields?: SearchBarField[];
35
+ /** Translation function */
36
+ t?: (key: string, defaultValue?: string) => string;
37
+ /** Resource name for i18n keys */
38
+ resourceName?: string;
39
+ /** Default placeholder for keyword search */
40
+ searchPlaceholder?: string;
41
+ /** Submit button text */
42
+ submitText?: string;
43
+ /** Custom children - if provided as function, gives full control */
44
+ children?: React.ReactNode | ((context: SearchBarRenderContext) => React.ReactNode);
45
+
46
+ // Render props for fine-grained customization
47
+ /** Custom render for keyword input */
48
+ renderKeywordInput?: (field: SearchBarField, defaultInput: React.ReactNode) => React.ReactNode;
49
+ /** Custom render for date range picker */
50
+ renderDateRangePicker?: (field: SearchBarField, defaultPicker: React.ReactNode) => React.ReactNode;
51
+ /** Custom render for submit button */
52
+ renderSubmitButton?: (defaultButton: React.ReactNode) => React.ReactNode;
53
+ /** Custom render for field wrapper (Form.Item) */
54
+ renderFieldWrapper?: (field: SearchBarField, children: React.ReactNode) => React.ReactNode;
55
+ /** Extra fields to render before submit button */
56
+ extraFields?: React.ReactNode;
57
+ /** Extra actions to render after submit button */
58
+ extraActions?: React.ReactNode;
59
+ /** Show submit button */
60
+ showSubmitButton?: boolean;
61
+ /** Custom form wrapper - if false, renders without Form wrapper */
62
+ noFormWrapper?: boolean;
63
+ }
64
+
65
+ /**
66
+ * Reusable search bar component for list pages
67
+ *
68
+ * @example
69
+ * // Basic usage
70
+ * <SearchBar
71
+ * formProps={searchFormProps}
72
+ * t={t}
73
+ * resourceName="audit"
74
+ * />
75
+ *
76
+ * @example
77
+ * // With custom render props
78
+ * <SearchBar
79
+ * {...props}
80
+ * renderKeywordInput={(field, defaultInput) => (
81
+ * <MyCustomSearchInput placeholder={field.placeholder} />
82
+ * )}
83
+ * renderSubmitButton={(defaultButton) => (
84
+ * <Space>
85
+ * {defaultButton}
86
+ * <Button onClick={handleReset}>Reset</Button>
87
+ * </Space>
88
+ * )}
89
+ * extraActions={<Button onClick={handleAdvanced}>Advanced</Button>}
90
+ * />
91
+ *
92
+ * @example
93
+ * // Completely custom UI using children
94
+ * <SearchBar formProps={formProps}>
95
+ * {({ fields, renderField, defaultSubmitButton }) => (
96
+ * <MyCustomSearchLayout>
97
+ * {fields.map(renderField)}
98
+ * {defaultSubmitButton}
99
+ * </MyCustomSearchLayout>
100
+ * )}
101
+ * </SearchBar>
102
+ */
103
+ export const SearchBar: React.FC<SearchBarProps> = ({
104
+ formProps,
105
+ fields,
106
+ t = (key, defaultValue) => defaultValue || key,
107
+ resourceName = '',
108
+ searchPlaceholder = '',
109
+ submitText,
110
+ children,
111
+ renderKeywordInput,
112
+ renderDateRangePicker,
113
+ renderSubmitButton,
114
+ renderFieldWrapper,
115
+ extraFields,
116
+ extraActions,
117
+ showSubmitButton = true,
118
+ noFormWrapper = false,
119
+ }) => {
120
+ // Default fields if none provided
121
+ const defaultFields: SearchBarField[] = [
122
+ {
123
+ name: 'q',
124
+ type: 'keyword',
125
+ label: t(`resources.${resourceName}.search.q.title`, 'Search'),
126
+ placeholder: t(`resources.${resourceName}.search.q.placeholder`, searchPlaceholder),
127
+ style: { width: '100%', maxWidth: '300px' },
128
+ },
129
+ {
130
+ name: 'createdAt',
131
+ type: 'dateRange',
132
+ label: t(`resources.${resourceName}.fields.createdAt`, 'createdAt'),
133
+ style: { width: '100%', maxWidth: '400px' },
134
+ },
135
+ ];
136
+
137
+ const fieldsToRender = fields || defaultFields;
138
+
139
+ // Default submit button
140
+ const defaultSubmitButton = (
141
+ <Form.Item>
142
+ <Button htmlType="submit" type="primary">
143
+ {submitText || t('buttons.filter', 'Filter')}
144
+ </Button>
145
+ </Form.Item>
146
+ );
147
+
148
+ // Default field wrapper
149
+ const defaultFieldWrapper = (field: SearchBarField, children: React.ReactNode) => (
150
+ <Form.Item
151
+ key={field.name}
152
+ label={field.label}
153
+ name={field.name}
154
+ style={field.style}
155
+ >
156
+ {children}
157
+ </Form.Item>
158
+ );
159
+
160
+ // Render a single field
161
+ const renderField = (field: SearchBarField): React.ReactNode => {
162
+ if (field.type === 'custom' && field.component) {
163
+ const wrapper = renderFieldWrapper || defaultFieldWrapper;
164
+ return (
165
+ <React.Fragment key={field.name}>
166
+ {wrapper(field, field.component)}
167
+ </React.Fragment>
168
+ );
169
+ }
170
+
171
+ if (field.type === 'dateRange') {
172
+ const defaultPicker = <RangePicker />;
173
+ const picker = renderDateRangePicker
174
+ ? renderDateRangePicker(field, defaultPicker)
175
+ : defaultPicker;
176
+
177
+ const defaultLabel = field.label || t(`resources.${resourceName}.fields.${field.name}`, field.name);
178
+ const defaultStyle = field.style || { width: '100%', maxWidth: '400px' };
179
+
180
+ if (renderFieldWrapper) {
181
+ return (
182
+ <React.Fragment key={field.name}>
183
+ &nbsp;
184
+ {renderFieldWrapper({ ...field, label: defaultLabel, style: defaultStyle }, picker)}
185
+ </React.Fragment>
186
+ );
187
+ }
188
+
189
+ return (
190
+ <React.Fragment key={field.name}>
191
+ &nbsp;
192
+ <Form.Item
193
+ label={defaultLabel}
194
+ name={field.name}
195
+ style={defaultStyle}
196
+ >
197
+ {picker}
198
+ </Form.Item>
199
+ </React.Fragment>
200
+ );
201
+ }
202
+
203
+ // Default: keyword search
204
+ const defaultLabel = field.label || t(`resources.${resourceName}.search.${field.name}.title`, 'Search');
205
+ const defaultPlaceholder = field.placeholder || t(`resources.${resourceName}.search.${field.name}.placeholder`, searchPlaceholder);
206
+ const defaultStyle = field.style || { width: '100%', maxWidth: '300px' };
207
+
208
+ const defaultInput = (
209
+ <Input
210
+ placeholder={defaultPlaceholder}
211
+ prefix={<SearchOutlined />}
212
+ />
213
+ );
214
+
215
+ const input = renderKeywordInput
216
+ ? renderKeywordInput({ ...field, placeholder: defaultPlaceholder }, defaultInput)
217
+ : defaultInput;
218
+
219
+ if (renderFieldWrapper) {
220
+ return (
221
+ <React.Fragment key={field.name}>
222
+ {renderFieldWrapper({ ...field, label: defaultLabel, style: defaultStyle }, input)}
223
+ </React.Fragment>
224
+ );
225
+ }
226
+
227
+ return (
228
+ <Form.Item
229
+ key={field.name}
230
+ label={defaultLabel}
231
+ name={field.name}
232
+ style={defaultStyle}
233
+ >
234
+ {input}
235
+ </Form.Item>
236
+ );
237
+ };
238
+
239
+ // Build context for render function
240
+ const context: SearchBarRenderContext = {
241
+ formProps,
242
+ fields: fieldsToRender,
243
+ t,
244
+ resourceName,
245
+ renderField,
246
+ defaultSubmitButton,
247
+ };
248
+
249
+ // If children is a function, call it with context
250
+ if (typeof children === 'function') {
251
+ const content = children(context);
252
+ if (noFormWrapper) {
253
+ return <>{content}</>;
254
+ }
255
+ return <Form {...formProps}>{content}</Form>;
256
+ }
257
+
258
+ // If children is provided as ReactNode, render it directly
259
+ if (children) {
260
+ if (noFormWrapper) {
261
+ return <>{children}</>;
262
+ }
263
+ return <Form {...formProps}>{children}</Form>;
264
+ }
265
+
266
+ // Default rendering
267
+ const content = (
268
+ <Space wrap>
269
+ {fieldsToRender.map(renderField)}
270
+ {extraFields}
271
+ &nbsp;
272
+ {showSubmitButton && (
273
+ renderSubmitButton
274
+ ? renderSubmitButton(defaultSubmitButton)
275
+ : defaultSubmitButton
276
+ )}
277
+ {extraActions}
278
+ </Space>
279
+ );
280
+
281
+ if (noFormWrapper) {
282
+ return content;
283
+ }
284
+
285
+ return (
286
+ <div {...agentAttrs({ type: 'search-bar', resource: resourceName })}>
287
+ <Form {...formProps}>
288
+ {content}
289
+ </Form>
290
+ </div>
291
+ );
292
+ };
293
+
294
+ export default SearchBar;
@@ -0,0 +1,10 @@
1
+ .vanilla-jsoneditor-react {
2
+ display: flex;
3
+ flex: 1;
4
+ }
5
+
6
+ .vanilla-jsoneditor-container {
7
+ width: 700px;
8
+ /* height: 400px; */
9
+ display: flex;
10
+ }
@@ -0,0 +1,53 @@
1
+ import { JSONEditor } from "vanilla-jsoneditor";
2
+ import { useEffect, useRef } from "react";
3
+ import "./index.css";
4
+
5
+ export default function SvelteJSONEditor(props) {
6
+ const refContainer = useRef(null);
7
+ const refEditor = useRef(null);
8
+
9
+ useEffect(() => {
10
+ // create editor
11
+ // console.log("create editor", refContainer.current);
12
+ refEditor.current = new JSONEditor({
13
+ target: refContainer.current,
14
+ props: {},
15
+ });
16
+
17
+ return () => {
18
+ // destroy editor
19
+ if (refEditor.current) {
20
+ // console.log("destroy editor");
21
+ refEditor.current.destroy();
22
+ refEditor.current = null;
23
+ }
24
+ };
25
+ }, []);
26
+
27
+ // update props
28
+ useEffect(() => {
29
+ if (refEditor.current && props) {
30
+ // console.log("update props", props);
31
+ refEditor.current.updateProps({
32
+ ...props,
33
+ content: {
34
+ json: undefined,
35
+ text: props.value || "",
36
+ },
37
+ onChange: (content) => {
38
+ if (content.text !== undefined) {
39
+ props.onChange(content.text);
40
+ } else if (content.json !== undefined) {
41
+ props.onChange(JSON.stringify(content.json));
42
+ }
43
+ },
44
+ });
45
+ }
46
+ }, [props]);
47
+
48
+ return (
49
+ <div className="vanilla-jsoneditor-container">
50
+ <div className="vanilla-jsoneditor-react" ref={refContainer}></div>
51
+ </div>
52
+ );
53
+ }
@@ -0,0 +1,201 @@
1
+ import React, { createContext, useContext, useState, useCallback, useEffect } from 'react';
2
+ import { useLocation } from 'react-router-dom';
3
+ import { InspectedElementInfo } from './inspectorActions';
4
+
5
+ export type PageType = 'list' | 'create' | 'edit' | 'show' | 'unknown';
6
+
7
+ export interface PageInfo {
8
+ /** Resource name, e.g., 'user', 'audit' */
9
+ resourceName: string;
10
+ /** Page type */
11
+ pageType: PageType;
12
+ /** Full path */
13
+ path: string;
14
+ }
15
+
16
+ interface AgentContextValue {
17
+ /** Whether the agent panel is visible */
18
+ visible: boolean;
19
+ /** Open the agent panel */
20
+ open: () => void;
21
+ /** Close the agent panel */
22
+ close: () => void;
23
+ /** Toggle the agent panel */
24
+ toggle: () => void;
25
+ /** Current page info */
26
+ pageInfo: PageInfo;
27
+ /** Selected skill ID */
28
+ selectedSkillId: string | null;
29
+ /** Set selected skill */
30
+ setSelectedSkillId: (id: string | null) => void;
31
+ /** User's additional prompt */
32
+ userPrompt: string;
33
+ /** Set user prompt */
34
+ setUserPrompt: (prompt: string) => void;
35
+ /** Active tab */
36
+ activeTab: 'page' | 'project';
37
+ /** Set active tab */
38
+ setActiveTab: (tab: 'page' | 'project') => void;
39
+ /** Whether inspector overlay is active */
40
+ inspecting: boolean;
41
+ /** Enter inspect mode: close drawer, activate overlay */
42
+ startInspecting: () => void;
43
+ /** Exit inspect mode */
44
+ stopInspecting: () => void;
45
+ /** Info about the element selected by inspector */
46
+ inspectedElement: InspectedElementInfo | null;
47
+ /** Set inspected element info */
48
+ setInspectedElement: (info: InspectedElementInfo | null) => void;
49
+ /** Selected sub-skill ID (lifted from AgentPanel for inspector integration) */
50
+ selectedSubSkillId: string | null;
51
+ /** Set selected sub-skill */
52
+ setSelectedSubSkillId: (id: string | null) => void;
53
+ }
54
+
55
+ const AgentContext = createContext<AgentContextValue | null>(null);
56
+
57
+ /**
58
+ * Parse current route to extract page info
59
+ * Supports nested routes like /system/game, /system/game/edit/123
60
+ */
61
+ function parsePageInfo(pathname: string): PageInfo {
62
+ // Remove leading slash and split
63
+ const parts = pathname.replace(/^\//, '').split('/').filter(Boolean);
64
+
65
+ // Default values
66
+ let resourceName = '';
67
+ let pageType: PageType = 'unknown';
68
+
69
+ if (parts.length === 0) {
70
+ return { resourceName, pageType, path: pathname };
71
+ }
72
+
73
+ // Find the resource name and page type by scanning from the end
74
+ // URL patterns:
75
+ // /user -> resource: user, type: list
76
+ // /user/create -> resource: user, type: create
77
+ // /user/edit/123 -> resource: user, type: edit
78
+ // /user/show/123 -> resource: user, type: show
79
+ // /system/game -> resource: game, type: list
80
+ // /system/game/create -> resource: game, type: create
81
+ // /system/game/edit/123 -> resource: game, type: edit
82
+
83
+ const lastPart = parts[parts.length - 1];
84
+ const secondLastPart = parts.length >= 2 ? parts[parts.length - 2] : null;
85
+
86
+ // Check if last part is a number (ID)
87
+ if (/^\d+$/.test(lastPart)) {
88
+ // URL ends with ID, check the part before it
89
+ if (secondLastPart === 'edit') {
90
+ pageType = 'edit';
91
+ resourceName = parts.length >= 3 ? parts[parts.length - 3] : '';
92
+ } else if (secondLastPart === 'show') {
93
+ pageType = 'show';
94
+ resourceName = parts.length >= 3 ? parts[parts.length - 3] : '';
95
+ } else if (secondLastPart === 'clone') {
96
+ pageType = 'edit'; // clone uses edit page
97
+ resourceName = parts.length >= 3 ? parts[parts.length - 3] : '';
98
+ } else {
99
+ // /user/123 pattern
100
+ pageType = 'show';
101
+ resourceName = secondLastPart || '';
102
+ }
103
+ } else if (lastPart === 'create') {
104
+ pageType = 'create';
105
+ resourceName = secondLastPart || '';
106
+ } else if (lastPart === 'edit' || lastPart === 'show' || lastPart === 'clone') {
107
+ // Shouldn't happen normally, but handle it
108
+ pageType = lastPart === 'clone' ? 'edit' : lastPart as PageType;
109
+ resourceName = secondLastPart || '';
110
+ } else {
111
+ // Last part is the resource name, it's a list page
112
+ pageType = 'list';
113
+ resourceName = lastPart;
114
+ }
115
+
116
+ return {
117
+ resourceName,
118
+ pageType,
119
+ path: pathname,
120
+ };
121
+ }
122
+
123
+ export const AgentProvider: React.FC<{ children: React.ReactNode }> = ({
124
+ children,
125
+ }) => {
126
+ const location = useLocation();
127
+ const [visible, setVisible] = useState(false);
128
+ const [selectedSkillId, setSelectedSkillId] = useState<string | null>(null);
129
+ const [userPrompt, setUserPrompt] = useState('');
130
+ const [activeTab, setActiveTab] = useState<'page' | 'project'>('page');
131
+ const [inspecting, setInspecting] = useState(false);
132
+ const [inspectedElement, setInspectedElement] = useState<InspectedElementInfo | null>(null);
133
+ const [selectedSubSkillId, setSelectedSubSkillId] = useState<string | null>(null);
134
+
135
+ const pageInfo = parsePageInfo(location.pathname);
136
+
137
+ const open = useCallback(() => setVisible(true), []);
138
+ const close = useCallback(() => setVisible(false), []);
139
+ const toggle = useCallback(() => setVisible((v) => !v), []);
140
+
141
+ const startInspecting = useCallback(() => {
142
+ setVisible(false);
143
+ setInspecting(true);
144
+ }, []);
145
+
146
+ const stopInspecting = useCallback(() => {
147
+ setInspecting(false);
148
+ }, []);
149
+
150
+ // Alt+I shortcut to toggle inspect mode
151
+ useEffect(() => {
152
+ const handleKeyDown = (e: KeyboardEvent) => {
153
+ if (e.altKey && e.code === 'KeyI') {
154
+ e.preventDefault();
155
+ setInspecting((prev) => {
156
+ if (!prev) {
157
+ // entering inspect mode — close drawer
158
+ setVisible(false);
159
+ }
160
+ return !prev;
161
+ });
162
+ }
163
+ };
164
+ document.addEventListener('keydown', handleKeyDown);
165
+ return () => document.removeEventListener('keydown', handleKeyDown);
166
+ }, []);
167
+
168
+ const value: AgentContextValue = {
169
+ visible,
170
+ open,
171
+ close,
172
+ toggle,
173
+ pageInfo,
174
+ selectedSkillId,
175
+ setSelectedSkillId,
176
+ userPrompt,
177
+ setUserPrompt,
178
+ activeTab,
179
+ setActiveTab,
180
+ inspecting,
181
+ startInspecting,
182
+ stopInspecting,
183
+ inspectedElement,
184
+ setInspectedElement,
185
+ selectedSubSkillId,
186
+ setSelectedSubSkillId,
187
+ };
188
+
189
+ return (
190
+ <AgentContext.Provider value={value}>{children}</AgentContext.Provider>
191
+ );
192
+ };
193
+
194
+ export function useAgent(): AgentContextValue | null {
195
+ const context = useContext(AgentContext);
196
+ // Return null instead of throwing error when not in AgentProvider
197
+ // This allows safe usage in production where AgentProvider is not rendered
198
+ return context;
199
+ }
200
+
201
+ export default AgentContext;