@simitgroup/simpleapp-generator 1.6.6-p-alpha → 1.6.6-q-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 (90) hide show
  1. package/dist/buildinschemas/autoincreament.d.ts.map +1 -1
  2. package/dist/buildinschemas/autoincreament.js +17 -14
  3. package/dist/buildinschemas/autoincreament.js.map +1 -1
  4. package/dist/buildinschemas/branch.d.ts.map +1 -1
  5. package/dist/buildinschemas/branch.js +25 -24
  6. package/dist/buildinschemas/branch.js.map +1 -1
  7. package/dist/buildinschemas/changehistories.d.ts.map +1 -1
  8. package/dist/buildinschemas/changehistories.js +10 -9
  9. package/dist/buildinschemas/changehistories.js.map +1 -1
  10. package/dist/buildinschemas/customfield.d.ts.map +1 -1
  11. package/dist/buildinschemas/customfield.js +14 -24
  12. package/dist/buildinschemas/customfield.js.map +1 -1
  13. package/dist/buildinschemas/docnoformat.d.ts.map +1 -1
  14. package/dist/buildinschemas/docnoformat.js +34 -23
  15. package/dist/buildinschemas/docnoformat.js.map +1 -1
  16. package/dist/buildinschemas/documentevent.d.ts.map +1 -1
  17. package/dist/buildinschemas/documentevent.js +36 -26
  18. package/dist/buildinschemas/documentevent.js.map +1 -1
  19. package/dist/buildinschemas/keyvaluepair.d.ts.map +1 -1
  20. package/dist/buildinschemas/keyvaluepair.js +7 -6
  21. package/dist/buildinschemas/keyvaluepair.js.map +1 -1
  22. package/dist/buildinschemas/organization.d.ts.map +1 -1
  23. package/dist/buildinschemas/organization.js +34 -30
  24. package/dist/buildinschemas/organization.js.map +1 -1
  25. package/dist/buildinschemas/permission.d.ts.map +1 -1
  26. package/dist/buildinschemas/permission.js +16 -7
  27. package/dist/buildinschemas/permission.js.map +1 -1
  28. package/dist/buildinschemas/systemmessage.d.ts.map +1 -1
  29. package/dist/buildinschemas/systemmessage.js +35 -32
  30. package/dist/buildinschemas/systemmessage.js.map +1 -1
  31. package/dist/buildinschemas/tenant.d.ts.map +1 -1
  32. package/dist/buildinschemas/tenant.js +17 -16
  33. package/dist/buildinschemas/tenant.js.map +1 -1
  34. package/dist/buildinschemas/user.d.ts.map +1 -1
  35. package/dist/buildinschemas/user.js +34 -31
  36. package/dist/buildinschemas/user.js.map +1 -1
  37. package/dist/buildinschemas/webhook.d.ts.map +1 -1
  38. package/dist/buildinschemas/webhook.js +24 -23
  39. package/dist/buildinschemas/webhook.js.map +1 -1
  40. package/dist/framework.d.ts.map +1 -1
  41. package/dist/framework.js +2 -4
  42. package/dist/framework.js.map +1 -1
  43. package/dist/generate.js +17 -2
  44. package/dist/generate.js.map +1 -1
  45. package/dist/processors/jsonschemabuilder.js +14 -12
  46. package/dist/processors/jsonschemabuilder.js.map +1 -1
  47. package/dist/type.d.ts +39 -5
  48. package/dist/type.d.ts.map +1 -1
  49. package/dist/type.js.map +1 -1
  50. package/package.json +1 -1
  51. package/src/buildinschemas/autoincreament.ts +35 -33
  52. package/src/buildinschemas/branch.ts +47 -47
  53. package/src/buildinschemas/changehistories.ts +31 -30
  54. package/src/buildinschemas/customfield.ts +14 -24
  55. package/src/buildinschemas/docnoformat.ts +54 -43
  56. package/src/buildinschemas/documentevent.ts +42 -33
  57. package/src/buildinschemas/keyvaluepair.ts +25 -25
  58. package/src/buildinschemas/organization.ts +54 -50
  59. package/src/buildinschemas/permission.ts +34 -25
  60. package/src/buildinschemas/systemmessage.ts +39 -38
  61. package/src/buildinschemas/tenant.ts +46 -45
  62. package/src/buildinschemas/user.ts +64 -60
  63. package/src/buildinschemas/webhook.ts +62 -61
  64. package/src/framework.ts +2 -4
  65. package/src/generate.ts +17 -1
  66. package/src/processors/jsonschemabuilder.ts +6 -4
  67. package/src/type.ts +271 -215
  68. package/templates/basic/miniAppJsSdk/resource-bridge.service.ts.eta +9 -7
  69. package/templates/basic/miniAppStreamlitSdk/resource-bridge.service.ts.eta +22 -7
  70. package/templates/basic/nuxt/jsonschema.ts.eta +7 -0
  71. package/templates/basic/nuxt/resource-bridge.editable.service.ts.eta +40 -0
  72. package/templates/basic/nuxt/resource-bridge.service.ts.eta +24 -21
  73. package/templates/basic/nuxt/simpleapp.generate.client.ts.eta +27 -9
  74. package/templates/miniAppJsSdk/src/services/bridge-resource-accessor.service.ts.eta +2 -2
  75. package/templates/miniAppStreamlitSdk/simtrain_eco_mini_app_streamlit_sdk/sdk.py.eta +5 -2
  76. package/templates/nuxt/components/simpleApp/SimpleAppForm.vue.eta +4 -3
  77. package/templates/nuxt/components/simpleApp/SimpleAppInputTable.vue.eta +0 -1
  78. package/templates/nuxt/plugins/18.simpleapp-custom-field-store.ts.eta +9 -3
  79. package/templates/nuxt/plugins/20.simpleapp-userstore.ts.eta +316 -341
  80. package/templates/nuxt/simpleapp/generate/clients/SimpleAppClient.ts.eta +32 -22
  81. package/templates/nuxt/simpleapp/generate/jsonSchemas/index.ts.eta +11 -0
  82. package/templates/nuxt/simpleapp/generate/miniApp/bridge/constants/common.constant.ts.eta +1 -0
  83. package/templates/nuxt/simpleapp/generate/miniApp/bridge/constants/resource.constant.ts.eta +2 -2
  84. package/templates/nuxt/simpleapp/generate/miniApp/bridge/services/bridge-resource-accessor.service.ts.eta +4 -4
  85. package/templates/nuxt/simpleapp/generate/miniApp/bridge/services/bridge.service.ts.eta +20 -1
  86. package/templates/nuxt/simpleapp/generate/miniApp/bridge/types/bridge.type.ts.eta +9 -0
  87. package/templates/nuxt/simpleapp/generate/miniApp/bridge/types/resource-mapper.type.ts.eta +2 -2
  88. package/templates/project/build.sh.eta +0 -5
  89. package/templates/nest/src/simpleapp/apischemas/customfield.ts.eta +0 -21
  90. package/templates/nuxt/simpleapp/generate/clients/SimpleAppCustomFieldClient.ts.eta +0 -188
