@simitgroup/simpleapp-generator 1.2.6 → 1.2.7

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 (67) hide show
  1. package/README.md +6 -0
  2. package/dist/buildinschemas/organization.js +2 -2
  3. package/dist/buildinschemas/organization.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/buildinschemas/organization.ts +2 -2
  6. package/templates/basic/nest/controller.ts.eta +25 -21
  7. package/templates/basic/nest/service.ts.eta +5 -5
  8. package/templates/basic/nuxt/default.ts.eta +1 -1
  9. package/templates/basic/nuxt/pages.form.vue.eta +4 -4
  10. package/templates/basic/nuxt/pages.landing.vue.eta +9 -0
  11. package/templates/basic/nuxt/pages.viewer.vue.eta +4 -3
  12. package/templates/basic/nuxt/simpleapp.generate.client.ts.eta +6 -17
  13. package/templates/nest/src/simpleapp/apischemas/index.ts._eta +10 -0
  14. package/templates/nest/src/simpleapp/generate/apischemas/index.ts.eta +7 -19
  15. package/templates/nest/src/simpleapp/generate/apischemas/simpleapp.apischema.ts.eta +20 -0
  16. package/templates/nest/src/simpleapp/generate/commons/user.context.ts.eta +9 -3
  17. package/templates/nest/src/simpleapp/generate/types/index.ts.eta +3 -3
  18. package/templates/nest/src/simpleapp/generate/types/simpleapp.type.ts.eta +1 -4
  19. package/templates/nest/src/simpleapp/types/index.ts._eta +7 -0
  20. package/templates/nuxt/assets/css/calendar.css._eta +37 -0
  21. package/templates/nuxt/assets/css/style.css._eta +3 -2
  22. package/templates/nuxt/assets/primevue/passthrough.ts._eta +16 -5
  23. package/templates/nuxt/components/button/ButtonDanger.vue._eta +6 -0
  24. package/templates/nuxt/components/button/ButtonDefault.vue._eta +6 -0
  25. package/templates/nuxt/components/button/ButtonPrimary.vue._eta +6 -0
  26. package/templates/nuxt/components/button/ButtonWarning.vue._eta +6 -0
  27. package/templates/nuxt/components/calendar/CalendarByResource.vue.eta +167 -0
  28. package/templates/nuxt/components/calendar/CalendarSmall.vue.eta +74 -0
  29. package/templates/nuxt/components/docPage/DocPageList.vue.eta +48 -40
  30. package/templates/nuxt/components/event/EventDocumentViewer.vue._eta +10 -10
  31. package/templates/nuxt/components/header/HeaderBar.vue._eta +25 -12
  32. package/templates/nuxt/components/renderer/RendererBoolean.vue.eta +6 -1
  33. package/templates/nuxt/components/renderer/RendererDate.vue.eta +6 -0
  34. package/templates/nuxt/components/renderer/RendererForeignKey.vue.eta +7 -1
  35. package/templates/nuxt/components/renderer/RendererLink.vue.eta +33 -0
  36. package/templates/nuxt/components/renderer/RendererMoney.vue.eta +11 -1
  37. package/templates/nuxt/components/renderer/RendererMultiText.vue.eta +6 -0
  38. package/templates/nuxt/components/renderer/RendererViewer.vue.eta +32 -0
  39. package/templates/nuxt/components/renderer/{index.ts.eta → index.ts._eta} +10 -2
  40. package/templates/nuxt/components/simpleApp/SimpleAppAutocomplete.vue.eta +3 -3
  41. package/templates/nuxt/components/simpleApp/SimpleAppDocumentNo.vue.eta +1 -1
  42. package/templates/nuxt/components/simpleApp/SimpleAppFieldContainer.vue.eta +1 -1
  43. package/templates/nuxt/components/simpleApp/SimpleAppForm.vue.eta +1 -1
  44. package/templates/nuxt/components/simpleApp/SimpleAppFormToolBar.vue.eta +3 -2
  45. package/templates/nuxt/components/simpleApp/SimpleAppInput.vue.eta +1 -1
  46. package/templates/nuxt/components/simpleApp/pending/SimpleAppValue.vue +1 -1
  47. package/templates/nuxt/composables/screensize.generate.ts.eta +1 -0
  48. package/templates/nuxt/composables/stringHelper.generate.ts.eta +3 -1
  49. package/templates/nuxt/error.vue._eta +1 -1
  50. package/templates/nuxt/layouts/default.vue._eta +47 -8
  51. package/templates/nuxt/nuxt.config.ts._eta +5 -1
  52. package/templates/nuxt/pages/[xorg]/index.vue._eta +11 -9
  53. package/templates/nuxt/pages/[xorg]/organization.vue.eta +5 -0
  54. package/templates/nuxt/plugins/10.simpleapp-event.ts.eta +13 -2
  55. package/templates/nuxt/plugins/20.simpleapp-userstore.ts.eta +6 -0
  56. package/templates/nuxt/types/calendar.ts.eta +54 -0
  57. package/templates/nuxt/types/documentlist.ts.eta +6 -0
  58. package/templates/nuxt/types/events.ts.eta +5 -5
  59. package/templates/nuxt/types/index.ts._eta +4 -3
  60. package/templates/nuxt/types/listview.ts.eta +6 -0
  61. package/templates/nuxt/types/notifications.ts.eta +6 -1
  62. package/templates/nuxt/types/others.ts.eta +6 -1
  63. package/templates/nuxt/types/schema.ts.eta +8 -0
  64. package/templates/nuxt/types/simpleappinput.ts.eta +6 -0
  65. package/templates/nuxt/types/user.ts.eta +8 -0
  66. package/templates/nuxt/types/workflow.ts.eta +6 -1
  67. package/tsconfig.tsbuildinfo +1 -1
