@sava-info-systems/api-maker-with-extensions 1.8.2 → 1.9.0

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 (40) hide show
  1. package/.env +2 -0
  2. package/dist/1097.js +1 -1
  3. package/dist/1558.js +1 -1
  4. package/dist/1678.js +1 -1
  5. package/dist/2473.js +1 -1
  6. package/dist/4186.js +1 -1
  7. package/dist/4211.js +1 -1
  8. package/dist/5249.js +1 -1
  9. package/dist/5334.js +1 -1
  10. package/dist/5765.js +1 -1
  11. package/dist/8125.js +1 -1
  12. package/dist/9575.js +1 -0
  13. package/dist/9939.js +1 -1
  14. package/dist/assets/images/icons/swagger-logo.svg +9 -0
  15. package/dist/assets/schema-types/InterfaceProps.ts +2 -0
  16. package/dist/assets/schema-types/store-types.ts +2 -1
  17. package/dist/assets/schema-types/types.ts +269 -9
  18. package/dist/assets/swagger/favicon-16x16.png +0 -0
  19. package/dist/assets/swagger/favicon-32x32.png +0 -0
  20. package/dist/assets/swagger/index.css +16 -0
  21. package/dist/assets/swagger/index.html +19 -0
  22. package/dist/assets/swagger/oauth2-redirect.html +79 -0
  23. package/dist/assets/swagger/swagger-initializer.js +20 -0
  24. package/dist/assets/swagger/swagger-ui-bundle.js +2 -0
  25. package/dist/assets/swagger/swagger-ui-es-bundle-core.js +3 -0
  26. package/dist/assets/swagger/swagger-ui-es-bundle.js +2 -0
  27. package/dist/assets/swagger/swagger-ui-standalone-preset.js +2 -0
  28. package/dist/assets/swagger/swagger-ui.css +3 -0
  29. package/dist/assets/swagger/swagger-ui.js +2 -0
  30. package/dist/common.js +1 -1
  31. package/dist/main.js +1 -1
  32. package/local.env +3 -2
  33. package/main.js +1 -1
  34. package/package.json +6 -4
  35. package/sandbox/assets/schema-types/types.js +90 -0
  36. package/sandbox/sandbox.js +1 -1
  37. package/src/assets/schema-types/store-types.ts +2 -1
  38. package/src/assets/schema-types/types.ts +269 -9
  39. package/src/public/dist-db-masters/browser/main.js +47 -47
  40. package/src/tools/install_utils/SetEnvInFrontend.js +3 -1
@@ -1,4 +1,4 @@
1
- import { ISchemaType } from './types';
1
+ import { ISchemaType, ISwaggerDocsObj } from './types';
2
2
 