package/src/type.ts CHANGED
@@ -1,18 +1,24 @@
1
- import { JSONSchema7,JSONSchema7Type,JSONSchema7Version, JSONSchema7TypeName,JSONSchema7Definition } from 'json-schema';
1
+ import {
2
+ JSONSchema7,
3
+ JSONSchema7Type,
4
+ JSONSchema7Version,
5
+ JSONSchema7TypeName,
6
+ JSONSchema7Definition
7
+ } from 'json-schema';
2
8
  export type ChildModels = {
3
- [key: string]: {
4
- type: string;
5
- model: SchemaModel,
6
- codeField:string,
7
- nameField:string,
8
- moreAutoComplete?:string[],
9
- docStatusSettings?:DocumentStatus[],
10
- apiSettings?:DocumentApi[],
9
+ [key: string]: {
10
+ type: string;
11
+ model: SchemaModel;
12
+ codeField: string;
13
+ nameField: string;
14
+ moreAutoComplete?: string[];
15
+ docStatusSettings?: DocumentStatus[];
16
+ apiSettings?: DocumentApi[];
11
17
  // requireautocomplete: boolean
12
- isolationtype:string,
13
- hasdocformat:boolean,
14
- foreignkeys:MyForeignKey,
15
- required: string[]
18
+ isolationtype: string;
19
+ hasdocformat: boolean;
20
+ foreignkeys: MyForeignKey;
21
+ required: string[];
16
22
  };
17
23
  };
18
24
  export enum Fieldtypes {
@@ -21,7 +27,7 @@ export enum Fieldtypes {
21
27
  'array' = 'array',
22
28
  'boolean' = 'boolean',
23
29
  'integer' = 'integer',
24
- 'number' = 'number',
30
+ 'number' = 'number'
25
31
  }
26
32
  export type FieldModel = {
27
33
  title?: string; //display name
@@ -32,7 +38,7 @@ export type FieldModel = {
32
38
  format?: string;
33
39
  required?: boolean;
34
40
  example?: any;
35
- // examples?: any;
41
+ // examples?: any;
36
42
  };
37
43
 
38
44
  // export type SchemaCategoryModel = {
@@ -43,61 +49,62 @@ export type SchemaModel = {
43
49
  [key: string]: string | string[] | FieldModel | SchemaModel | SchemaModel[];
44
50
  };
45
51
 
46
- export type JsonSchemaProperties= {
47
- [key: string]: JSONSchema7Definition
52
+ export type JsonSchemaProperties = {
53
+ [key: string]: JSONSchema7Definition;
48
54
  // JSONSchema7Definition ,JSONSchema7
49
- }
55
+ };
50
56
 
51
57
  //foreign key setting in current document
52
58
  export type MyForeignKey = {
53
- [collectionname:string]:string[]
54
- }
55
-
59
+ [collectionname: string]: string[];
60
+ };
56
61
 
57
62
  //centralize foreignkey catalogue for all document
58
63
  export type TypeForeignKeyCatalogue = {
59
- [cataloguename:string]:TypeForeignKey
60
- }
61
- export type TypeForeignKey={
62
- [collection:string]:string[]
63
- }
64
+ [cataloguename: string]: TypeForeignKey;
65
+ };
66
+ export type TypeForeignKey = {
67
+ [collection: string]: string[];
68
+ };
64
69
  export type ModuleObject = {
65
- doctype:string
66
- docname:string
67
- pagetype:string
68
- api:DocumentApi[]
69
- schema:SimpleAppJSONSchema7
70
- }
71
- export type TypeGenerateDocumentVariable ={
70
+ doctype: string;
71
+ docname: string;
72
+ pagetype: string;
73
+ api: DocumentApi[];
74
+ schema: SimpleAppJSONSchema7;
75
+ };
76
+ export type TypeGenerateDocumentVariable = {
72
77
  /**
73
- * Resource Name should be a readable name with camelCase.
78
+ * Resource Name should be a readable name with camelCase.
74
79
  * Ex: studentSummary
75
80
  */
76
81
  resourceName: string;
77
- name: string
78
- doctype: string
79
- models: ChildModels
80
- autocompletecode:string
81
- autocompletename:string
82
- moreAutoComplete:string[]
83
- schema: SchemaModel
84
- apiSchemaName: string
85
- typename: string
86
- fullApiSchemaName: string
87
- fullTypeName:string
88
- jsonschema: SimpleAppJSONSchema7
89
- bothEndCode: string
90
- frontEndCode: string
91
- backEndCode: string
92
- controllerCode:string
93
- apiSchemaCode:string
94
- docStatusSettings:DocumentStatus[],
95
- apiSettings:DocumentApi[],
96
- isolationtype:string
97
- hasdocformat:boolean,
98
- foreignkeys: MyForeignKey
99
-
100
- }
82
+ name: string;
83
+ doctype: string;
84
+ models: ChildModels;
85
+ autocompletecode: string;
86
+ autocompletename: string;
87
+ moreAutoComplete: string[];
88
+ schema: SchemaModel;
89
+ apiSchemaName: string;
90
+ typename: string;
91
+ fullApiSchemaName: string;
92
+ fullTypeName: string;
93
+ jsonschema: SimpleAppJSONSchema7;
94
+ bothEndCode: string;
95
+ frontEndCode: string;
96
+ backEndCode: string;
97
+ controllerCode: string;
98
+ apiSchemaCode: string;
99
+ docStatusSettings: DocumentStatus[];
100
+ apiSettings: DocumentApi[];
101
+ isolationtype: string;
102
+ hasdocformat: boolean;
103
+ foreignkeys: MyForeignKey;
104
+ customField: {
105
+ isEnable: boolean;
106
+ };
107
+ };
101
108
 
