@simitgroup/simpleapp-generator 1.6.7-o-alpha → 2.0.0-b-alpha

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 (305) hide show
  1. package/ReleaseNote.md +9 -0
  2. package/dist/buildinschemas/autoincreament.js +1 -1
  3. package/dist/buildinschemas/branch.d.ts.map +1 -1
  4. package/dist/buildinschemas/branch.js +2 -0
  5. package/dist/buildinschemas/branch.js.map +1 -1
  6. package/dist/buildinschemas/docnoformat.js +1 -1
  7. package/dist/buildinschemas/docnoformat.js.map +1 -1
  8. package/dist/buildinschemas/documentevent.js +1 -1
  9. package/dist/buildinschemas/documentnoformat.d.ts +3 -0
  10. package/dist/buildinschemas/documentnoformat.d.ts.map +1 -0
  11. package/dist/buildinschemas/documentnoformat.js +58 -0
  12. package/dist/buildinschemas/documentnoformat.js.map +1 -0
  13. package/dist/buildinschemas/index.d.ts +0 -5
  14. package/dist/buildinschemas/index.d.ts.map +1 -1
  15. package/dist/buildinschemas/index.js +5 -11
  16. package/dist/buildinschemas/index.js.map +1 -1
  17. package/dist/buildinschemas/organization.d.ts.map +1 -1
  18. package/dist/buildinschemas/organization.js +3 -19
  19. package/dist/buildinschemas/organization.js.map +1 -1
  20. package/dist/buildinschemas/user.d.ts.map +1 -1
  21. package/dist/buildinschemas/user.js +5 -2
  22. package/dist/buildinschemas/user.js.map +1 -1
  23. package/dist/generate.d.ts.map +1 -1
  24. package/dist/generate.js +118 -23
  25. package/dist/generate.js.map +1 -1
  26. package/dist/type.d.ts +6 -0
  27. package/dist/type.d.ts.map +1 -1
  28. package/dist/type.js.map +1 -1
  29. package/package.json +1 -1
  30. package/src/buildinschemas/{autoincreament.ts → autoincreament.ts.backup} +1 -1
  31. package/src/buildinschemas/branch.ts +2 -0
  32. package/src/buildinschemas/{documentevent.ts → documentevent.ts.backup} +1 -1
  33. package/src/buildinschemas/{docnoformat.ts → documentnoformat.ts.backup} +3 -3
  34. package/src/buildinschemas/index.ts +4 -5
  35. package/src/buildinschemas/organization.ts +3 -19
  36. package/src/buildinschemas/user.ts +5 -2
  37. package/src/generate.ts +128 -28
  38. package/src/type.ts +6 -1
  39. package/templates/basic/nest/api.controller.ts.eta +153 -0
  40. package/templates/basic/nest/api.module.ts.eta +32 -0
  41. package/templates/basic/nest/api.resolver.ts.eta +94 -0
  42. package/templates/basic/nest/api.schema.ts.eta +20 -0
  43. package/templates/basic/nest/api.service.ts.eta +85 -0
  44. package/templates/basic/nest/controller.ts.eta +31 -119
  45. package/templates/basic/nest/default.ts.eta +16 -10
  46. package/templates/basic/nest/enum.ts.eta +16 -0
  47. package/templates/basic/nest/model.ts.eta +6 -28
  48. package/templates/basic/nest/module.ts.eta +26 -0
  49. package/templates/basic/nest/resolver.ts.eta +12 -56
  50. package/templates/basic/nest/schema.ts.eta +133 -0
  51. package/templates/basic/nest/service.ts.eta +86 -73
  52. package/templates/basic/nest/service.ts.eta-backup +50 -0
  53. package/templates/basic/nuxt/default.ts.eta +10 -8
  54. package/templates/basic/nuxt/pages.[id].vue.eta +2 -2
  55. package/templates/basic/nuxt/pages.form.vue.eta +2 -2
  56. package/templates/basic/nuxt/pages.viewer.vue.eta +2 -2
  57. package/templates/basic/nuxt/simpleapp.doc.ts.eta +1 -1
  58. package/templates/basic/nuxt/simpleapp.generate.client.ts.eta +7 -5
  59. package/templates/nest/src/app.module.ts._eta +53 -69
  60. package/templates/nest/src/main.ts._eta +1 -1
  61. package/templates/nest/src/simple-app/.core/features/auth/api-key/api-key.service.ts.eta +29 -0
  62. package/templates/nest/src/simple-app/.core/features/auth/api-key/api-key.type.ts.eta +5 -0
  63. package/templates/nest/src/simple-app/.core/features/auth/api-key/validators/interface.ts.eta +7 -0
  64. package/templates/nest/src/simple-app/.core/features/auth/api-key/validators/mini-api-key.validator.ts.eta +30 -0
  65. package/templates/nest/src/simple-app/.core/features/auth/api-key/validators/static-api-key.validator.ts.eta +27 -0
  66. package/templates/nest/src/simple-app/.core/features/auth/auth.module.ts.eta +9 -0
  67. package/templates/nest/src/{simpleapp/generate/commons/roles → simple-app/.core/features/auth/role-guard}/roles.enum.ts.eta +7 -7
  68. package/templates/nest/src/{simpleapp/generate/commons/roles → simple-app/.core/features/auth/role-guard}/roles.guard.ts.eta +1 -1
  69. package/templates/nest/src/simple-app/.core/features/auto-increament/auto-increament.model.ts.eta +10 -0
  70. package/templates/nest/src/simple-app/.core/features/auto-increament/auto-increament.module.ts.eta +18 -0
  71. package/templates/nest/src/simple-app/.core/features/auto-increament/auto-increament.schema.ts.eta +119 -0
  72. package/templates/nest/src/simple-app/.core/features/auto-increament/auto-increament.service.ts.eta +65 -0
  73. package/templates/nest/src/simple-app/.core/features/cron/base/cron.base.ts.eta +13 -0
  74. package/templates/nest/src/simple-app/.core/features/cron/cron-system/cron-system.module.ts.eta +17 -0
  75. package/templates/nest/src/simple-app/.core/features/cron/cron-system/cron-system.service.ts.eta +37 -0
  76. package/templates/nest/src/simple-app/.core/features/cron/cron-system/schemas/index.ts.eta +2 -0
  77. package/templates/nest/src/simple-app/.core/features/cron/cron.module.ts.eta +10 -0
  78. package/templates/nest/src/simple-app/.core/features/document-no-format/document-no-format.controller.ts.eta +31 -0
  79. package/templates/nest/src/simple-app/.core/features/document-no-format/document-no-format.model.ts.eta +15 -0
  80. package/templates/nest/src/simple-app/.core/features/document-no-format/document-no-format.module.ts.eta +12 -0
  81. package/templates/nest/src/simple-app/.core/features/document-no-format/document-no-format.schema.ts.eta +162 -0
  82. package/templates/nest/src/simple-app/.core/features/document-no-format/document-no-format.service.ts.eta +189 -0
  83. package/templates/nest/src/simple-app/.core/features/event/event.module.ts.eta +9 -0
  84. package/templates/nest/src/simple-app/.core/features/event/event.type.ts.eta +23 -0
  85. package/templates/nest/src/simple-app/.core/features/event/interface/event-after-create.interface.ts.eta +5 -0
  86. package/templates/nest/src/simple-app/.core/features/event/interface/event-after-delete.interface.ts.eta +5 -0
  87. package/templates/nest/src/simple-app/.core/features/event/interface/event-after-set-status.interface.ts.eta +5 -0
  88. package/templates/nest/src/simple-app/.core/features/event/interface/event-after-update.interface.ts.eta +5 -0
  89. package/templates/nest/src/simple-app/.core/features/event/interface/event-before-create.interface.ts.eta +5 -0
  90. package/templates/nest/src/simple-app/.core/features/event/interface/event-before-delete.interface.ts.eta +5 -0
  91. package/templates/nest/src/simple-app/.core/features/event/interface/event-before-set-status.interface.ts.eta +5 -0
  92. package/templates/nest/src/simple-app/.core/features/event/interface/event-before-update.interface.ts.eta +5 -0
  93. package/templates/nest/src/simple-app/.core/features/event/interface/index.ts.eta +8 -0
  94. package/templates/nest/src/simple-app/.core/features/foreign-key/foreign-key.module.ts.eta +16 -0
  95. package/templates/nest/src/simple-app/.core/features/log/log.module.ts.eta +20 -0
  96. package/templates/nest/src/simple-app/.core/features/log/log.service.ts.eta +68 -0
  97. package/templates/nest/src/simple-app/.core/features/log/schemas/api-event.schema.ts.eta +57 -0
  98. package/templates/nest/src/simple-app/.core/features/log/schemas/document-event.schema.ts.eta +87 -0
  99. package/templates/nest/src/simple-app/.core/features/log/schemas/index.ts.eta +2 -0
  100. package/templates/nest/src/simple-app/.core/features/maintenance/maintenance.controller.ts.eta +84 -0
  101. package/templates/nest/src/simple-app/.core/features/maintenance/maintenance.module.ts.eta +19 -0
  102. package/templates/nest/src/simple-app/.core/features/maintenance/maintenance.service.ts.eta +86 -0
  103. package/templates/nest/src/simple-app/.core/features/maintenance/schemas/environment.ts.eta +23 -0
  104. package/templates/nest/src/{simpleapp/maintenance/apischemas → simple-app/.core/features/maintenance/schemas}/index.ts.eta +1 -1
  105. package/templates/nest/src/simple-app/.core/features/mini-app/developer-portal/developer-portal-bridge.service.ts.eta.eta +31 -0
  106. package/templates/nest/src/simple-app/.core/features/mini-app/developer-portal/developer-portal-env-development.service.ts.eta +124 -0
  107. package/templates/nest/src/simple-app/.core/features/mini-app/developer-portal/developer-portal-env-production.service.ts.eta +50 -0
  108. package/templates/nest/src/simple-app/.core/features/mini-app/developer-portal/developer-portal.controller.ts.eta +41 -0
  109. package/templates/nest/src/simple-app/.core/features/mini-app/developer-portal/developer-portal.schema.ts.eta +18 -0
  110. package/templates/nest/src/simple-app/.core/features/mini-app/developer-portal/developer-portal.service.ts.eta +94 -0
  111. package/templates/nest/src/simple-app/.core/features/mini-app/developer-portal/dto/developer-portal-create-app.dto.ts.eta +22 -0
  112. package/templates/nest/src/simple-app/.core/features/mini-app/developer-portal/dto/developer-portal-publish-app.dto.ts.eta +0 -0
  113. package/templates/nest/src/simple-app/.core/features/mini-app/dto/imports.ts.eta +2 -0
  114. package/templates/nest/src/simple-app/.core/features/mini-app/dto/index.ts.eta +2 -0
  115. package/templates/nest/src/simple-app/.core/features/mini-app/dto/mini-app.ts.eta +55 -0
  116. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager-bridge.service.ts.eta +162 -0
  117. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager-env-development.service.ts.eta +140 -0
  118. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager-env-production.service.ts.eta +125 -0
  119. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager-policy.service.ts.eta +43 -0
  120. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager.controller.ts.eta +81 -0
  121. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager.enum.ts.eta +5 -0
  122. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager.error.ts.eta +24 -0
  123. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager.processor.ts.eta +309 -0
  124. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-manager/mini-app-manager.service.ts.eta +346 -0
  125. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-scope/mini-app-scope.decorator.ts.eta +5 -0
  126. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-scope/mini-app-scope.guard.ts.eta +43 -0
  127. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app-scope/mini-app-scope.service.ts.eta +101 -0
  128. package/templates/nest/src/simple-app/.core/features/mini-app/mini-app.module.ts.eta +24 -0
  129. package/templates/nest/src/simple-app/.core/features/mini-app/types/miniApp.ts.eta +23 -0
  130. package/templates/nest/src/simple-app/.core/features/mini-app/utils/mini-app.util.ts.eta +26 -0
  131. package/templates/nest/src/simple-app/.core/features/policy/policy.module.ts.eta +12 -0
  132. package/templates/nest/src/simple-app/.core/features/policy/policy.service.ts.eta +45 -0
  133. package/templates/nest/src/{simpleapp/profile/profile.controller.ts._eta → simple-app/.core/features/profile/profile.controller.ts.eta} +37 -83
  134. package/templates/nest/src/simple-app/.core/features/profile/profile.module.ts.eta +22 -0
  135. package/templates/nest/src/simple-app/.core/features/profile/profile.schema.ts.eta +165 -0
  136. package/templates/nest/src/{simpleapp/profile/profile.service.ts._eta → simple-app/.core/features/profile/profile.service.ts.eta} +36 -48
  137. package/templates/nest/src/simple-app/.core/features/queue/queue-base/queue-base.consumer.ts.eta +196 -0
  138. package/templates/nest/src/simple-app/.core/features/queue/queue-base/queue-base.producer.ts.eta +147 -0
  139. package/templates/nest/src/simple-app/.core/features/queue/queue-user-context/queue-user-context.service.ts.eta +35 -0
  140. package/templates/nest/src/simple-app/.core/features/queue/queue.module.ts.eta +24 -0
  141. package/templates/nest/src/simple-app/.core/features/queue/queue.type.ts.eta +75 -0
  142. package/templates/nest/src/simple-app/.core/features/simple-app-core-features.module.ts.eta +51 -0
  143. package/templates/nest/src/{simpleapp/generate/commons/robotuser.service.ts.eta → simple-app/.core/features/user-context/robot-user.service.ts.eta} +27 -16
  144. package/templates/nest/src/simple-app/.core/features/user-context/user-context.module.ts.eta +24 -0
  145. package/templates/nest/src/simple-app/.core/features/user-context/user-context.type.ts.eta +15 -0
  146. package/templates/nest/src/{simpleapp/generate/commons → simple-app/.core/features/user-context}/user.context.ts.eta +469 -449
  147. package/templates/nest/src/{simpleapp/generate/commons/runwebhook.service.ts.eta → simple-app/.core/features/webhook/run-webhook.service.ts.eta} +20 -17
  148. package/templates/nest/src/simple-app/.core/features/webhook/schemas/index.ts.eta +2 -0
  149. package/templates/nest/src/simple-app/.core/features/webhook/schemas/webhook-log.schema.ts.eta +116 -0
  150. package/templates/nest/src/simple-app/.core/features/webhook/schemas/webhook.schema.ts.eta +177 -0
  151. package/templates/nest/src/simple-app/.core/features/webhook/webhook.module.ts.eta +21 -0
  152. package/templates/nest/src/{simpleapp/generate/controllers/simpleapp.controller.ts.eta → simple-app/.core/framework/base/simple-app.controller.ts.eta} +20 -35
  153. package/templates/nest/src/{simpleapp/generate/processors/simpleapp.processor.ts.eta → simple-app/.core/framework/base/simple-app.service.ts.eta} +228 -140
  154. package/templates/nest/src/simple-app/.core/framework/custom-exception.ts.eta +26 -0
  155. package/templates/nest/src/simple-app/.core/framework/framework.module.ts.eta +12 -0
  156. package/templates/nest/src/simple-app/.core/framework/schemas/index.ts.eta +3 -0
  157. package/templates/nest/src/simple-app/.core/framework/schemas/others.schema.ts.eta +153 -0
  158. package/templates/nest/src/simple-app/.core/framework/schemas/simple-app.schema.ts.eta +172 -0
  159. package/templates/nest/src/{simpleapp/generate/commons/interceptors/response.interceptor.ts.eta → simple-app/.core/framework/simple-app.interceptor.ts.eta} +12 -22
  160. package/templates/nest/src/{simpleapp/generate/commons/middlewares/tenant.middleware.ts.eta → simple-app/.core/framework/simple-app.middleware.ts.eta} +28 -26
  161. package/templates/nest/src/simple-app/.core/readme.md.eta +3 -0
  162. package/templates/nest/src/simple-app/.core/resources/core-resources.module.ts.eta +38 -0
  163. package/templates/nest/src/simple-app/.core/simple-app-core.module.ts.eta +18 -0
  164. package/templates/nest/src/simple-app/.core/utils/dayjs.ts.eta +47 -0
  165. package/templates/nest/src/simple-app/.core/utils/locale-tool.ts.eta +11 -0
  166. package/templates/nest/src/simple-app/.core/utils/string-utils.ts.eta +1 -0
  167. package/templates/nest/src/simple-app/.resources/readme.md.eta +3 -0
  168. package/templates/nest/src/simple-app/.resources/resources.module.ts.eta +36 -0
  169. package/templates/nest/src/simple-app/apis/readme.md.eta +9 -0
  170. package/templates/nest/src/simple-app/apis/resource-api.module.ts.eta +37 -0
  171. package/templates/nest/src/simple-app/events/branch-event/branch-event.module.ts._eta +20 -0
  172. package/templates/nest/src/simple-app/events/branch-event/branch-event.service.ts._eta +43 -0
  173. package/templates/nest/src/simple-app/events/branch-event/branch-event.type.ts._eta +7 -0
  174. package/templates/nest/src/simple-app/events/events.module.ts._eta +17 -0
  175. package/templates/nest/src/simple-app/events/organization-event/organization-event.module.ts._eta +13 -0
  176. package/templates/nest/src/simple-app/events/organization-event/organization-event.service.ts._eta +52 -0
  177. package/templates/nest/src/simple-app/events/organization-event/organization-event.type.ts._eta +1 -0
  178. package/templates/nest/src/simple-app/events/permission-event/permission-event.module.ts.eta +11 -0
  179. package/templates/nest/src/simple-app/events/permission-event/permission-event.service.ts.eta +33 -0
  180. package/templates/nest/src/simple-app/events/permission-event/permission-event.type.ts.eta +1 -0
  181. package/templates/nest/src/simple-app/events/readme.md.eta +76 -0
  182. package/templates/nest/src/simple-app/events/tenant-event/tenant-event.module.ts_eta +12 -0
  183. package/templates/nest/src/simple-app/events/tenant-event/tenant-event.service.ts_eta +30 -0
  184. package/templates/nest/src/simple-app/events/tenant-event/tenant-event.type.ts_eta +1 -0
  185. package/templates/nest/src/{simpleapp/additional.module.ts._eta → simple-app/features/features.module.ts._eta} +8 -7
  186. package/templates/nest/src/{printapi/printapi.module.ts.eta → simple-app/features/print/print.module.ts.eta} +4 -4
  187. package/templates/nest/src/{printapi/printapi.service.ts.eta → simple-app/features/print/print.service.ts.eta} +7 -7
  188. package/templates/nest/src/simple-app/features/readme.md._eta +6 -0
  189. package/templates/nest/src/simple-app/simple-app.module.ts.eta +32 -0
  190. package/templates/nuxt/.env._eta +2 -0
  191. package/templates/nuxt/app.vue.eta +15 -7
  192. package/templates/nuxt/components/header/HeaderSelectBranch.vue.eta +2 -1
  193. package/templates/nuxt/components/image/ImageAvatar.vue._eta +63 -0
  194. package/templates/nuxt/components/image/ImageOrganization.vue._eta +77 -0
  195. package/templates/nuxt/components/simpleApp/SimpleAppForm.vue.eta +1 -1
  196. package/templates/nuxt/components/simpleApp/SimpleAppFormToolBar.vue._eta +95 -20
  197. package/templates/nuxt/components/user/UserButtonCreateTenant.vue._eta +20 -21
  198. package/templates/nuxt/components/user/UserTenantPicker.vue._eta +1 -1
  199. package/templates/nuxt/composables/docformat.generate.ts.eta +4 -2
  200. package/templates/nuxt/enums/enums.generate.ts.eta +1 -1
  201. package/templates/nuxt/middleware/30.acl.global.ts.eta +6 -6
  202. package/templates/nuxt/nuxt.config.ts._eta +1 -0
  203. package/templates/nuxt/pages/login.vue._eta +21 -15
  204. package/templates/nuxt/pages/profile.vue._eta +24 -32
  205. package/templates/nuxt/plugins/20.simpleapp-userstore.ts.eta +31 -24
  206. package/templates/nuxt/plugins/50.simpleapp-client.ts.eta +2 -2
  207. package/templates/nuxt/providers/my-provider.ts.eta +5 -6
  208. package/templates/nuxt/simpleapp/generate/clients/SimpleAppClient.ts.eta +1 -0
  209. package/templates/nuxt/simpleapp/generate/defaults/index.ts.eta +1 -1
  210. package/templates/nuxt/simpleapp/generate/types/index.ts.eta +1 -1
  211. package/templates/nuxt/types/schema.ts.eta +1 -0
  212. package/templates/nuxt/types/user.ts.eta +39 -38
  213. package/templates/project/build.sh.eta +2 -2
  214. package/templates/basic/nest/apischema.ts.eta +0 -96
  215. package/templates/basic/nest/processor.ts.eta +0 -86
  216. package/templates/nest/src/cloudapi/cloudapi.module.ts._eta +0 -15
  217. package/templates/nest/src/cloudapi/cloudapi.service.ts._eta +0 -15
  218. package/templates/nest/src/enums/enums.generate.ts.eta +0 -23
  219. package/templates/nest/src/simpleapp/apischemas/index.ts._eta +0 -85
  220. package/templates/nest/src/simpleapp/generate/apischemas/index.ts.eta +0 -15
  221. package/templates/nest/src/simpleapp/generate/apischemas/simpleapp.apischema.ts.eta +0 -62
  222. package/templates/nest/src/simpleapp/generate/commons/audittrail.service.ts.eta +0 -52
  223. package/templates/nest/src/simpleapp/generate/commons/customkeycloa.guard.ts.eta +0 -45
  224. package/templates/nest/src/simpleapp/generate/commons/docnogenerator.service.ts.eta +0 -129
  225. package/templates/nest/src/simpleapp/generate/commons/providers/workflow.provider.ts.etax +0 -87
  226. package/templates/nest/src/simpleapp/generate/jsonschemas/index.ts.eta +0 -11
  227. package/templates/nest/src/simpleapp/generate/models/apievent.model.ts.eta +0 -27
  228. package/templates/nest/src/simpleapp/generate/processors/autoinc.processor.ts.eta +0 -88
  229. package/templates/nest/src/simpleapp/generate/processors/branch.processor.ts.eta +0 -110
  230. package/templates/nest/src/simpleapp/generate/processors/docno.processor.ts.eta +0 -77
  231. package/templates/nest/src/simpleapp/generate/processors/org.processor.ts.eta +0 -110
  232. package/templates/nest/src/simpleapp/generate/processors/perm.processor.ts.eta +0 -71
  233. package/templates/nest/src/simpleapp/generate/processors/sysmsg.processor.ts.eta +0 -49
  234. package/templates/nest/src/simpleapp/generate/processors/tenant.processor.ts.eta +0 -52
  235. package/templates/nest/src/simpleapp/generate/processors/webhooklog.processor.ts.eta +0 -45
  236. package/templates/nest/src/simpleapp/generate/types/index.ts.eta +0 -7
  237. package/templates/nest/src/simpleapp/generate/types/schema.type.ts.eta +0 -193
  238. package/templates/nest/src/simpleapp/generate/types/simpleapp.type.ts.eta +0 -299
  239. package/templates/nest/src/simpleapp/generate/types/workflow.type.ts.eta +0 -15
  240. package/templates/nest/src/simpleapp/generate/workflow/formschema/SimpleApproveReject.ts.eta +0 -8
  241. package/templates/nest/src/simpleapp/generate/workflow/formschema/index.ts.eta +0 -7
  242. package/templates/nest/src/simpleapp/generate/workflow/workflow.apischema.ts.eta +0 -136
  243. package/templates/nest/src/simpleapp/generate/workflow/workflow.config.ts.eta +0 -79
  244. package/templates/nest/src/simpleapp/generate/workflow/workflow.controller.ts.eta +0 -414
  245. package/templates/nest/src/simpleapp/generate/workflow/workflow.delegate.ts.eta +0 -201
  246. package/templates/nest/src/simpleapp/generate/workflow/workflow.service.ts.eta +0 -641
  247. package/templates/nest/src/simpleapp/generate/workflow/workflow.type.ts.eta +0 -98
  248. package/templates/nest/src/simpleapp/generate/workflow/workflow.userservice.ts.eta +0 -83
  249. package/templates/nest/src/simpleapp/maintenance/apischemas/environment.ts.eta +0 -11
  250. package/templates/nest/src/simpleapp/maintenance/maintenance.controller.ts.eta +0 -72
  251. package/templates/nest/src/simpleapp/maintenance/maintenance.service.ts.eta +0 -88
  252. package/templates/nest/src/simpleapp/maintenance/models/environment.model.ts.eta +0 -16
  253. package/templates/nest/src/simpleapp/profile/profile.apischema.ts._eta +0 -95
  254. package/templates/nest/src/simpleapp/resolvers/readme.md.eta +0 -1
  255. package/templates/nest/src/simpleapp/services/autoinc.service.ts.etaxx +0 -59
  256. package/templates/nest/src/simpleapp/services/branch.service.ts.etaxxx +0 -83
  257. package/templates/nest/src/simpleapp/services/docno.service.ts.etaxxx +0 -59
  258. package/templates/nest/src/simpleapp/services/org.service.ts.etaxxx +0 -37
  259. package/templates/nest/src/simpleapp/services/perm.service.ts.etaxxx +0 -56
  260. package/templates/nest/src/simpleapp/services/sysmsg.service.ts._etaxxx +0 -43
  261. package/templates/nest/src/simpleapp/services/tenant.service.ts.etaxxx +0 -38
  262. package/templates/nest/src/simpleapp/services/user.service.ts.eta.old +0 -118
  263. package/templates/nest/src/simpleapp/services/userresolver.service.ts._eta +0 -67
  264. package/templates/nest/src/simpleapp/services/webhook.service.ts._eta +0 -37
  265. package/templates/nest/src/simpleapp/simpleapp.module.ts.eta +0 -85
  266. package/templates/nest/src/simpleapp/types/index.ts._eta +0 -45
  267. package/templates/nest/src/simpleapp/webhooks/branch.ts._eta +0 -44
  268. package/templates/nest/src/simpleapp/webhooks/index.ts._eta +0 -21
  269. package/templates/nest/src/simpleapp/workflows/bpmn/readme.md._eta +0 -1
  270. package/templates/nest/src/simpleapp/workflows/listeners/simpleapp.listener.ts.eta +0 -31
  271. package/templates/nest/src/simpleapp/workflows/readme.md._eta +0 -1
  272. package/templates/nuxt/components/image/ImageAvatar.vue.eta +0 -56
  273. package/templates/nuxt/components/image/ImageOrganization.vue.eta +0 -66
  274. /package/src/buildinschemas/{webhook.ts → webhook.ts.backup} +0 -0
  275. /package/src/buildinschemas/{webhooklog.ts → webhooklog.ts.backup} +0 -0
  276. /package/templates/basic/nest/{type.ts.eta → type.ts.eta-backup} +0 -0
  277. /package/templates/nest/src/{simpleapp/generate/commons/customkeycloak.guard.ts.eta → simple-app/.core/features/auth/keycloak/keycloak.guard.ts.eta} +0 -0
  278. /package/templates/nest/src/{simpleapp/generate/commons/roles → simple-app/.core/features/auth/role-guard}/roles.decorator.ts.eta +0 -0
  279. /package/templates/nest/src/{simpleapp/generate/commons/roles → simple-app/.core/features/auth/role-guard}/roles.group.ts.eta +0 -0
  280. /package/templates/nest/src/{simpleapp/generate/commons/dicts/documents.ts.eta → simple-app/.core/features/document-no-format/document.dict.ts.eta} +0 -0
  281. /package/templates/nest/src/{simpleapp/generate/commons/dicts/foreignkeys.ts.eta → simple-app/.core/features/foreign-key/foreignkeys.dict.ts.eta} +0 -0
  282. /package/templates/nest/src/{simpleapp/maintenance/dbupdate → simple-app/.core/features/maintenance/db-update}/1.00.00/index.ts._eta +0 -0
  283. /package/templates/nest/src/{simpleapp/maintenance/dbupdate → simple-app/.core/features/maintenance/db-update}/index.ts._eta +0 -0
  284. /package/templates/nest/src/{simpleapp/maintenance/apischemas/dbupdate.ts.eta → simple-app/.core/features/maintenance/schemas/db-update.ts.eta} +0 -0
  285. /package/templates/nest/src/{simpleapp/profile/profile.types.ts.eta → simple-app/.core/features/profile/profile.types.ts.eta-backup} +0 -0
  286. /package/templates/nest/src/{simpleapp/generate/commons/decorators → simple-app/.core/features/user-context}/appuser.decorator.ts.eta +0 -0
  287. /package/templates/nest/src/{simpleapp/generate/commons/exceptions/SimpleAppExceptionFilter.ts.eta → simple-app/.core/framework/exception-filter.ts.eta} +0 -0
  288. /package/templates/nest/src/{simpleapp/generate/commons → simple-app/.core/utils}/encryption.static.ts.eta +0 -0
  289. /package/templates/nest/src/{simpleapp → simple-app}/.gitignore.eta +0 -0
  290. /package/templates/nest/src/{printapi → simple-app/features/print}/api/.gitignore.eta +0 -0
  291. /package/templates/nest/src/{printapi → simple-app/features/print}/api/.npmignore.eta +0 -0
  292. /package/templates/nest/src/{printapi → simple-app/features/print}/api/.openapi-generator/FILES.eta +0 -0
  293. /package/templates/nest/src/{printapi → simple-app/features/print}/api/.openapi-generator/VERSION.eta +0 -0
  294. /package/templates/nest/src/{printapi → simple-app/features/print}/api/.openapi-generator-ignore.eta +0 -0
  295. /package/templates/nest/src/{printapi → simple-app/features/print}/api/api.ts.eta +0 -0
  296. /package/templates/nest/src/{printapi → simple-app/features/print}/api/base.ts.eta +0 -0
  297. /package/templates/nest/src/{printapi → simple-app/features/print}/api/common.ts.eta +0 -0
  298. /package/templates/nest/src/{printapi → simple-app/features/print}/api/configuration.ts.eta +0 -0
  299. /package/templates/nest/src/{printapi → simple-app/features/print}/api/git_push.sh.eta +0 -0
  300. /package/templates/nest/src/{printapi → simple-app/features/print}/api/index.ts.eta +0 -0
  301. /package/templates/nest/src/{printapi → simple-app/features/print}/api/openapitools.json.eta +0 -0
  302. /package/templates/project/{sharelibs → share-libs}/hello.ts._eta +0 -0
  303. /package/templates/project/{sharelibs → share-libs}/index.ts.eta +0 -0
  304. /package/templates/project/{sharelibs → share-libs}/money.ts.eta +0 -0
  305. /package/templates/project/{sharelibs → share-libs}/validate.ts.eta +0 -0