3
3
  export interface IApiSchema {
4
4
  name: string;
@@ -14,6 +14,7 @@ export interface IApiSchema {
14
14
  reqBodySchema?: ISchemaType;
15
15
  reqQueryParametersSchema?: ISchemaType;
16
16
  errorList: string[];
17
+ swaggerDocs?: ISwaggerDocsObj;
17
18
  }
18
19
 
19
20
  export type IApiSchemaUI = Omit<IApiSchema, 'headers' | 'autoAddHeaders' | 'queryParams' | 'autoAddQueryParams' | 'requestBodyTypeSupported'>;
@@ -16,11 +16,12 @@ export interface IAMGlobalLogger {
16
16
 
17
17
  export interface IAMGlobalRequest {
18
18
  headers: any;
19
- params: any;
19
+ params: IBaseParams;
20
20
  query: any;
21
21
  body: any;
22
22
  eventData: any;
23
23
  auth: ISandboxReqAuthObj;
24
+ reqInfo: IRequestInfo;
24
25
 
25
26
  /** It will be true, when request is coming from actual end user and not from internal code like custom API or not from AM UI. */
26
27
  isApiRequestFromUser?: boolean;
@@ -35,6 +36,96 @@ export interface ISandboxReqAuthObj {
35
36
  authAzure?: any;
36
37
  }
37
38
 
39
+ export interface IRequestInfo {
40
+ url: string;
41
+ apiCategory: EAPICategoryEnum;
42
+ apiInfo: {
43
+ schemaType: 'SCHEMA' | 'GEN',
44
+ id: EAPIIdEnum;
45
+ name: string;
46
+ url: string;
47
+ };
48
+ reqMethod?: ERequestMethod;
49
+ }
50
+
51
+ export enum EAPICategoryEnum {
52
+ INSTANCES = 'INSTANCES',
53
+ THIRD_PARTY_APIS = 'THIRD_PARTY_APIS',
54
+ CUSTOM_APIS = 'CUSTOM_APIS',
55
+ SYSTEM_APIS = 'SYSTEM_APIS',
56
+ EVENTS = 'EVENTS',
57
+ SCHEDULERS = 'SCHEDULERS',
58
+ MIGRATION_SCRIPT = 'MIGRATION_SCRIPT',
59
+ PROCESS_INITIALIZER = 'PROCESS_INITIALIZER',
60
+ UTILITY_CLASS = 'UTILITY_CLASS',
61
+ }
62
+
63
+ export enum EAPIIdEnum {
64
+ // Schema APIs
65
+ SCHEMA_GET_ALL = 'SCHEMA_GET_ALL',
66
+ SCHEMA_GET_ALL_STREAM = 'SCHEMA_GET_ALL_STREAM',
67
+ SCHEMA_GET_BY_ID = 'SCHEMA_GET_BY_ID',
68
+ SCHEMA_POST_BULK_INSERT = 'SCHEMA_POST_BULK_INSERT',
69
+ SCHEMA_MASTER_SAVE = 'SCHEMA_MASTER_SAVE',
70
+ SCHEMA_ARRAY_OPERATIONS = 'SCHEMA_ARRAY_OPERATIONS',
71
+ SCHEMA_UPDATE_MANY = 'SCHEMA_UPDATE_MANY',
72
+ SCHEMA_PUT_UPDATE_BY_ID = 'SCHEMA_PUT_UPDATE_BY_ID',
73
+ SCHEMA_PUT_REPLACE_BY_ID = 'SCHEMA_PUT_REPLACE_BY_ID',
74
+ SCHEMA_DEL_DELETE_BY_ID = 'SCHEMA_DEL_DELETE_BY_ID',
75
+ SCHEMA_POST_QUERY = 'SCHEMA_POST_QUERY',
76
+ SCHEMA_POST_QUERY_STREAM = 'SCHEMA_POST_QUERY_STREAM',
77
+ SCHEMA_POST_QUERY_DELETE = 'SCHEMA_POST_QUERY_DELETE',
78
+ SCHEMA_POST_AGGREGATE = 'SCHEMA_POST_AGGREGATE',
79
+ SCHEMA_POST_COUNT = 'SCHEMA_POST_COUNT',
80
+ SCHEMA_GET_DISTINCT = 'SCHEMA_GET_DISTINCT',
81
+ SCHEMA_POST_DISTINCT_QUERY = 'SCHEMA_POST_DISTINCT_QUERY',
82
+
83
+ // GEN APIs
84
+ GEN_GET_ALL = 'GEN_GET_ALL',
85
+ GEN_GET_ALL_STREAM = 'GEN_GET_ALL_STREAM',
86
+ GEN_GET_BY_ID = 'GEN_GET_BY_ID',
87
+ GEN_POST_BULK_INSERT = 'GEN_POST_BULK_INSERT',
88
+ GEN_MASTER_SAVE = 'GEN_MASTER_SAVE',
89
+ GEN_ARRAY_OPERATIONS = 'GEN_ARRAY_OPERATIONS',
90
+ GEN_UPDATE_MANY = 'GEN_UPDATE_MANY',
91
+ GEN_PUT_UPDATE_BY_ID = 'GEN_PUT_UPDATE_BY_ID',
92
+ GEN_PUT_REPLACE_BY_ID = 'GEN_PUT_REPLACE_BY_ID',
93
+ GEN_DEL_DELETE_BY_ID = 'GEN_DEL_DELETE_BY_ID',
94
+ GEN_POST_QUERY = 'GEN_POST_QUERY',
95
+ GEN_POST_QUERY_STREAM = 'GEN_POST_QUERY_STREAM',
96
+ GEN_POST_QUERY_DELETE = 'GEN_POST_QUERY_DELETE',
97
+ GEN_POST_AGGREGATE = 'GEN_POST_AGGREGATE',
98
+ GEN_POST_COUNT = 'GEN_POST_COUNT',
99
+ GEN_GET_DISTINCT = 'GEN_GET_DISTINCT',
100
+ GEN_POST_DISTINCT_QUERY = 'GEN_POST_DISTINCT_QUERY',
101
+
102
+ // System APIs
103
+ EXECUTE_PLAIN_QUERY = 'EXECUTE_PLAIN_QUERY',
104
+ ENCRYPT_DATA = 'ENCRYPT_DATA',
105
+ DECRYPT_DATA = 'DECRYPT_DATA',
106
+ HASH_DATA = 'HASH_DATA',
107
+ GET_TOKEN = 'GET_TOKEN',
108
+ CALL_EXTERNAL_API = 'CALL_EXTERNAL_API',
109
+ GET_SECRET = 'GET_SECRET',
110
+
111
+ GET_REDIS_KEY = 'GET_REDIS_KEY',
112
+ SET_REDIS_KEY = 'SET_REDIS_KEY',
113
+ REMOVE_REDIS_KEY = 'REMOVE_REDIS_KEY',
114
+ CUSTOM_USER_CACHING = 'CUSTOM_USER_CACHING', // it is used for CRUD of user keys from system API.
115
+
116
+ RESET_REDIS_CACHE_DB = 'RESET_REDIS_CACHE_DB',
117
+ RESET_REDIS_CACHE_CUSTOM_APIS = 'RESET_REDIS_CACHE_CUSTOM_APIS',
118
+ RESET_REDIS_CACHE_SYSTEM_APIS = 'RESET_REDIS_CACHE_SYSTEM_APIS',
119
+ RESET_REDIS_CACHE_TP_APIS = 'RESET_REDIS_CACHE_TP_APIS',
120
+ GET_TABLE_META = 'GET_TABLE_META',
121
+ EMIT_EVENT = 'EMIT_EVENT',
122
+ EMIT_EVENT_WS = 'EMIT_EVENT_WS',
123
+
124
+ IS_VALID_DATA_FOR_TABLE = 'IS_VALID_DATA_FOR_TABLE',
125
+ IS_VALID_DATA_FOR_CUSTOM_API = 'IS_VALID_DATA_FOR_CUSTOM_API',
126
+ IS_VALID_DATA_FOR_THIRD_PARTY_API = 'IS_VALID_DATA_FOR_THIRD_PARTY_API',
127
+ }
128
+
38
129
  export interface IAuthInfoObjects {
39
130
  authAMDBInfo?: IAuthTokenAMDB; //
40
131
  authAMDBGroups?: any[]; // IGroup[]
@@ -65,6 +156,57 @@ export enum ERequestMethod {
65
156
  DELETE = 'DELETE',
66
157
  }
67
158
 
159
+ export interface IBaseParams {
160
+ apiPath?: string;
161
+ reqMethod?: ERequestMethod;
162
+
163
+ // instance apis
164
+ instanceName?: string;
165
+
166
+ /** Do not use this field. Use dbEnvironment | dbUser */
167
+ database?: string;
168
+ collection?: string;
169
+ column?: string;
170
+ id?: any;
171
+ primaryKey?: any;
172
+
173
+ // instance apis -> distinct api params
174
+ field?: string;
175
+ order?: string;
176
+
177
+ // third party
178
+ apiBundleName?: string;
179
+ apiVersionName?: string;
180
+ apiName?: string;
181
+ apiCodePath?: string;
182
+
183
+ // swagger
184
+ swaggerToken?: string;
185
+
186
+ // calculated fields from database field
187
+ /** database name given by user and it will be converted to masked database. ex: inventory_db */
188
+ dbEnvironment?: string; // am_cloud // use it in git push/pull/get-schema/get api list/
189
+
190
+ /** Actual database name on which operation is getting performed. ex: inventory_db_dev_1 */
191
+ dbUser?: string; // am_cloud_mayur // use it to get data/redis key/
192
+
193
+ /**
194
+ * If true, it will not throw cycle error.
195
+ */
196
+ noCycle?: boolean;
197
+
198
+ /**
199
+ * Default is true, If true, it will skip pre hook & post hook running.
200
+ * It will be made true from code of custom API
201
+ */
202
+ skipHookRunning?: boolean;
203
+
204
+ /**
205
+ * It is used in instance & database & collection hooks
206
+ */
207
+ hookType?: 'pre' | 'post';
208
+ }
209
+
68
210
  export interface IAMGlobalResponse {
69
211
  /** Status code of response. ex: 401, 500 */
70
212
  statusCode?: EStatusCode;
@@ -539,6 +681,38 @@ export interface ICustomApiSettingsTypes extends IAuthTokenInfoCommon {
539
681
  // calculated property
540
682
  errorList: string[]; // list of all errors thrown by this API.
541
683
  pathAndRequestMethod?: string;
684
+ swaggerDocs?: ISwaggerDocsObj;
685
+ }
686
+
687
+ export interface ISwaggerDocsObj {
688
+ tag?: string | string[];
689
+ /**
690
+ * Useful to provide custom dynamic parameters.
691
+ * For files you can provide this : [{ in: T.ESwaggerParamInType.formData, name: 'files', type: 'file' }]
692
+ */
693
+ parameters?: ISwaggerParametersEntity[];
694
+ }
695
+
696
+ export interface ISwaggerParametersEntity {
697
+ name: string;
698
+ in: ESwaggerParamInType;
699
+ description?: string;
700
+ required?: boolean;
701
+ format?: string | null;
702
+ schema?: {
703
+ type: 'array' | 'object' | 'string' | 'integer' | 'boolean' | 'file';
704
+ example?: any,
705
+ default?: any;
706
+ enum?: any[];
707
+ }
708
+ }
709
+
710
+ export enum ESwaggerParamInType {
711
+ body = 'body',
712
+ query = 'query',
713
+ path = 'path',
714
+ header = 'header',
715
+ formData = 'formData',
542
716
  }
543
717
 
544
718
  export interface ISystemApiSettingsTypes extends IAuthTokenInfoCommon {
@@ -1229,6 +1403,16 @@ export interface IDBMasterConfig {
1229
1403
  */
1230
1404
  screenName?: string;
1231
1405
 
1406
+ /**
1407
+ * We can provide schema in this and it will append fields to parent schema.
1408
+ */
1409
+ schema?: {
1410
+ instanceName: string;
1411
+ databaseName: string;
1412
+ collectionName: string;
1413
+ properties: ISchemaType;
1414
+ }
1415
+
1232
1416
  /** Default : false */
1233
1417
  showThemeSelector?: boolean;
1234
1418
 
@@ -1259,6 +1443,38 @@ export interface IDBMasterConfig {
1259
1443
 
1260
1444
  showRefreshButton?: boolean;
1261
1445
 
1446
+ deleteAllButtonSettings?: {
1447
+ /** default : true */
1448
+ raised?: boolean;
1449
+
1450
+ /** Default : pi pi-trash */
1451
+ icon?: string;
1452
+
1453
+ /** comma separated CSS classes */
1454
+ cssClass?: string;
1455
+
1456
+ /** Give style object in angular style. */
1457
+ style?: any;
1458
+
1459
+ severity?: uiMakerComponentSeverity;
1460
+ }
1461
+
1462
+ refreshButtonSettings?: {
1463
+ /** default : true */
1464
+ raised?: boolean;
1465
+
1466
+ /** Default : pi pi-sync */
1467
+ icon?: string;
1468
+
1469
+ /** comma separated CSS classes */
1470
+ cssClass?: string;
1471
+
1472
+ /** Give style object in angular style. */
1473
+ style?: any;
1474
+
1475
+ severity?: uiMakerComponentSeverity;
1476
+ }
1477
+
1262
1478
  /**
1263
1479
  * Default : T.EDBMasterOperationsOrder.theme_selector,
1264
1480
  * T.EDBMasterOperationsOrder.column_selector,
@@ -1291,6 +1507,20 @@ export interface IDBMasterConfig {
1291
1507
  /** Default : pi pi-download */
1292
1508
  icon?: string;
1293
1509
 
1510
+ /** default : true */
1511
+ raised?: boolean;
1512
+
1513
+ /** comma separated CSS classes */
1514
+ cssClass?: string;
1515
+
1516
+ severity?: uiMakerComponentSeverity;
1517
+
1518
+ /** default : Export data */
1519
+ tooltip?: string;
1520
+
1521
+ /** Give style object in angular style. */
1522
+ style?: any;
1523
+
1294
1524
  csv?: {
1295
1525
  enable: boolean;
1296
1526
 
@@ -1546,6 +1776,20 @@ export interface IDBMasterImportData {
1546
1776
  /** Default : pi pi-file-import */
1547
1777
  icon?: string;
1548
1778
 
1779
+ /** default : true */
1780
+ raised?: boolean;
1781
+
1782
+ /** comma separated CSS classes */
1783
+ cssClass?: string;
1784
+
1785
+ severity?: uiMakerComponentSeverity;
1786
+
1787
+ /** default : Export data */
1788
+ tooltip?: string;
1789
+
1790
+ /** Give style object in angular style. */
1791
+ style?: any;
1792
+
1549
1793
  /** width of grid. */
1550
1794
  gridWidth?: string;
1551
1795
 
@@ -1596,17 +1840,21 @@ export interface IDBMasterCustomActionButton {
1596
1840
  /** Give style object in angular style. */
1597
1841
  style?: any;
1598
1842
 
1843
+ /** default : true */
1844
+ raised?: boolean;
1845
+
1599
1846
  /**
1600
1847
  * If provided, it will ask for confirmation with this message.<br/>
1601
1848
  * Below variables are available<br/>
1602
- * rowData = entire row object.<br/>
1603
- * message = Assign your custom confirmation message to this variable.<br/>
1604
- * ex: confirmationMessageScript: "message = `Do you want to approve ${rowData.name}?`",
1605
- *
1849
+ * selectedGridItems = entire row object or array of selected rows. If grid header level action button clicked it will be array of selected rows.
1850
+ * -- If grid row action button clicked it will be entire row.<br/>
1851
+ * ex: confirmationMessageScript: "`Do you want to approve ${selectedGridItems.length}?`",
1606
1852
  * */
1607
1853
  confirmationMessageScript?: string;
1608
1854
  }
1609
1855
 
1856
+ type uiMakerComponentSeverity = 'contrast' | 'danger' | 'help' | 'info' | 'primary' | 'secondary' | 'success' | 'warning';
1857
+
1610
1858
  export interface IDBMasterTopLevelCustomActionButton extends Omit<IDBMasterCustomActionButton, 'cssClass'> {
1611
1859
  /** custom CSS class to assign to button */
1612
1860
  cssClass?: string,
@@ -1615,7 +1863,7 @@ export interface IDBMasterTopLevelCustomActionButton extends Omit<IDBMasterCusto
1615
1863
  label?: string;
1616
1864
 
1617
1865
  /** Default: info */
1618
- severity?: 'contrast' | 'danger' | 'help' | 'info' | 'primary' | 'secondary' | 'success' | 'warning';
1866
+ severity?: uiMakerComponentSeverity;
1619
1867
 
1620
1868
  /** ex : pi pi-check https://primeng.org/icons */
1621
1869
  icon?: string;
@@ -1632,11 +1880,23 @@ export interface IDBMasterConfigGridFilterOfField {
1632
1880
  export interface IDBMasterConfigOperation {
1633
1881
  enable: boolean;
1634
1882
 
1883
+ /** default : true */
1884
+ raised?: boolean;
1885
+
1635
1886
  /** Applicable for add button only. */
1636
1887
  label?: string;
1888
+
1637
1889
  /** Applicable for add button only. */
1638
1890
  cssClass?: string;
1639
1891
 
1892
+ /** Give style object in angular style. */
1893
+ style?: any;
1894
+
1895
+ severity?: uiMakerComponentSeverity;
1896
+
1897
+ /** ex : pi pi-plus https://primeng.org/icons */
1898
+ icon?: string;
1899
+
1640
1900
  apiCallOverrides?: IDBMasterAPICallOverrides;
1641
1901
  }
1642
1902
 
@@ -1808,7 +2068,7 @@ export interface IDBMasterConfigFormField {
1808
2068
  // genericConfig : end
1809
2069
 
1810
2070
  // gridSettings : start
1811
- gridSettings?: IDBMasterConfig;
2071
+ gridSettings?: Omit<IDBMasterConfig, 'schema'>;
1812
2072
  // gridSettings : end
1813
2073
 
1814
2074
  // textAreaSettings : start
@@ -2373,7 +2633,7 @@ export interface IDBMasterConfigFormField {
2373
2633
  * onceDropdownDataLoaded = Execute code when dropdown data is loaded.<br/>
2374
2634
  *
2375
2635
  * Available variables:<br/>
2376
- * body: IQueryFormat | any. Useful to modify apiCallOverrides also,<br/>
2636
+ * reqBody: IQueryFormat | any. Useful to modify apiCallOverrides also,<br/>
2377
2637
  * formData: any = Entire form object<br/>
2378
2638
  * column: IDBMasterConfigFormField = Configuration of that form column. column.dropdownSettings?.dbData?.find will be query to get data. <br/>
2379
2639
  * allDropdownDataMap: {[path: string]: any[]} = Map of all dropdown data<br/>
@@ -2638,7 +2898,7 @@ export interface IDBMasterConfigFormField {
2638
2898
  loadingIcon?: string;
2639
2899
 
2640
2900
  /** Defines the style of the button. */
2641
- severity?: 'success' | 'info' | 'warning' | 'danger' | 'help' | 'primary' | 'secondary' | 'contrast' | null | undefined;
2901
+ severity?: uiMakerComponentSeverity | null | undefined;
2642
2902
 
2643
2903
  /** Add a shadow to indicate elevation. */
2644
2904
  raised?: boolean;