102
109
  // export type DocSetting = {
103
110
  // docName:string,
@@ -114,194 +121,243 @@ foreignkeys: MyForeignKey
114
121
  // }
115
122
 
116
123
  export type DocumentStatus = {
117
- status:string //'CO', 'V', 'CL', 'D' and etc
118
- statusName:string
119
- readOnly:boolean
120
- actions: string[] //api name ['confirm','revert','close','void' and etc]
124
+ status: string; //'CO', 'V', 'CL', 'D' and etc
125
+ statusName: string;
126
+ readOnly: boolean;
127
+ actions: string[]; //api name ['confirm','revert','close','void' and etc]
128
+ };
129
+ export enum RESTMethods {
130
+ 'post' = 'post',
131
+ 'get' = 'get',
132
+ 'delete' = 'delete',
133
+ 'put' = 'put',
134
+ 'patch' = 'patch'
121
135
  }
122
- export enum RESTMethods {'post'='post','get'='get', 'delete'='delete','put'='put', 'patch'='patch'}
123
136
  export type DocumentApi = {
124
- action:string //api action name
125
- entryPoint:string //api entry point example:':id', ':id/confirm'
126
- queryPara?:string[] //what query parameter wish to accept, example: ['description','date']
127
- requiredRole?: string[] // what special user role wish to allow for this api, example: ['SuperUser']
128
- method:RESTMethods
129
- responseType ?:string
130
- schema ?:string
131
- description:string //description of api
137
+ action: string; //api action name
138
+ entryPoint: string; //api entry point example:':id', ':id/confirm'
139
+ queryPara?: string[]; //what query parameter wish to accept, example: ['description','date']
140
+ requiredRole?: string[]; // what special user role wish to allow for this api, example: ['SuperUser']
141
+ method: RESTMethods;
142
+ responseType?: string;
143
+ schema?: string;
144
+ description: string; //description of api
145
+ };
146
+ export enum IsolationType {
147
+ 'none' = 'none',
148
+ 'tenant' = 'tenant',
149
+ 'org' = 'org',
150
+ 'branch' = 'branch'
132
151
  }