@@ -4,26 +4,30 @@
4
4
  * last change 2024-02-23
5
5
  * Author: Ks Tan
6
6
  */
7
+ import * as schema from './<%= camelToKebab(it.resourceName) %>.schema'
7
8
 
8
9
  <%Object.keys(it.models).forEach(function(modelname) { %>
9
- export const Default<%=modelname%> = (uuid:string)=>{
10
- // <%~ JSON.stringify(it.models[modelname].model) %>
10
+
11
+ export const Default<%= toTypeName(it.resourceName ,modelname) %> = (uuid:string)=>{
11
12
  <% let model = it.models[modelname].model%>
12
13
  <% if(model['_id'] && model['code'] && model['label']){%>
13
- return undefined
14
+ const data = undefined
14
15
  <%} else{%>
15
- return {
16
+
17
+ const data = {
16
18
  <% if(it.models?.[modelname] && it.models[modelname]?.model && Object.keys(it.models[modelname]?.model).length === 0) { %>
17
19
  // Dynamic Object
18
- <% } else { %>
19
- _id : uuid,
20
- <% } %>
20
+ <% } else if(modelname.toLowerCase() ==it.resourceName.toLowerCase()){ %>
21
+
22
+ __v:0,
23
+ <% } %>
21
24
 
22
25
  <%Object.keys(it.models[modelname].model).forEach(function(key){%>
23
26
  <%let field=it.models[modelname].model[key]%>
24
27
 
25
28
  <%if(key=='_id'){ %>
26
- // skip cause already hardcoded
29
+
30
+ _id : uuid,
27
31
  <%}else if(key=='tenantId'){ %>
28
32
  tenantId : 0,//it will override by save handle
29
33
  <%}else if(key=='orgId'){ %>
@@ -41,18 +45,20 @@ export const Default<%=modelname%> = (uuid:string)=>{
41
45
  <%} else if(field.type=='boolean' ){%>
42
46
  <%=key%> :false ,
43
47
  <%} else if(typeof field=='string'){%>
44
- <%=key%> : Default<%= field %>(''),
48
+ <%=key%> : Default<%= toTypeName(it.resourceName ,field) %>(''),
45
49
  <%} else if(field.type=='string'){%>
46
50
  <%=key%> : '<%= field.default %>',
47
51
  <%} else if(Array.isArray(field) && ['string','integer','number','boolean'].includes(field[0])) {%>
48
52
  <%=key%> : <<%=field[0]%>[]>[], //typeof field == array <%~JSON.stringify(field)%>
49
53
  <%} else if(Array.isArray(field)) {%>
50
- <%=key%> : [Default<%=field[0]%>(crypto.randomUUID())], //typeof field == array <%~JSON.stringify(field)%>
54
+ <%=key%> : [Default<%= toTypeName(it.resourceName ,field[0])%>(crypto.randomUUID())], //typeof field == array <%~JSON.stringify(field)%>
51
55
  <%} else {%>
52
56
  <%=key%> : <%=field.default%>, //else <%= typeof field %>
53
57
  <%}%>
58
+
54
59
  <%})%>
55
60
  }
56
61
  <%}%>
62
+ return data
57
63
  }
58
64
  <%})%>
@@ -0,0 +1,16 @@
1
+ <%
2
+ const properties = it.jsonschema.properties
3
+ const fnames = Object.keys(properties)
4
+ for(const fname of fnames){
5
+ const obj = properties[fname]
6
+
7
+ if(obj.type=='string' && Array.isArray(obj.enum) && obj.enum.length>0){
8
+ %>
9
+ export enum <%=it.typename%><%= upperFirstCase(fname)%>Enum{
10
+ <%for(const val of obj.enum){
11
+ %>
12
+ <%= val.toUpperCase()%> = '<%= val %>',
13
+ <%}%>
14
+ }
15
+ <%}%>
16
+ <%}%>
@@ -1,32 +1,10 @@
1
- /**
2
- * This file was automatically generated by simpleapp generator. Every
3
- * MODIFICATION OVERRIDE BY GENERATEOR
4
- * last change 2024-02-23
5
- * Author: Ks Tan
6
- */
7
- <% const schema = it.schema %>
8
- <% const typeclass = it.doctype+'type' %>
9
- import { Schema } from 'mongoose';
10
- import { <%Object.keys(it.models).forEach(function(key) { %> <%=key %>, <%})%> } from '../types/<%= it.doctype %>.type';
11
- const schemasetting = {
12
-
13
- <%Object.keys(it.schema).forEach(function(key) { %>
14
-
15
- <% if(key == '_id'){%>
16
- <%= key %>: {type:'string', required:true}, //force _id as string
17
- <% } else if(typeof schema[key] == 'string') {%>
18
- <%= key %>: {type: <<%=schema[key]%>>{}, required:false}, //object
19
- <% }else if( Array.isArray( schema[key])){%>
20
- <%= key %>: [{type: <<%=schema[key]%>>{}, required:false}], //custom array
21
- <% }else if( schema[key].type == 'array'){%>
22
- <%= key %>: [{type: <%= schema[key].item.type %>, required:false}] //basic array
23
- <% }else{%>
24
- <%= key %>: {type: <%= capitalizeFirstLetter(schema[key].type) %>, required: <% if(key==it.autocompletecode || key==it.autocompletename){%>true<%}else{%>false<%}%>}, //field
25
- <% } %>
26
- <%}) %>
27
- };
1
+ import { <%=capitalizeFirstLetter(it.resourceName) %>} from './<%= camelToKebab(it.resourceName) %>.schema'
2
+ import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
3
+ import * as mongoose from 'mongoose';
4
+
5
+ // create mongodb schema
28
6
 
29
- export const <%= capitalizeFirstLetter(it.name) %>MongoSchema = new Schema(schemasetting,{collection: '<%= it.name %>'})
7
+ export const <%= capitalizeFirstLetter(it.typename) %>MongoSchema = SchemaFactory.createForClass(<%= it.typename %>)
30
8
  .pre('save', function(next) {
31
9
  this.increment();
32
10
  return next();
@@ -0,0 +1,26 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * MODIFICATION OVERRIDE BY GENERATEOR
4
+ * last change 2024-04-02
5
+ * Author: Ks Tan
6
+ */
7
+ import { Module } from '@nestjs/common';
8
+ import { MongooseModule } from '@nestjs/mongoose';
9
+ import { <%= it.typename%>Service } from './<%= camelToKebab(it.resourceName)%>.service';
10
+ import { <%= it.typename%>Controller } from './<%= camelToKebab(it.resourceName)%>.controller';
11
+ import { <%= it.typename%>MongoSchema } from './<%= camelToKebab(it.resourceName)%>.model';
12
+ import { <%= it.typename%>Resolver } from './<%= camelToKebab(it.resourceName)%>.resolver';
13
+
14
+ import { DocumentNoFormatModule} from 'src/simple-app/.core/features/document-no-format/document-no-format.module';
15
+ import { SimpleAppLogModule } from 'src/simple-app/.core/features/log/log.module';
16
+ import { SimpleAppWebhookModule } from 'src/simple-app/.core/features/webhook/webhook.module';
17
+ @Module({
18
+ imports: [ DocumentNoFormatModule,SimpleAppLogModule,SimpleAppWebhookModule,
19
+ MongooseModule.forFeature([
20
+ { name: '<%= it.typename%>', schema: <%= it.typename%>MongoSchema },
21
+ ])],
22
+ controllers: [<%= it.typename%>Controller],
23
+ providers: [<%= it.typename%>Service,<%= it.typename%>Resolver ],
24
+ exports: [MongooseModule,<%= it.typename%>Service,<%= it.typename%>Resolver ],
25
+ })
26
+ export class <%= it.typename%>Module {}
@@ -5,15 +5,18 @@
5
5
  * Author: Ks Tan
6
6
  */
7
7
  import { Resolver, Query, Mutation, Args, ID,Context } from '@nestjs/graphql';
8
- import * as schemas from '../apischemas';
9
- import { AppUser } from '../commons/decorators/appuser.decorator';
10
- import { UserContext } from '../commons/user.context';
11
- import { <%= it.typename %>, <%= it.typename %>Service } from '../../services/<%= it.doctype.toLowerCase() %>.service';
12
- import { Roles } from '../commons/roles/roles.decorator';
13
- import { Role } from '../commons/roles/roles.enum';
14
-
15
8
  import { Request } from '@nestjs/common';
16
9
 
10
+ import * as schemas from './<%= camelToKebab(it.resourceName) %>.schema';
11
+ import { <%= it.typename %>Service } from './<%= camelToKebab(it.resourceName) %>.service';
12
+
13
+ import { AppUser } from 'src/simple-app/.core/features/user-context/appuser.decorator';
14
+ import { UserContext } from 'src/simple-app/.core/features/user-context/user.context';
15
+ import { Roles } from 'src/simple-app/.core/features/auth/role-guard/roles.decorator';
16
+ import { Role } from 'src/simple-app/.core/features/auth/role-guard/roles.enum';
17
+
18
+
19
+
17
20
  <% const getFieldType =(proptype, typename,actionname)=>{
18
21
  const systemtypes = ['Boolean','boolean','string','String','number','Number','object','Object','integer','Integer']
19
22
  if(!typename) throw actionname +" undefine schema";
@@ -48,7 +51,7 @@ export class <%= it.typename %>Resolver {
48
51
  @Roles(Role.SuperAdmin,Role.SuperUser,Role.<%= `${it.typename}_search`%>)
49
52
  <%}%>
50
53
  @Query(() => [schemas.<%= it.typename %>])
51
- async <%= it.name %>s(@AppUser() appuser: UserContext): Promise<<%= it.typename %>[]> {
54
+ async <%= it.name %>s(@AppUser() appuser: UserContext): Promise<schemas.<%= it.typename %>[]> {
52
55
 
53
56
  return await this.service.search(appuser,undefined,undefined,undefined)
54
57
  }
@@ -60,7 +63,7 @@ export class <%= it.typename %>Resolver {
60
63
  @Roles(Role.SuperAdmin,Role.SuperUser,Role.<%= `${it.typename}_search`%>)
61
64
  <%}%>
62
65
  @Query(() => schemas.<%= it.typename %>)
63
- async <%= it.name %>(@AppUser() appuser: UserContext,@Args('id', { type: () => ID } ) id: string): Promise<<%= it.typename %>> {
66
+ async <%= it.name %>(@AppUser() appuser: UserContext,@Args('id', { type: () => ID } ) id: string): Promise<schemas.<%= it.typename %>> {
64
67
 
65
68
  return await this.service.findById(appuser,id)
66
69
  }
@@ -75,52 +78,5 @@ export class <%= it.typename %>Resolver {
75
78
 
76
79
  /***************************** begin additionalAPI definations *****************************************/
77
80
 
78
- <% for(let i=0;i<it.apiSettings.length;i++){%>
79
- <% let api = it.apiSettings[i] %>
80
- <% if(api.method!='get') continue %>
81
- <%if(superadmindoctype.includes(it.doctype)){%>
82
- @Roles(Role.SuperAdmin,
83
- <%if(api.requiredRole && api.requiredRole.length>0) { %>
84
- <% for(let r=0;r<api.requiredRole.length;r++){%>Role.<%=api.requiredRole[r]%>,<%}%>
85
- <%}%>
86
- )
87
- <%}else{%>
88
- @Roles(Role.SuperAdmin,Role.SuperUser,
89
- <%if(api.requiredRole && api.requiredRole.length>0) { %>
90
- <% for(let r=0;r<api.requiredRole.length;r++){%>Role.<%=api.requiredRole[r]%>,<%}%>
91
- <%}%>
92
- )
93
- <%}%>
94
- @Query(()=> <%= getFieldType('schema',api.responseType,api.action)%>)
95
-
96
-
97
-
98
- async <%= it.name %><%=capitalizeFirstLetter(api.action) %>(
99
- @AppUser() appuser: UserContext,
100
- <% if(api.entryPoint && api.entryPoint.includes(':')) {%>
101
- <%let subpath = api.entryPoint.split('/')%>
102
- <% for(let a=0;a<subpath.length;a++){%>
103
- <%const partstr = subpath[a]%>
104
- <%if(partstr.includes(':')){%>
105
- <% const paraname = partstr.replace(':','') %>
106
- @Args('<%=paraname%>') <%=paraname%>: string,
107
- <%}%>
108
- <%}%>
109
- <%}%>
110
- ){
111
-
112
- return await this.service.run<%=capitalizeFirstLetter(api.action)%>(appuser,<% if(api.entryPoint && api.entryPoint.includes(':')) {%>
113
- <%let subpath = api.entryPoint.split('/')%>
114
- <% for(let a=0;a<subpath.length;a++){%>
115
- <%const partstr = subpath[a]%>
116
- <%if(partstr.includes(':')){%>
117
- <% const paraname = partstr.replace(':','') %>
118
- <%=paraname%>,
119
- <%}%>
120
- <%}%>
121
- <%}%>
122
- )
123
- }
124
- <%}%>
125
81
  /***************************** end additionalAPI definitions *****************************************/
126
82
  }
@@ -0,0 +1,133 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * MODIFICATION OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-23
5
+ * Author: Ks Tan
6
+ */
7
+ import { ApiProperty } from '@nestjs/swagger';
8
+ import { Field, ObjectType,ID } from '@nestjs/graphql';
9
+ import GraphQLJSON, { GraphQLJSONObject } from 'graphql-type-json';
10
+ import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
11
+ import * as mongoose from 'mongoose';
12
+
13
+ export * from 'src/simple-app/.core/framework/schemas';
14
+
15
+ <%
16
+ const getFieldType =(proptype, typename,actionname)=>{
17
+ const systemtypes = ['Boolean','boolean','string','String','number','Number','object','Object','integer','Integer']
18
+ if(!typename) throw actionname +" undefine schema";
19
+ let tmptypename = typename.replace('[','').replace(']','')
20
+ if(proptype=='schema'){
21
+ tmptypename= upperFirstCase(tmptypename)
22
+ }
23
+
24
+ if(typename.includes('[')){
25
+ return proptype=='schema' ? `[${tmptypename}]` : `${tmptypename}[]`
26
+ }else{
27
+ return tmptypename
28
+ }
29
+ }
30
+ %>
31
+
32
+ <% const draw = (it, obj, key, currentModelName) => { %>
33
+ <%
34
+ let required = false;
35
+ const currentModel = it.models?.[currentModelName];
36
+ if (currentModel && (currentModel.required ?? []).includes(key)) {
37
+ required = true;
38
+ }
39
+ %>
40
+
41
+ <% if(typeof obj == 'string') {%>
42
+ <% // This Is Dynamic Object %>
43
+ <% if(it.models?.[obj] && it.models[obj]?.model && Object.keys(it.models[obj]?.model).length === 0) { %>
44
+ @Prop({type: Object})
45
+ @Field(()=>GraphQLJSON)
46
+ @ApiProperty({ type:()=>Object,required: <%= required %>, default: {} })
47
+ <%= key %> <%=required ? '' :'?' %>: Object;
48
+ <% } else { %>
49
+
50
+ @Prop()
51
+ @Field()
52
+ <% const newtypename= toTypeName(it.resourceName ,obj) %>
53
+ @ApiProperty({type: ()=><%=newtypename%>, required: <%= required %>})
54
+ <%= key %> <%=required ? '' :'?' %>: <%= newtypename %>;
55
+ <% } %>
56
+ <%} else if(typeof obj.default !='undefined' && JSON.stringify(obj.default)=='{}'){%>
57
+ @Prop({type: Object})
58
+ @Field(()=>GraphQLJSON)
59
+ @ApiProperty({ type:()=>Object,required: <%= required %>, default: {} })
60
+ <%= key %> <%=required ? '' :'?' %>: Object;
61
+ <% } else if( Array.isArray( obj)){%>
62
+
63
+ <% const newtypename= toTypeName(it.resourceName ,obj[0])%>
64
+ @Prop()
65
+ @Field(() => [<%=newtypename %>])
66
+ @ApiProperty({type: ()=>[<%= newtypename %>], required: <%= required %> })
67
+ <%= key %> <%=required ? '' :'?' %>: <%= newtypename %>[];
68
+ <% }else{%>
69
+ @Prop()
70
+ @Field()
71
+ @ApiProperty({type: () => <%= getFieldType('schema', obj.type,'') %> , required: <%= required %>})
72
+ <%= key %> <%=required ? '' :'?' %>: <%= getFieldType('type', obj.type,'') %>;
73
+ <% } %>
74
+ <% } %>
75
+
76
+ <%Object.keys(it.models).forEach(function(name) { %>
77
+
78
+ <% let schema = it.models[name].model %>
79
+
80
+ <% // Skip Draw Dynamic Object Class %>
81
+
82
+
83
+ @ObjectType()
84
+ @Schema({collection:'<%= name.toLowerCase() %>'})
85
+ export class <%= toTypeName(it.resourceName ,name) %> {
86
+ <% const thisObjKeys = Object.keys(schema) %>
87
+ <% if(thisObjKeys.length==0){%>
88
+
89
+ <% } %>
90
+
91
+
92
+ <% if(name.toLowerCase() ==it.resourceName.toLowerCase()){ %>
93
+ __v?:number;
94
+ <% } %>
95
+ <% Object.keys(schema).forEach(function(key) { %>
96
+ <% let obj = schema[key] %>
97
+ <% draw(it, obj, key, name) %>
98
+ <% }) %>
99
+ }
100
+ <%}) %>
101
+
102
+ /***************************************** Start Auto Complete *****************************************/
103
+ <% const autoCompleteModelName = it.typename + 'AutoComplete'; %>
104
+ @ObjectType()
105
+ @Schema()
106
+ export class <%=autoCompleteModelName %> {
107
+ @Prop()
108
+ @Field()
109
+ @ApiProperty({ type: String, required: true, default: '' })
110
+ _id: string;
111
+
112
+ @Prop()
113
+ @Field()
114
+ @ApiProperty({ type: String, required: true, default: '' })
115
+ code: string;
116
+
117
+ @Prop()
118
+ @Field()
119
+ @ApiProperty({ type: String, required: true, default: '' })
120
+ label: string;
121
+
122
+ <% if(it.moreAutoComplete && Array.isArray(it.moreAutoComplete)) { %>
123
+ <% it.moreAutoComplete.forEach(function(field){ %>
124
+ <% draw(it, it.models[it.apiSchemaName].model[field], field, autoCompleteModelName) %>
125
+
126
+ <% }) %>
127
+ <% } %>
128
+ }
129
+ /****************************************** End Auto Complete ******************************************/
130
+
131
+ /************************************** Customized Code Begin Here *************************************/
132
+ <%~ it.apiSchemaCode %>
133
+
@@ -1,89 +1,102 @@
1
1
  /**
2
- * This file was automatically generated by simpleapp generator. It is changable
3
- * --remove-this-line-to-prevent-override--
4
- * last change 2024-02-23
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * MODIFICATION OVERRIDE BY GENERATEOR
4
+ * last change 2024-07-10
5
5
  * Author: Ks Tan
6
+ * Last Modified By: Yong Xiang
6
7
  */
8
+
7
9
 
10
+ import { UserContext } from 'src/simple-app/.core/features/user-context/user.context'
11
+ import * as sharelibs from 'src/simple-app/.core/share-libs'
12
+ import { Injectable,Inject,forwardRef } from '@nestjs/common';
8
13
  import { InjectModel } from '@nestjs/mongoose';
14
+ import jsonpath from 'jsonpath'
9
15
  import { Model } from 'mongoose';
10
- import { Injectable } from '@nestjs/common';
11
- import { UserContext } from '../generate/commons/user.context';
12
- import { <%= it.typename %>Processor } from '../generate/processors/<%= it.doctype %>.processor';
13
- //import { <%= it.typename %>,<%= it.typename %>Hooks} from '../generate/types';
14
- import * as types from '../generate/types';
15
- export { <%= it.typename %>} from '../generate/types';
16
- <% const getFieldType =(proptype, typename,actionname)=>{
17
- const systemtypes = ['Boolean','boolean','string','String','number','Number','object','Object','integer','Integer']
18
- console.log("run service typename----",typename)
19
- if(!typename) throw actionname +" undefine schema";
16
+ import {<%= it.typename%>JsonSchema } from './<%= camelToKebab(it.resourceName) %>.jsonschema'
17
+ import { SimpleAppService } from 'src/simple-app/.core/framework/base/simple-app.service';
18
+ import { IsolationType } from 'src/simple-app/.core/framework/schemas';
19
+ import { EventEmitter2 } from '@nestjs/event-emitter';
20
+ import { DocumentNoFormatService } from 'src/simple-app/.core/features/document-no-format/document-no-format.service';
20
21
 
21
- let tmptypename = typename.replace('[','').replace(']','')
22
-
23
- if(systemtypes.includes(tmptypename)){
24
- if(proptype=='type' ) tmptypename =tmptypename.toLowerCase();
25
- }else if(proptype=='schema'){
26
- tmptypename= 'schemas.'+tmptypename
27
- }else{ //type
28
- tmptypename= 'types.'+tmptypename
29
- }
22
+ import * as defaultValue from './<%= camelToKebab(it.resourceName) %>.default'
23
+ import * as schema from './<%= camelToKebab(it.resourceName) %>.schema';
24
+ import { SimpleAppLogService } from 'src/simple-app/.core/features/log/log.service';
25
+ import { RunWebhookService } from 'src/simple-app/.core/features/webhook/run-webhook.service';
26
+ //export * from './<%= camelToKebab(it.resourceName) %>.schema';
30
27
 
31
- if(typename.includes('[')){
32
- return proptype=='schema' ? `[${tmptypename}]` : `${tmptypename}[]`
33
- }else{
34
- return tmptypename
35
- }
36
- }
37
- %>
28
+
29
+ <%if(it.jsonschema['x-import-lib']) {%>
30
+ <%let libs = it.jsonschema['x-import-lib'] %>
31
+ <%for(let l = 0; l< libs.length; l++) { %>
32
+ import * as <%=libs[l].importAs %> from '<%=libs[l].importFrom %>'
33
+ <%}%>
34
+ <%}%>
38
35
 
39
36
  @Injectable()
40
- export class <%= it.typename %>Service extends <%= it.typename %>Processor {
41
- <% const config = it.jsonschema['x-simpleapp-config']%>
42
- <%if(config['loseDataIsolation']){%>protected strictIsolation = false;<%}%>
43
-
44
- //protected hooks: types.<%= it.typename %>Hooks = {}
37
+ export class <%= it.typename %>Service extends SimpleAppService<schema.<%= it.typename %>> {
38
+ protected documentIdentityCode='<%~ it.autocompletecode %>' as keyof schema.<%= it.typename %>;
39
+ protected documentIdentityLabel ='<%~ it.autocompletename %>' as keyof schema.<%= it.typename %> ;
40
+
41
+ <% if(skipIsolationDocument().includes(it.name.toLowerCase())) {%>
42
+ protected strictIsolation = false;
43
+ <%}%>
44
+ <%if(it.jsonschema['x-simpleapp-config']['generateDocumentNumber']){%>
45
+ protected withDocNumberFormat = true;
46
+ <%}%>
47
+
48
+ protected foreignkeys = <%~ JSON.stringify(it.foreignkeys)%>;
45
49
  constructor(
46
- @InjectModel('<%= it.typename %>') mydoc: Model<types.<%= it.typename %>>
47
- ){
48
- super(mydoc)
50
+ @InjectModel('<%= it.typename %>') mydoc: Model<schema.<%= it.typename %>>,
51
+ @Inject(forwardRef(() => EventEmitter2)) event2:EventEmitter2,
52
+ docNoGen:DocumentNoFormatService,
53
+ logSvc: SimpleAppLogService,
54
+ webhookSvc:RunWebhookService
55
+ ) {
56
+ super('<%= it.doctype.toUpperCase() %>','<%= it.name %>',mydoc,IsolationType.<%=it.isolationtype%>,event2,docNoGen,logSvc,webhookSvc);
57
+ this.setSchema(<%= it.typename%>JsonSchema)
58
+ this.setData(defaultValue.Default<%=it.typename%>(crypto.randomUUID()))
59
+ <%if(it.moreAutoComplete.length>0){%>
60
+ this.addAutoCompleteField({
61
+ <%Object.keys(it.moreAutoComplete).forEach(function(key) { %>
62
+ <% let f=it.moreAutoComplete[key] %>
63
+ <%~ `${f}: '${f}'` %>,
64
+ <%})%>
65
+ })
66
+ <%}%>
49
67
  }
68
+ <%if(it.jsonschema.properties['readOnly'] || it.jsonschema.properties['documentStatus']){%>
69
+ public isReadOnly():boolean{
70
+ <%if(it.jsonschema.properties['readOnly']){%>
71
+ if(this.data.readOnly) return true
72
+ <%}%>
73
+ <%if(it.jsonschema.properties['documentStatus']){%>
74
+ const docstatus = this.data.documentStatus
75
+ const statussetting = this.jsonschema['x-simpleapp-config'].allStatus?.find((item)=>item.status==docstatus)
76
+ if(statussetting && statussetting.readOnly) return true
77
+ <%}%>
78
+ return false
79
+ }
80
+ <%}%>
50
81
 
51
- /***************************** begin x-document-api definitions *****************************************/
52
- /*
53
- <% for(let i=0;i<it.apiSettings.length;i++){%>
54
- <% let api = it.apiSettings[i] %>
55
- async run<%= capitalizeFirstLetter(api.action) %>(
56
- appuser: UserContext,
57
- <% if(api.entryPoint && api.entryPoint.includes(':')) {%>
58
- <%let subpath = api.entryPoint.split('/')%>
59
- <% for(let a=0;a<subpath.length;a++){%>
60
- <%const partstr = subpath[a]%>
61
- <%if(partstr.includes(':')){%>
62
- <% const paraname = partstr.replace(':','') %>
63
- <%=paraname%>: string,
64
- <%}%>
65
- <%}%>
66
- <%}%>
67
- <% if(api.queryPara && api.queryPara.length>0) {%>
68
- <%for(let q=0;q<api.queryPara.length; q++){%>
69
- <% const qp = api['queryPara'][q] %>
70
- <%=qp%>: string,
71
- <%}%>
72
- <%}%>
73
-
74
- <%if(['post','put','patch'].includes(api.method.toLowerCase())){%>
75
- data:<%= getFieldType('schema',api.schema,api.action)%>,
76
- <%}%>
82
+ reCalculateValue(data:schema.<%= it.typename %>){
83
+ //console.log('trigger new recalculate')
84
+ const $data = data;
85
+ <% if(it.jsonschema['x-simpleapp-config']['formulas']){ %>
86
+ <%Object.keys(it.jsonschema['x-simpleapp-config']['formulas']).forEach(function(index) { %>
87
+ <% let fml = it.jsonschema['x-simpleapp-config']['formulas'][index] %>
88
+ // <%~ JSON.stringify(fml) %>
89
+ //const tmp = jsonpath.query(vdata,fieldpath).filter((item:string)=>item!='')
90
+
91
+ jsonpath.apply($data, '<%~ fml.jsonPath %>', function($item:any) { return <%~fml.formula %> });
77
92
 
78
- ){
79
- <%if (api.workflowSetting && api.workflowSetting.bpmn){ %>
80
- return this.startWorkflow(appuser,'<%=api.workflowSetting.bpmn%>',data)
81
- <%} else {%>
82
- return "OK"
83
- <%}%>
84
- }
85
- <%}%>
86
- */
93
+ <%}) %>
94
+ <%} %>
95
+
96
+ }
97
+
98
+
99
+ /***************************** additional execute *****************************************/
100
+
87
101
 
88
- /***************************** end x-document-api definitions *****************************************/
89
102
  }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. It is changable
3
+ * Modification will be overriden
4
+ * last change 2024-02-23
5
+ * Author: Ks Tan
6
+ */
7
+ import { EventEmitter2 } from '@nestjs/event-emitter';
8
+ import { InjectModel } from '@nestjs/mongoose';
9
+ import { Model } from 'mongoose';
10
+ import { Injectable } from '@nestjs/common';
11
+ import { UserContext } from 'src/simple-app/.core/commons/user.context';
12
+ import { <%= it.typename %>Entity } from './<%= camelToKebab(it.resourceName) %>.entity';
13
+ import * as schema from './<%= camelToKebab(it.resourceName) %>.schema';
14
+ export { <%= it.typename %>} from './<%= camelToKebab(it.resourceName) %>.schema';
15
+ <% const getFieldType =(proptype, typename,actionname)=>{
16
+ const systemtypes = ['Boolean','boolean','string','String','number','Number','object','Object','integer','Integer']
17
+ console.log("run service typename----",typename)
18
+ if(!typename) throw actionname +" undefine schema";
19
+
20
+ let tmptypename = typename.replace('[','').replace(']','')
21
+
22
+ if(systemtypes.includes(tmptypename)){
23
+ if(proptype=='type' ) tmptypename =tmptypename.toLowerCase();
24
+ }else if(proptype=='schema'){
25
+ tmptypename= 'schemas.'+tmptypename
26
+ }else{ //type
27
+ tmptypename= 'types.'+tmptypename
28
+ }
29
+
30
+ if(typename.includes('[')){
31
+ return proptype=='schema' ? `[${tmptypename}]` : `${tmptypename}[]`
32
+ }else{
33
+ return tmptypename
34
+ }
35
+ }
36
+ %>
37
+
38
+ @Injectable()
39
+ export class <%= it.typename %>Service extends <%= it.typename %>Entity {
40
+ <% const config = it.jsonschema['x-simpleapp-config']%>
41
+ <%if(config['loseDataIsolation']){%>protected strictIsolation = false;<%}%>
42
+
43
+ //protected hooks: types.<%= it.typename %>Hooks = {}
44
+ constructor(
45
+ @InjectModel('<%= it.typename %>') mydoc: Model<schema.<%= it.typename %>>,
46
+ private emitter:EventEmitter2,
47
+ ){
48
+ super(mydoc,emitter)
49
+ }
50
+ }
@@ -4,9 +4,12 @@
4
4
  * last change 2024-02-23
5
5
  * Author: Ks Tan
6
6
  */
7
- <%Object.keys(it.models).forEach(function(modelname) { %>
8
- export const Default<%=modelname%> = (uuid:string)=>{
9
- // <%~ JSON.stringify(it.models[modelname].model) %>
7
+ <%
8
+ Object.keys(it.models).forEach(function(modelname) {
9
+ const newmodelname = toTypeName(it.resourceName,modelname)
10
+ %>
11
+
12
+ export const Default<%=newmodelname%> = (uuid:string)=>{
10
13
  <% let model = it.models[modelname].model%>
11
14
  <% if(model['_id'] && model['code'] && model['label']){%>
12
15
  return undefined
@@ -14,8 +17,6 @@ export const Default<%=modelname%> = (uuid:string)=>{
14
17
  return {
15
18
  <% if(it.models?.[modelname] && it.models[modelname]?.model && Object.keys(it.models[modelname]?.model).length === 0) { %>
16
19
  // Dynamic Object
17
- <% } else { %>
18
- _id : uuid,
19
20
  <% } %>
20
21
 
21
22
 
@@ -25,6 +26,7 @@ export const Default<%=modelname%> = (uuid:string)=>{
25
26
 
26
27
  <%if(key=='_id'){ %>
27
28
  // skip cause already hardcoded
29
+ _id : uuid,
28
30
  <%}else if(key=='doctype'){ %>
29
31
  doctype : '<%=it.doctype.toUpperCase()%>',
30
32
  <%}else if(key=='tenantId'){ %>
@@ -42,14 +44,14 @@ export const Default<%=modelname%> = (uuid:string)=>{
42
44
  <%} else if(field.type=='boolean' ){%>
43
45
  <%=key%> :false ,
44
46
  <%} else if(typeof field=='string'){%>
45
- <%=key%> : Default<%= field %>(''), //<%= field%>
47
+ <%=key%> : Default<%= toTypeName(it.resourceName,field) %>(''), //<%= field%>
46
48
  <%} else if(field.type=='string'){%>
47
49
  <%=key%> : '<%= field.default %>',
48
50
 
49
51
  <%} else if(Array.isArray(field) && ['string','integer','number','boolean'].includes(field[0])) {%>
50
- <%=key%> : <<%=field[0]%>[]>[], //typeof field == array <%~JSON.stringify(field)%>
52
+ <%=key%> : <<%=field[0]%>[]>[], //typeof field == array %>
51
53
  <%} else if(Array.isArray(field)) {%>
52
- <%=key%> : [Default<%=field[0]%>(randomUUID())], //typeof field == array <%~JSON.stringify(field)%>
54
+ <%=key%> : [Default<%= toTypeName(it.resourceName,field[0]) %>(randomUUID())], //typeof field == array %>
53
55
  <%} else {%>
54
56
  <%=key%> : <%=field.default%>, //else <%= typeof field %>
55
57
  <%}%>