@@ -26,7 +26,7 @@ import SimpleAppValue from './SimpleAppValue.vue'
26
26
  import {ref} from 'vue'
27
27
 
28
28
 
29
- const uuid = crypto.randomUUID();
29
+ const uuid = randomUUID();
30
30
  // const fieldlabel = ref('')
31
31
  // const fielddesc = ref('')
32
32
  const defaultcssclass='simpleapp-input-container'
@@ -34,7 +34,7 @@ import _, { upperFirst } from 'lodash'
34
34
  type keytype = keyof defaulttype
35
35
 
36
36
  const x : keytype = 'Default'+ props.document.getDocName(true) as keytype
37
- const defaultvalue = alldefaults[x](crypto.randomUUID())
37
+ const defaultvalue = alldefaults[x](randomUUID())
38
38
  return {
39
39
  path: path,
40
40
  key: _.last(path.split('/')),
@@ -1,14 +1,15 @@
1
1
  <template>
2
+ <!-- dont modify this component -->
2
3
  <div class="simpleapp-tool-bar flex flex-row text-left gap-4">
3
4
  <div v-for="(menu,index) in menus" :key="index">
4
5
  <div>
5
- <Button v-if="showMenuButton(menu)" @click="emitEvent(menu,$event)">{{ menu.label }}</Button>
6
+ <ButtonDefault v-if="showMenuButton(menu)" @click="emitEvent(menu,$event)">{{ menu.label }}</ButtonDefault>
6
7
  </div>
7
8
 
8
9
  </div>
9
10
  <div v-for="(menu,index) in getDocActions()" :key="index">
10
11
  <div>
11
- <Button @click="emitEvent(menu,$event)">{{ menu.label }}</Button>
12
+ <ButtonDefault @click="emitEvent(menu,$event)">{{ menu.label }}</ButtonDefault>
12
13
  </div>
13
14
 
14
15
  </div>
@@ -172,7 +172,7 @@ import Slider,{ SliderProps } from 'primevue/slider';
172
172
  import Textarea, { TextareaProps } from 'primevue/textarea';
173
173
  import {SimpleAppInputType} from '~/types'
174
174
 
175
- const modelValue = defineModel()
175
+ const modelValue = defineModel({required:true})
176
176
  const datevalue = ref('')
177
177
  const timevalue = ref<Date>()
178
178
 
@@ -22,7 +22,7 @@ import {camelCaseToWords} from './helper'
22
22
  import {computed,watch} from 'vue'
23
23
  import {ref} from 'vue'
24
24
  const modelValue = defineModel()
25
- const uuid = crypto.randomUUID()
25
+ const uuid = randomUUID()
26
26
  const fieldlabel = ref('')
27
27
  const fielddesc = ref('')
28
28
  const defaultcssclass='simpleapp-input-container'
@@ -0,0 +1 @@
1
+ export const isMobile = () => window.innerWidth <= 640
@@ -1,12 +1,14 @@
1
1
  import _ from 'lodash'
2
2
  import {Md5} from 'ts-md5'
3
3
  import moment from "moment";
4
+ import { v4 as uuidv4 } from 'uuid';
5
+
4
6
  export const camelCaseToWords = (s: string) =>{
5
7
  const result = s.replace(/([A-Z])/g, ' $1');
6
8
  return result.charAt(0).toUpperCase() + result.slice(1);
7
9
  }
8
10
 
9
-
11
+ export const randomUUID = ()=> uuidv4()
10
12
  export const md5=(s:string)=> new Md5().appendStr(s).end()
11
13
 
12
14
  export const getAvatarLink = (email:string, size:number):string=>{
@@ -9,7 +9,7 @@
9
9
  </div>
10
10
  <div>
11
11
  <h1 class="px-4 pt-2 pb-4 text-left text-5xl font-bold leading-10 text-gray-800">OOPS!</h1>
12
- <p class="px-4 mt mb-4 text-4xl text-left font font-bold">{{error?.statusCode}} Error</p>
12
+ <p class="px-4 mt mb-4 text-4xl text-left font font-bold">{{isNaN(error?.statusCode) ? t('server'): error?.statusCode}} Error</p>
13
13
  <p class="px-4 pb-10 text-base leading-none text-left text-red-400">{{t(error?.statusMessage)}}</p>
14
14
  <p> <Button @click="handleError" class="btn-primary">{{ t('backToHome') }}</Button></p>
15
15
  </div>
@@ -1,10 +1,49 @@
1
- <script lang="ts" setup>
2
- // import Menus from '~/components/Menus.vue'
3
- </script>
4
1
  <template>
5
- <div>
6
- <HeaderBar />
7
- <UserInvitation/>
8
- <slot></slot>
2
+ <div class="h-full flex flex-row" v-if="!isMobile()">
3
+ <div>
4
+ <HeaderButtonMenuPicker class="p-2 text-6xl cursor-pointer"></HeaderButtonMenuPicker>
5
+ <div class="" v-for="item in menus">
6
+ <div class="border">
7
+ <NuxtLink
8
+ :class="`pi ${item.iconClass} p-2 text-6xl cursor-pointer`"
9
+ :to="getDocumentUrl(item.path)"
10
+ ></NuxtLink>
11
+ </div>
12
+ </div>
13
+ </div>
14
+ <div class="flex-1">
15
+ <HeaderBar />
16
+ <UserInvitation/>
17
+ <slot></slot>
18
+ </div>
9
19
  </div>
10
- </template>
20
+ <div v-else class="mb-20">
21
+ <div v-if="getCurrentXorg()" class="border flex flex-row h-20 fixed left-0 w-full justify justify-between bottom-0 z-50 bg-white dark:bg-gray-800" >
22
+
23
+ <div v-for="item in menus">
24
+ <NuxtLink
25
+ :class="`pi ${item.iconClass} p-2 text-6xl cursor-pointer`"
26
+ :to="getDocumentUrl(item.path)"
27
+ ></NuxtLink>
28
+ </div>
29
+ <HeaderButtonMenuPicker class="p-2 text-6xl cursor-pointer"></HeaderButtonMenuPicker>
30
+ </div>
31
+ <div class="flex flex-col h-screen ">
32
+
33
+ <HeaderBar />
34
+ <UserInvitation/>
35
+ <slot></slot>
36
+
37
+ </div>
38
+ </div>
39
+ </template>
40
+ <script setup lang="ts">
41
+ const menus=[
42
+ // {iconClass:'pi-bars',path:'managestudents/profile'},
43
+ {iconClass:'pi-home',path:''},
44
+ {iconClass:'pi-users',path:'managestudents/profile'},
45
+ {iconClass:'pi-calendar',path:`manageclasses`},
46
+ // {iconClass:'pi-database',path:'managedata'},
47
+ {iconClass:'pi-chart-pie',path:'reports'},
48
+ ]
49
+ </script>
@@ -26,6 +26,9 @@ export default defineNuxtConfig({
26
26
  tailwindcss: {
27
27
  // Options
28
28
  },
29
+ devServer: {
30
+ // host: "0.0.0.0",
31
+ },
29
32
  modules: [
30
33
  // "@hebilicious/authjs-nuxt",
31
34
  '@nuxtjs/i18n',
@@ -122,7 +125,8 @@ tailwindcss: {
122
125
  // ],
123
126
  css: [
124
127
  'primeicons/primeicons.css',
125
- path.resolve(__dirname,'./assets/css/style.css')
128
+ path.resolve(__dirname,'./assets/css/style.css'),
129
+ path.resolve(__dirname,'./assets/css/calendar.css'),
126
130
  ],
127
131
 
128
132
  // devtools: { enabled: true },
@@ -1,18 +1,20 @@
1
- <script lang="ts" setup>
2
- /**
3
- * This file was automatically generated by simpleapp generator.
4
- * YOU ALLOWED TO CHANGE THIS FILE, IT WONT OVERRIDE BY GENERATOR
5
- * last change 2023-10-28
6
- * Author: Ks Tan
7
- */
8
- </script>
9
1
  <template>
10
2
  <div class="frontpage-container">
11
3
  <client-only>
12
- <title>{{ getUserProfile().branchName }}</title>
4
+ <title>{{ getUserProfile()?.branchName }}</title>
13
5
  </client-only>
14
6
  <h1 class="border text-3xl text-center m-20 p-20">
15
7
  {{ t("createYourContentHere") }}
16
8
  </h1>
17
9
  </div>
18
10
  </template>
11
+ <script lang="ts" setup>
12
+ /**
13
+ * This file was automatically generated by simpleapp generator.
14
+ * YOU ALLOWED TO CHANGE THIS FILE, IT WONT OVERRIDE BY GENERATOR
15
+ * last change 2023-10-28
16
+ * Author: Ks Tan
17
+ */
18
+
19
+ useNuxtApp().$event('SetTitle',t('home'))
20
+ </script>
@@ -114,6 +114,11 @@ getCurrentOrg();
114
114
  v-model="data.timeZone"
115
115
  :setting="o.getField('#/properties/timeZone')"
116
116
  />
117
+ <SimpleAppInput
118
+ :input-type="SimpleAppInputType.text"
119
+ v-model="data.currency"
120
+ :setting="o.getField('#/properties/currency')"
121
+ />
117
122
  </div>
118
123
  <div>
119
124
  <SimpleAppInput
@@ -24,8 +24,19 @@ export default defineNuxtPlugin( async(nuxtApp) => {
24
24
  //axios.defaults.headers.common = {"CSRF-TOKEN": csrf};
25
25
  const myaxios = axios.create({timeout:5000})
26
26
  myaxios.interceptors.response.use((response) => response, (error) => {
27
-
28
- if(error.response.status==401){
27
+ console.error('errorerrorerrorerror',error)
28
+
29
+ if(error.code == 'ERR_BAD_REQUEST'){
30
+ console.error("axios ERR_BAD_REQUEST, redirect to relogin")
31
+ }
32
+ else if(error.code){
33
+ throw createError({
34
+ statusCode:error.code,
35
+ statusMessage:error.message,
36
+ fatal:true
37
+ })
38
+ }
39
+ else if(error.response.status==401){
29
40
  console.error("axios 401 session expired, pop up for relogin")
30
41
  }else if(error.response && error.response.status){
31
42
  let errmsg = error.response.message
@@ -25,6 +25,8 @@ export default defineNuxtPlugin( async(nuxtApp) => {
25
25
  orgRecordId:ref(''),
26
26
  orgCode:ref(''),
27
27
  orgName:ref(''),
28
+ timeZone:ref(''),
29
+ currency:ref(''),
28
30
  uid: ref(''),
29
31
  email: ref(''),
30
32
  fullName: ref(''),
@@ -66,6 +68,8 @@ export default defineNuxtPlugin( async(nuxtApp) => {
66
68
  this.branchName = res.data.branchName
67
69
  this.orgCode = res.data.orgCode
68
70
  this.orgName = res.data.orgName
71
+ this.timeZone = res.data.timeZone
72
+ this.currency = res.data.currency
69
73
  this.uid = res.data.uid
70
74
  this.email = res.data.email
71
75
  this.fullName = res.data.fullName
@@ -167,6 +171,8 @@ export default defineNuxtPlugin( async(nuxtApp) => {
167
171
  branchName: this.branchName,
168
172
  orgCode: this.orgCode,
169
173
  orgName: this.orgName,
174
+ currency: this.currency,
175
+ timeZone: this.timeZone,
170
176
  fullName : this.fullName,
171
177
  branches:this.branches??[],
172
178
  invites: this.invites ?? [],
@@ -0,0 +1,54 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
7
+
8
+ import { ForeignKey } from "./others"
9
+ export type OffDay={
10
+ _id:string
11
+ date:Date
12
+ title:string
13
+ }
14
+
15
+ export type CalRightClickEvent = {
16
+ class: string //"vuecal__cell--day5"
17
+ content: number //16
18
+ endDate: Date //Fri Feb 16 2024 23:59:59 GMT+0800 (Malaysia Time) {}
19
+ formattedDate: string //"2024-02-16"
20
+ outOfScope: boolean //false
21
+ startDate: Date //Fri Feb 16 2024 00:00:00 GMT+0800 (Malaysia Time) {}
22
+ today: boolean //false
23
+ }
24
+ export type CalEventType<T> = {
25
+ id: string //record _id
26
+ start: Date|string //date or ISO8601 time string
27
+ end: Date|string //date or ISO8601 time string
28
+ class? : string //css class
29
+ title: string
30
+ content?: string //unuse at the moment
31
+ split?: string //resource _id
32
+ data?: T // object/document data bind to event
33
+
34
+ // unuse
35
+ _eid?:string
36
+ startTimeMinutes?:number
37
+ endTimeMinutes?:number
38
+ };
39
+ export type RelocateEvent<T> = {
40
+ event : CalEventType<T> // {_eid: '190_1', start: Thu Jan 25 2024 13:23:00 GMT+0800 (Malaysia Time), startTimeMinutes: 803, end: Thu Jan 25 2024 14:23:00 GMT+0800 (Malaysia Time), endTimeMinutes: 863, …}
41
+ external : boolean
42
+ newDate : Date
43
+ oldDate : Date
44
+ newSplit : string
45
+ oldSplit : string
46
+ originalEvent: CalEventType<T>
47
+ }
48
+ export type CalResource = ForeignKey & {
49
+ id?:string //real id use by calendar, undefined will use _id
50
+ hide?:boolean //default = false
51
+ displayName: string; //use to display at calendar, undefine will use foreignkey label
52
+ email?: string; //for generate avatar only
53
+ };
54
+
@@ -1,3 +1,9 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
1
7
  export type CellSetting = {
2
8
  title: string
3
9
  field: string
@@ -1,8 +1,7 @@
1
-
2
1
  /**
3
2
  * This file was automatically generated by simpleapp generator. Every
4
- * MODIFICATION OVERRIDE BY GENERATEOR
5
- * last change 2023-10-28
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
6
5
  * Author: Ks Tan
7
6
  */
8
7
  import { Component } from 'vue';
@@ -14,8 +13,9 @@ export type ViewRecord = {
14
13
  label:string
15
14
  documentName: string
16
15
  viewer?: any
17
- readonly?:boolean
18
- afterCreate?:Function
16
+ readonly?:boolean
17
+ paras?:any
18
+ after?: (eventType:string,data:any,result:any )=>any
19
19
  document?:SimpleAppClient<any,any>
20
20
  }
21
21
  export type RefreshDocumentList ={
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * This file was automatically generated by simpleapp generator. Every
3
- * MODIFICATION OVERRIDE BY GENERATEOR
4
- * last change 2023-10-28
3
+ * YOU CAN MODIFY THIS FILE
4
+ * last change 2024-02-03
5
5
  * Author: Ks Tan
6
6
  */
7
7
 
@@ -13,4 +13,5 @@ export * from './user'
13
13
  export * from './documentlist'
14
14
  export * from './simpleappinput'
15
15
  export * from './schema'
16
- export * from './workflow'
16
+ export * from './workflow'
17
+ export * from './events'
@@ -1,3 +1,9 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
1
7
  export type ListItem = {
2
8
  name: string
3
9
  code: string
@@ -1,4 +1,9 @@
1
-
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
2
7
  export enum NotificationStatus {
3
8
  'info'='info',
4
9
  'error'='error',
@@ -1,4 +1,9 @@
1
-
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
2
7
  import {SimpleAppClient} from '~/simpleapp/generate/clients/SimpleAppClient'
3
8
  import {CellSetting} from './documentlist'
4
9
  import { Component } from 'vue'
@@ -1,3 +1,9 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
1
7
  import { JSONSchema7,JSONSchema7Type,JSONSchema7Version, JSONSchema7TypeName,JSONSchema7Definition } from 'json-schema';
2
8
  export type DocumentStatus = {
3
9
  status:string //'CO', 'V', 'CL', 'D' and etc
@@ -13,6 +19,8 @@ export type DocumentStatus = {
13
19
  requiredRole?: string[] // what special user role wish to allow for this api, example: ['SuperUser']
14
20
  workflowSetting?: {bpmn:string} //optional property, once define code gen connect the bpmn workflow
15
21
  method:RESTMethods
22
+ schema?:string //any schema/type name in types & apischemas
23
+ responseType?:string //any schema/type name for response
16
24
  description:string //description of api
17
25
  }
18
26
  export enum IsolationType {"none"="none" , "tenant"="tenant","org"="org", "branch"="branch"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
1
7
  export enum SimpleAppInputType {
2
8
  'text'='text',
3
9
  'textarea'='textarea',
@@ -1,3 +1,9 @@
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
1
7
  export type UserListItem = {
2
8
  _id: string
3
9
  uid?:string
@@ -55,6 +61,8 @@ export type UserProfile = {
55
61
  branchName: string
56
62
  orgCode: string
57
63
  orgName: string
64
+ currency:string
65
+ timeZone:string
58
66
  fullName : string
59
67
  branches: {
60
68
  _id: string
@@ -1,4 +1,9 @@
1
-
1
+ /**
2
+ * This file was automatically generated by simpleapp generator. Every
3
+ * DONT CHANGE THIS GILE CAUSE IT OVERRIDE BY GENERATEOR
4
+ * last change 2024-02-03
5
+ * Author: Ks Tan
6
+ */
2
7
  export type UserTaskType = {
3
8
 
4
9
  id: string