133
- export enum IsolationType {"none"="none" , "tenant"="tenant","org"="org", "branch"="branch"}
134
152
  // export type ImportLibs = {"lib":string,"as":string}
135
- export type Formula = {
136
- jsonPath:string //example: "$.subtotal","$.details[*]"
137
- formula:string //example "jslib.getDocumentSubTotal(@F{$.details})"
138
- }
153
+ export type Formula = {
154
+ jsonPath: string; //example: "$.subtotal","$.details[*]"
155
+ formula: string; //example "jslib.getDocumentSubTotal(@F{$.details})"
156
+ };
139
157
 
140
158
  export type SchemaConfig = {
141
- isolationType: IsolationType
142
- requiredRoles?:string[]
143
- pageType?: string
144
- uniqueKey?:string
145
- uniqueKeys?:string[][]
146
- documentTitle?:string
147
- loseDataIsolation?:boolean
148
- generateDocumentNumber?:boolean
149
- docNoPattern?:string
150
- documentDate?:string
151
- allStatus?:DocumentStatus[]
152
- additionalApis?:DocumentApi[]
153
- additionalAutoCompleteFields ?: string[]
154
- search?:string[]
159
+ isolationType: IsolationType;
160
+ requiredRoles?: string[];
161
+ pageType?: string;
162
+ uniqueKey?: string;
163
+ uniqueKeys?: string[][];
164
+ documentTitle?: string;
165
+ loseDataIsolation?: boolean;
166
+ generateDocumentNumber?: boolean;
167
+ docNoPattern?: string;
168
+ documentDate?: string;
169
+ allStatus?: DocumentStatus[];
170
+ additionalApis?: DocumentApi[];
171
+ additionalAutoCompleteFields?: string[];
172
+ search?: string[];
155
173
  // libs?:ImportLibs[] // both process class and frontend client class will import same lib
156
- formulas?: Formula[]
157
- documentType: string
158
- documentName: string
159
- collectionName?: string
160
- foreignKeys?:MyForeignKey
161
- printFormats?: SchemaPrintFormat[]
162
- }
174
+ formulas?: Formula[];
175
+ documentType: string;
176
+ documentName: string;
177
+ collectionName?: string;
178
+ foreignKeys?: MyForeignKey;
179
+ printFormats?: SchemaPrintFormat[];
180
+ /**
181
+ * Resource Name **MUST** use **READABLE** name.
182
+ *
183
+ * We already have dirty name in documentType and documentName.
184
+ *
185
+ * **NOT** need another.
186
+ *
187
+ * Use Camel Case. Example:
188
+ * - studentGroup
189
+ * - teacherGroup
190
+ * - customField
191
+ */
192
+ resourceName: string;
193
+ miniApp?: {
194
+ /**
195
+ * Define API whitelist for mini app use.
196
+ *
197
+ * Ex: list, detail, create, update, patch, delete, autoComplete, getStudentSummary
198
+ *
199
+ * {
200
+ * list: true,
201
+ * detail: {}, // object for future enhance purpose
202
+ * }
203
+ */
204
+ whitelist: {
205
+ [key: string]: true | {};
206
+ };
207
+ };
208
+ customField?: {
209
+ isEnable?: boolean;
210
+ };
211
+ };
163
212
 
164
213
  export type SchemaPrintFormat = {
165
- formatName: string
166
- formatId: string
167
- description?: string
168
- }
214
+ formatName: string;
215
+ formatId: string;
216
+ description?: string;
217
+ };
169
218
 
170
219
  export type SchemaFields = {
171
- _id: SimpleAppJSONSchema7
172
- tenantId: SimpleAppJSONSchema7
173
- orgId: SimpleAppJSONSchema7
174
- branchId: SimpleAppJSONSchema7
175
- created: SimpleAppJSONSchema7
176
- updated: SimpleAppJSONSchema7
177
- createdBy: SimpleAppJSONSchema7
178
- updatedBy: SimpleAppJSONSchema7
179
- [key:string]:SimpleAppJSONSchema7 | SimpleAppJSONSchema7[] | undefined
180
-
181
- }
182
-
220
+ _id: SimpleAppJSONSchema7;
221
+ tenantId: SimpleAppJSONSchema7;
222
+ orgId: SimpleAppJSONSchema7;
223
+ branchId: SimpleAppJSONSchema7;
224
+ created: SimpleAppJSONSchema7;
225
+ updated: SimpleAppJSONSchema7;
226
+ createdBy: SimpleAppJSONSchema7;
227
+ updatedBy: SimpleAppJSONSchema7;
228
+ [key: string]: SimpleAppJSONSchema7 | SimpleAppJSONSchema7[] | undefined;
229
+ };
183
230
 
184
231
  export type SchemaType = {
185
- type:string
186
- definitions?:SimpleAppJSONSchema7
187
- required?:string[]
188
-
189
- "x-simpleapp-config":SchemaConfig
190
- properties: SchemaFields
191
- }
192
-
193
-
232
+ type: string;
233
+ definitions?: SimpleAppJSONSchema7;
234
+ required?: string[];
194
235
 
236
+ 'x-simpleapp-config': SchemaConfig;
237
+ properties: SchemaFields;
238
+ };
195
239
 
196
240
  // modified from jsonschemas
197
241
  export type SimpleAppJSONSchema7Definition = SimpleAppJSONSchema7 | boolean;
198
242
  export interface SimpleAppJSONSchema7 {
199
-
200
- 'x-foreignkey' ?:string
201
- $id?: string | undefined;
202
- $ref?: string | undefined;
203
- $schema?: JSONSchema7Version | undefined;
204
- $comment?: string | undefined;
243
+ 'x-foreignkey'?: string;
244
+ $id?: string | undefined;
245
+ $ref?: string | undefined;
246
+ $schema?: JSONSchema7Version | undefined;
247
+ $comment?: string | undefined;
205
248
 
206
- /**
207
- * @see https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-00#section-8.2.4
208
- * @see https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-00#appendix-A
209
- */
210
- $defs?: {
211
- [key: string]: JSONSchema7Definition;
212
- } | undefined;
249
+ /**
250
+ * @see https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-00#section-8.2.4
251
+ * @see https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-validation-00#appendix-A
252
+ */
253
+ $defs?:
254
+ | {
255
+ [key: string]: JSONSchema7Definition;
256
+ }
257
+ | undefined;
213
258
 
214
- /**
215
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1
216
- */
217
- type?: JSONSchema7TypeName | JSONSchema7TypeName[] | undefined;
218
- enum?: JSONSchema7Type[] | undefined;
219
- const?: JSONSchema7Type | undefined;
259
+ /**
260
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1
261
+ */
262
+ type?: JSONSchema7TypeName | JSONSchema7TypeName[] | undefined;
263
+ enum?: JSONSchema7Type[] | undefined;
264
+ const?: JSONSchema7Type | undefined;
220
265
 
221
- /**
222
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.2
223
- */
224
- multipleOf?: number | undefined;
225
- maximum?: number | undefined;
226
- exclusiveMaximum?: number | undefined;
227
- minimum?: number | undefined;
228
- exclusiveMinimum?: number | undefined;
266
+ /**
267
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.2
268
+ */
269
+ multipleOf?: number | undefined;
270
+ maximum?: number | undefined;
271
+ exclusiveMaximum?: number | undefined;
272
+ minimum?: number | undefined;
273
+ exclusiveMinimum?: number | undefined;
229
274
 
230
- /**
231
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.3
232
- */
233
- maxLength?: number | undefined;
234
- minLength?: number | undefined;
235
- pattern?: string | undefined;
275
+ /**
276
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.3
277
+ */
278
+ maxLength?: number | undefined;
279
+ minLength?: number | undefined;
280
+ pattern?: string | undefined;
236
281
 
237
- /**
238
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.4
239
- */
240
- items?: SimpleAppJSONSchema7Definition | SimpleAppJSONSchema7Definition[] | undefined;
241
- additionalItems?: JSONSchema7Definition | undefined;
242
- maxItems?: number | undefined;
243
- minItems?: number | undefined;
244
- uniqueItems?: boolean | undefined;
245
- contains?: SimpleAppJSONSchema7Definition | undefined;
282
+ /**
283
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.4
284
+ */
285
+ items?:
286
+ | SimpleAppJSONSchema7Definition
287
+ | SimpleAppJSONSchema7Definition[]
288
+ | undefined;
289
+ additionalItems?: JSONSchema7Definition | undefined;
290
+ maxItems?: number | undefined;
291
+ minItems?: number | undefined;
292
+ uniqueItems?: boolean | undefined;
293
+ contains?: SimpleAppJSONSchema7Definition | undefined;
246
294
 
247
- /**
248
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.5
249
- */
250
- maxProperties?: number | undefined;
251
- minProperties?: number | undefined;
252
- required?: string[] | undefined;
253
- properties?: {
295
+ /**
296
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.5
297
+ */
298
+ maxProperties?: number | undefined;
299
+ minProperties?: number | undefined;
300
+ required?: string[] | undefined;
301
+ properties?:
302
+ | {
254
303
  [key: string]: SimpleAppJSONSchema7Definition;
255
- } | undefined;
256
- patternProperties?: {
304
+ }
305
+ | undefined;
306
+ patternProperties?:
307
+ | {
257
308
  [key: string]: SimpleAppJSONSchema7Definition;
258
- } | undefined;
259
- additionalProperties?: SimpleAppJSONSchema7Definition | undefined;
260
- dependencies?: {
309
+ }
310
+ | undefined;
311
+ additionalProperties?: SimpleAppJSONSchema7Definition | undefined;
312
+ dependencies?:
313
+ | {
261
314
  [key: string]: SimpleAppJSONSchema7Definition | string[];
262
- } | undefined;
263
- propertyNames?: SimpleAppJSONSchema7Definition | undefined;
315
+ }
316
+ | undefined;
317
+ propertyNames?: SimpleAppJSONSchema7Definition | undefined;
264
318
 
265
- /**
266
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.6
267
- */
268
- if?: SimpleAppJSONSchema7Definition | undefined;
269
- then?: SimpleAppJSONSchema7Definition | undefined;
270
- else?: SimpleAppJSONSchema7Definition | undefined;
319
+ /**
320
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.6
321
+ */
322
+ if?: SimpleAppJSONSchema7Definition | undefined;
323
+ then?: SimpleAppJSONSchema7Definition | undefined;
324
+ else?: SimpleAppJSONSchema7Definition | undefined;
271
325
 
272
- /**
273
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.7
274
- */
275
- allOf?: SimpleAppJSONSchema7Definition[] | undefined;
276
- anyOf?: SimpleAppJSONSchema7Definition[] | undefined;
277
- oneOf?: SimpleAppJSONSchema7Definition[] | undefined;
278
- not?: SimpleAppJSONSchema7Definition | undefined;
326
+ /**
327
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.7
328
+ */
329
+ allOf?: SimpleAppJSONSchema7Definition[] | undefined;
330
+ anyOf?: SimpleAppJSONSchema7Definition[] | undefined;
331
+ oneOf?: SimpleAppJSONSchema7Definition[] | undefined;
332
+ not?: SimpleAppJSONSchema7Definition | undefined;
279
333
 
280
- /**
281
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7
282
- */
283
- format?: string | undefined;
334
+ /**
335
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-7
336
+ */
337
+ format?: string | undefined;
284
338
 
285
- /**
286
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-8
287
- */
288
- contentMediaType?: string | undefined;
289
- contentEncoding?: string | undefined;
339
+ /**
340
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-8
341
+ */
342
+ contentMediaType?: string | undefined;
343
+ contentEncoding?: string | undefined;
290
344
 
291
- /**
292
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-9
293
- */
294
- definitions?: {
345
+ /**
346
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-9
347
+ */
348
+ definitions?:
349
+ | {
295
350
  [key: string]: JSONSchema7Definition;
296
- } | undefined;
351
+ }
352
+ | undefined;
297
353
 
298
- /**
299
- * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-10
300
- */
301
- title?: string | undefined;
302
- description?: string | undefined;
303
- default?: JSONSchema7Type | undefined;
304
- readOnly?: boolean | undefined;
305
- writeOnly?: boolean | undefined;
306
- examples?: JSONSchema7Type | undefined;
307
- }
354
+ /**
355
+ * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-10
356
+ */
357
+ title?: string | undefined;
358
+ description?: string | undefined;
359
+ default?: JSONSchema7Type | undefined;
360
+ readOnly?: boolean | undefined;
361
+ writeOnly?: boolean | undefined;
362
+ examples?: JSONSchema7Type | undefined;
363
+ }
@@ -14,8 +14,8 @@
14
14
  const apiName = it.typename.toUpperCase() + 'Api';
15
15
  const typeActionName = pascalName + 'Actions';
16
16
 
17
- const miniAppWhitelistApis = it.jsonschema['x-simpleapp-config']?.miniApp?.whitelist || [];
18
- const hasMiniAppWhitelistedApi = miniAppWhitelistApis.length > 0;
17
+ const miniAppWhitelistApis = it.jsonschema['x-simpleapp-config']?.miniApp?.whitelist || {};
18
+ const hasMiniAppWhitelistedApi = Object.keys(miniAppWhitelistApis).length > 0;
19
19
  %>
20
20
 
21
21
  import { MiniAppBridgeService } from "../bridge.service";
@@ -29,10 +29,8 @@ export class MiniApp<%= pascalName %>BridgeService {
29
29
  this.bridge = bridge;
30
30
  }
31
31
 
32
- <% for (let i = 0; i < miniAppWhitelistApis.length; i++) { %>
33
- <%
34
- const action = miniAppWhitelistApis[i];
35
- %>
32
+ <% Object.entries(miniAppWhitelistApis).forEach(([action, value]) => { %>
33
+ <% if (value !== true && typeof value !== 'object') { return; } %>
36
34
 
37
35
  <% if(action === 'list') { %>
38
36
  async list() {
@@ -65,6 +63,10 @@ export class MiniApp<%= pascalName %>BridgeService {
65
63
  body: data,
66
64
  });
67
65
  }
66
+ <% } else if(action === 'current') { %>
67
+ async <%= action %>() {
68
+ return this.bridge.callApi(this.resourceName, "<%= action %>");
69
+ }
68
70
  <% } else { %>
69
71
  <% const apiSetting = it.apiSettings.find(item => item.action === action); %>
70
72
  <% if (apiSetting) { %>
@@ -107,7 +109,7 @@ export class MiniApp<%= pascalName %>BridgeService {
107
109
  }
108
110
  <% } %>
109
111
  <% } %>
110
- <% } %>
112
+ <% }) %>
111
113
 
112
114
  openOnScreenForm(id?: string) {
113
115
  this.bridge.openOnScreenResourceForm(this.resourceName, {
@@ -7,8 +7,8 @@
7
7
  const apiName = it.typename.toUpperCase() + 'Api';
8
8
  const typeActionName = pascalName + 'Actions';
9
9
 
10
- const miniAppWhitelistApis = it.jsonschema['x-simpleapp-config']?.miniApp?.whitelist || [];
11
- const hasMiniAppWhitelistedApi = miniAppWhitelistApis.length > 0;
10
+ const miniAppWhitelistApis = it.jsonschema['x-simpleapp-config']?.miniApp?.whitelist || {};
11
+ const hasMiniAppWhitelistedApi = Object.keys(miniAppWhitelistApis).length > 0;
12
12
  %>
13
13
 
14
14
  from streamlit_javascript import st_javascript
@@ -22,10 +22,9 @@ import json
22
22
  class <%= pascalName %>:
23
23
  _resource_name = "<%= it.resourceName %>"
24
24
 
25
- <% for (let i = 0; i < miniAppWhitelistApis.length; i++) { %>
26
- <%
27
- const action = miniAppWhitelistApis[i];
28
- %>
25
+ <% Object.entries(miniAppWhitelistApis).forEach(([action, value]) => { %>
26
+ <% if (value !== true && typeof value !== 'object') { return; } %>
27
+
29
28
 
30
29
  <% if(action === 'list') { %>
31
30
 
@@ -137,6 +136,22 @@ class <%= pascalName %>:
137
136
  resource=self._resource_name, action=action, options=options
138
137
  ),
139
138
  )
139
+ <% } else if(action === 'current') { %>
140
+
141
+ def <%= action %>(self, options: Optional[ApiOption] = {}):
142
+ action = "<%= action %>"
143
+ request_key = Helper.get_api_key(
144
+ "request", resource=self._resource_name, action=action, options=options
145
+ )
146
+
147
+ st_javascript(
148
+ f"window.parent.callApi('{self._resource_name}', '{action}')",
149
+ key=request_key,
150
+ on_change=lambda: Helper.set_api_response(
151
+ resource=self._resource_name, action=action, options=options
152
+ ),
153
+ )
154
+
140
155
  <% } else { %>
141
156
  <% const apiSetting = it.apiSettings.find(item => item.action === action); %>
142
157
  <% if (apiSetting) { %>
@@ -191,7 +206,7 @@ class <%= pascalName %>:
191
206
  )
192
207
  <% } %>
193
208
  <% } %>
194
- <% } %>
209
+ <% }) %>
195
210
 
196
211
  def response(self, action: str, options: Optional[ApiOption] = {}):
197
212
  return Helper.get_api_response(
@@ -0,0 +1,7 @@
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
+ export const <%= it.typename%>JsonSchema = <%~ JSON.stringify(it.jsonschema) %>