@chilibase/backend 0.1.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 (168) hide show
  1. package/README.md +3 -0
  2. package/lib/administration/x-browse-meta.entity.d.ts +8 -0
  3. package/lib/administration/x-browse-meta.entity.js +42 -0
  4. package/lib/administration/x-browse-meta.entity.js.map +1 -0
  5. package/lib/administration/x-column-meta.entity.d.ts +11 -0
  6. package/lib/administration/x-column-meta.entity.js +59 -0
  7. package/lib/administration/x-column-meta.entity.js.map +1 -0
  8. package/lib/administration/x-enum-enum.entity.d.ts +12 -0
  9. package/lib/administration/x-enum-enum.entity.js +59 -0
  10. package/lib/administration/x-enum-enum.entity.js.map +1 -0
  11. package/lib/administration/x-enum.entity.d.ts +10 -0
  12. package/lib/administration/x-enum.entity.js +54 -0
  13. package/lib/administration/x-enum.entity.js.map +1 -0
  14. package/lib/administration/x-file.entity.d.ts +10 -0
  15. package/lib/administration/x-file.entity.js +53 -0
  16. package/lib/administration/x-file.entity.js.map +1 -0
  17. package/lib/administration/x-param.entity.d.ts +10 -0
  18. package/lib/administration/x-param.entity.js +54 -0
  19. package/lib/administration/x-param.entity.js.map +1 -0
  20. package/lib/administration/x-user.entity.d.ts +11 -0
  21. package/lib/administration/x-user.entity.js +63 -0
  22. package/lib/administration/x-user.entity.js.map +1 -0
  23. package/lib/auth/auth.module.d.ts +2 -0
  24. package/lib/auth/auth.module.js +19 -0
  25. package/lib/auth/auth.module.js.map +1 -0
  26. package/lib/auth/jwt-auth.guard.d.ts +10 -0
  27. package/lib/auth/jwt-auth.guard.js +36 -0
  28. package/lib/auth/jwt-auth.guard.js.map +1 -0
  29. package/lib/auth/jwt.strategy.d.ts +9 -0
  30. package/lib/auth/jwt.strategy.js +60 -0
  31. package/lib/auth/jwt.strategy.js.map +1 -0
  32. package/lib/auth/public.d.ts +2 -0
  33. package/lib/auth/public.js +4 -0
  34. package/lib/auth/public.js.map +1 -0
  35. package/lib/serverApi/ExportImportParam.d.ts +70 -0
  36. package/lib/serverApi/ExportImportParam.js +33 -0
  37. package/lib/serverApi/ExportImportParam.js.map +1 -0
  38. package/lib/serverApi/FindParam.d.ts +59 -0
  39. package/lib/serverApi/FindParam.js +20 -0
  40. package/lib/serverApi/FindParam.js.map +1 -0
  41. package/lib/serverApi/FindResult.d.ts +8 -0
  42. package/lib/serverApi/FindResult.js +2 -0
  43. package/lib/serverApi/FindResult.js.map +1 -0
  44. package/lib/serverApi/PrimeFilterSortMeta.d.ts +43 -0
  45. package/lib/serverApi/PrimeFilterSortMeta.js +32 -0
  46. package/lib/serverApi/PrimeFilterSortMeta.js.map +1 -0
  47. package/lib/serverApi/XBrowseMetadata.d.ts +4 -0
  48. package/lib/serverApi/XBrowseMetadata.js +2 -0
  49. package/lib/serverApi/XBrowseMetadata.js.map +1 -0
  50. package/lib/serverApi/XEntityMetadata.d.ts +35 -0
  51. package/lib/serverApi/XEntityMetadata.js +2 -0
  52. package/lib/serverApi/XEntityMetadata.js.map +1 -0
  53. package/lib/serverApi/XFileJsonField.d.ts +6 -0
  54. package/lib/serverApi/XFileJsonField.js +2 -0
  55. package/lib/serverApi/XFileJsonField.js.map +1 -0
  56. package/lib/serverApi/XPostLoginIfc.d.ts +7 -0
  57. package/lib/serverApi/XPostLoginIfc.js +2 -0
  58. package/lib/serverApi/XPostLoginIfc.js.map +1 -0
  59. package/lib/serverApi/XUser.d.ts +8 -0
  60. package/lib/serverApi/XUser.js +2 -0
  61. package/lib/serverApi/XUser.js.map +1 -0
  62. package/lib/serverApi/XUserAuthenticationIfc.d.ts +9 -0
  63. package/lib/serverApi/XUserAuthenticationIfc.js +2 -0
  64. package/lib/serverApi/XUserAuthenticationIfc.js.map +1 -0
  65. package/lib/serverApi/XUtilsCommon.d.ts +48 -0
  66. package/lib/serverApi/XUtilsCommon.js +409 -0
  67. package/lib/serverApi/XUtilsCommon.js.map +1 -0
  68. package/lib/serverApi/XUtilsConversions.d.ts +37 -0
  69. package/lib/serverApi/XUtilsConversions.js +386 -0
  70. package/lib/serverApi/XUtilsConversions.js.map +1 -0
  71. package/lib/serverApi/XUtilsMetadataCommon.d.ts +29 -0
  72. package/lib/serverApi/XUtilsMetadataCommon.js +170 -0
  73. package/lib/serverApi/XUtilsMetadataCommon.js.map +1 -0
  74. package/lib/serverApi/index.d.ts +2 -0
  75. package/lib/serverApi/index.js +3 -0
  76. package/lib/serverApi/index.js.map +1 -0
  77. package/lib/serverApi/x-lib-api.d.ts +12 -0
  78. package/lib/serverApi/x-lib-api.js +2 -0
  79. package/lib/serverApi/x-lib-api.js.map +1 -0
  80. package/lib/services/FindParamRows.d.ts +8 -0
  81. package/lib/services/FindParamRows.js +2 -0
  82. package/lib/services/FindParamRows.js.map +1 -0
  83. package/lib/services/FindParamRowsForAssoc.d.ts +6 -0
  84. package/lib/services/FindParamRowsForAssoc.js +2 -0
  85. package/lib/services/FindParamRowsForAssoc.js.map +1 -0
  86. package/lib/services/FindRowByIdParam.d.ts +5 -0
  87. package/lib/services/FindRowByIdParam.js +2 -0
  88. package/lib/services/FindRowByIdParam.js.map +1 -0
  89. package/lib/services/GetAssocNameParam.d.ts +4 -0
  90. package/lib/services/GetAssocNameParam.js +2 -0
  91. package/lib/services/GetAssocNameParam.js.map +1 -0
  92. package/lib/services/RemoveRowParam.d.ts +5 -0
  93. package/lib/services/RemoveRowParam.js +2 -0
  94. package/lib/services/RemoveRowParam.js.map +1 -0
  95. package/lib/services/SaveRowParam.d.ts +5 -0
  96. package/lib/services/SaveRowParam.js +2 -0
  97. package/lib/services/SaveRowParam.js.map +1 -0
  98. package/lib/services/XAdvancedConsoleLogger.d.ts +4 -0
  99. package/lib/services/XAdvancedConsoleLogger.js +25 -0
  100. package/lib/services/XAdvancedConsoleLogger.js.map +1 -0
  101. package/lib/services/XAppError.d.ts +3 -0
  102. package/lib/services/XAppError.js +8 -0
  103. package/lib/services/XAppError.js.map +1 -0
  104. package/lib/services/XEnvVars.d.ts +23 -0
  105. package/lib/services/XEnvVars.js +27 -0
  106. package/lib/services/XEnvVars.js.map +1 -0
  107. package/lib/services/XOptimisticLockingSubscriber.d.ts +4 -0
  108. package/lib/services/XOptimisticLockingSubscriber.js +23 -0
  109. package/lib/services/XOptimisticLockingSubscriber.js.map +1 -0
  110. package/lib/services/XRowIdListToRemove.d.ts +10 -0
  111. package/lib/services/XRowIdListToRemove.js +26 -0
  112. package/lib/services/XRowIdListToRemove.js.map +1 -0
  113. package/lib/services/XUtils.d.ts +16 -0
  114. package/lib/services/XUtils.js +58 -0
  115. package/lib/services/XUtils.js.map +1 -0
  116. package/lib/services/index.d.ts +4 -0
  117. package/lib/services/index.js +5 -0
  118. package/lib/services/index.js.map +1 -0
  119. package/lib/services/x-browse-form-metadata.service.d.ts +7 -0
  120. package/lib/services/x-browse-form-metadata.service.js +40 -0
  121. package/lib/services/x-browse-form-metadata.service.js.map +1 -0
  122. package/lib/services/x-entity-metadata.service.d.ts +15 -0
  123. package/lib/services/x-entity-metadata.service.js +127 -0
  124. package/lib/services/x-entity-metadata.service.js.map +1 -0
  125. package/lib/services/x-exception.filter.d.ts +4 -0
  126. package/lib/services/x-exception.filter.js +64 -0
  127. package/lib/services/x-exception.filter.js.map +1 -0
  128. package/lib/services/x-export-csv.service.d.ts +24 -0
  129. package/lib/services/x-export-csv.service.js +155 -0
  130. package/lib/services/x-export-csv.service.js.map +1 -0
  131. package/lib/services/x-export-excel.service.d.ts +12 -0
  132. package/lib/services/x-export-excel.service.js +68 -0
  133. package/lib/services/x-export-excel.service.js.map +1 -0
  134. package/lib/services/x-export-json.service.d.ts +7 -0
  135. package/lib/services/x-export-json.service.js +45 -0
  136. package/lib/services/x-export-json.service.js.map +1 -0
  137. package/lib/services/x-export.service.d.ts +14 -0
  138. package/lib/services/x-export.service.js +90 -0
  139. package/lib/services/x-export.service.js.map +1 -0
  140. package/lib/services/x-file.controller.d.ts +13 -0
  141. package/lib/services/x-file.controller.js +111 -0
  142. package/lib/services/x-file.controller.js.map +1 -0
  143. package/lib/services/x-file.service.d.ts +8 -0
  144. package/lib/services/x-file.service.js +41 -0
  145. package/lib/services/x-file.service.js.map +1 -0
  146. package/lib/services/x-lazy-data-table.service.d.ts +33 -0
  147. package/lib/services/x-lazy-data-table.service.js +227 -0
  148. package/lib/services/x-lazy-data-table.service.js.map +1 -0
  149. package/lib/services/x-lib.controller.d.ts +45 -0
  150. package/lib/services/x-lib.controller.js +205 -0
  151. package/lib/services/x-lib.controller.js.map +1 -0
  152. package/lib/services/x-lib.module.d.ts +4 -0
  153. package/lib/services/x-lib.module.js +51 -0
  154. package/lib/services/x-lib.module.js.map +1 -0
  155. package/lib/services/x-lib.service.d.ts +33 -0
  156. package/lib/services/x-lib.service.js +264 -0
  157. package/lib/services/x-lib.service.js.map +1 -0
  158. package/lib/tsconfig.tsbuildinfo +1 -0
  159. package/lib/x-query-data/XMainQueryData.d.ts +27 -0
  160. package/lib/x-query-data/XMainQueryData.js +172 -0
  161. package/lib/x-query-data/XMainQueryData.js.map +1 -0
  162. package/lib/x-query-data/XQueryData.d.ts +33 -0
  163. package/lib/x-query-data/XQueryData.js +242 -0
  164. package/lib/x-query-data/XQueryData.js.map +1 -0
  165. package/lib/x-query-data/XSubQueryData.d.ts +11 -0
  166. package/lib/x-query-data/XSubQueryData.js +52 -0
  167. package/lib/x-query-data/XSubQueryData.js.map +1 -0
  168. package/package.json +100 -0
@@ -0,0 +1,205 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Body, Request, Controller, Post, Res } from '@nestjs/common';
14
+ import { XLibService } from "./x-lib.service.js";
15
+ import { XLazyDataTableService } from "./x-lazy-data-table.service.js";
16
+ import { XEntityMetadataService } from "./x-entity-metadata.service.js";
17
+ import { XBrowseFormMetadataService } from "./x-browse-form-metadata.service.js";
18
+ let XLibController = class XLibController {
19
+ xLibService;
20
+ xLazyDataTableService;
21
+ xEntityMetadataService;
22
+ xBrowseFormMetadataService;
23
+ constructor(xLibService, xLazyDataTableService, xEntityMetadataService, xBrowseFormMetadataService) {
24
+ this.xLibService = xLibService;
25
+ this.xLazyDataTableService = xLazyDataTableService;
26
+ this.xEntityMetadataService = xEntityMetadataService;
27
+ this.xBrowseFormMetadataService = xBrowseFormMetadataService;
28
+ }
29
+ async lazyDataTableFindRows(body) {
30
+ const findResult = await this.xLazyDataTableService.findRows(body);
31
+ return findResult;
32
+ }
33
+ async lazyDataTableExportExcel(body) {
34
+ return await this.xLazyDataTableService.exportExcel(body);
35
+ }
36
+ async lazyDataTableExportCsv(body, res) {
37
+ await this.xLazyDataTableService.exportCsv(body, res);
38
+ }
39
+ async lazyDataTableExportJson(body, res) {
40
+ await this.xLazyDataTableService.exportJson(body, res);
41
+ }
42
+ lazyAutoCompleteSuggestions(body) {
43
+ return this.xLazyDataTableService.lazyAutoCompleteSuggestions(body);
44
+ }
45
+ async findRowsForAssoc(body) {
46
+ const rows = await this.xLibService.findRowsForAssoc(body);
47
+ return rows;
48
+ }
49
+ async findRows(body) {
50
+ return await this.xLibService.findRows(body);
51
+ }
52
+ async findRowById(body) {
53
+ return await this.xLazyDataTableService.findRowById(body);
54
+ }
55
+ async saveRow(body) {
56
+ return await this.xLibService.saveRow(body);
57
+ }
58
+ async removeRow(body) {
59
+ await this.xLibService.removeRow(body);
60
+ }
61
+ async postLogin(req, xPostLoginRequest) {
62
+ return await this.xLibService.postLogin(req.user, xPostLoginRequest);
63
+ }
64
+ async userSaveRow(body) {
65
+ await this.xLibService.userSaveRow(body);
66
+ }
67
+ async getSequenceValue(xGetSequenceValueRequest) {
68
+ return { value: await this.xLibService.getSequenceValue(xGetSequenceValueRequest.name) };
69
+ }
70
+ async getParamValue(request) {
71
+ return { value: await this.xLibService.getParamValue(request.code) };
72
+ }
73
+ async getXEntityMap(body) {
74
+ console.log("************************* zavolany getXEntityMap *******************************************");
75
+ return this.xEntityMetadataService.getXEntityMap();
76
+ }
77
+ async getXBrowseMetaMap(body) {
78
+ console.log("*********************** zavolany getXBrowseMetaMap *****************************************");
79
+ return this.xBrowseFormMetadataService.getXBrowseMetaMap();
80
+ }
81
+ };
82
+ __decorate([
83
+ Post('lazyDataTableFindRows'),
84
+ __param(0, Body()),
85
+ __metadata("design:type", Function),
86
+ __metadata("design:paramtypes", [Object]),
87
+ __metadata("design:returntype", Promise)
88
+ ], XLibController.prototype, "lazyDataTableFindRows", null);
89
+ __decorate([
90
+ Post('x-lazy-data-table-export-excel'),
91
+ __param(0, Body()),
92
+ __metadata("design:type", Function),
93
+ __metadata("design:paramtypes", [Object]),
94
+ __metadata("design:returntype", Promise)
95
+ ], XLibController.prototype, "lazyDataTableExportExcel", null);
96
+ __decorate([
97
+ Post('x-lazy-data-table-export-csv'),
98
+ __param(0, Body()),
99
+ __param(1, Res()),
100
+ __metadata("design:type", Function),
101
+ __metadata("design:paramtypes", [Object, Object]),
102
+ __metadata("design:returntype", Promise)
103
+ ], XLibController.prototype, "lazyDataTableExportCsv", null);
104
+ __decorate([
105
+ Post('x-lazy-data-table-export-json'),
106
+ __param(0, Body()),
107
+ __param(1, Res()),
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [Object, Object]),
110
+ __metadata("design:returntype", Promise)
111
+ ], XLibController.prototype, "lazyDataTableExportJson", null);
112
+ __decorate([
113
+ Post('x-lazy-auto-complete-suggestions'),
114
+ __param(0, Body()),
115
+ __metadata("design:type", Function),
116
+ __metadata("design:paramtypes", [Object]),
117
+ __metadata("design:returntype", Promise)
118
+ ], XLibController.prototype, "lazyAutoCompleteSuggestions", null);
119
+ __decorate([
120
+ Post('findRowsForAssoc'),
121
+ __param(0, Body()),
122
+ __metadata("design:type", Function),
123
+ __metadata("design:paramtypes", [Object]),
124
+ __metadata("design:returntype", Promise)
125
+ ], XLibController.prototype, "findRowsForAssoc", null);
126
+ __decorate([
127
+ Post('findRows'),
128
+ __param(0, Body()),
129
+ __metadata("design:type", Function),
130
+ __metadata("design:paramtypes", [Object]),
131
+ __metadata("design:returntype", Promise)
132
+ ], XLibController.prototype, "findRows", null);
133
+ __decorate([
134
+ Post('findRowById'),
135
+ __param(0, Body()),
136
+ __metadata("design:type", Function),
137
+ __metadata("design:paramtypes", [Object]),
138
+ __metadata("design:returntype", Promise)
139
+ ], XLibController.prototype, "findRowById", null);
140
+ __decorate([
141
+ Post('saveRow'),
142
+ __param(0, Body()),
143
+ __metadata("design:type", Function),
144
+ __metadata("design:paramtypes", [Object]),
145
+ __metadata("design:returntype", Promise)
146
+ ], XLibController.prototype, "saveRow", null);
147
+ __decorate([
148
+ Post('removeRow'),
149
+ __param(0, Body()),
150
+ __metadata("design:type", Function),
151
+ __metadata("design:paramtypes", [Object]),
152
+ __metadata("design:returntype", Promise)
153
+ ], XLibController.prototype, "removeRow", null);
154
+ __decorate([
155
+ Post('post-login'),
156
+ __param(0, Request()),
157
+ __param(1, Body()),
158
+ __metadata("design:type", Function),
159
+ __metadata("design:paramtypes", [Object, Object]),
160
+ __metadata("design:returntype", Promise)
161
+ ], XLibController.prototype, "postLogin", null);
162
+ __decorate([
163
+ Post('userSaveRow'),
164
+ __param(0, Body()),
165
+ __metadata("design:type", Function),
166
+ __metadata("design:paramtypes", [Object]),
167
+ __metadata("design:returntype", Promise)
168
+ ], XLibController.prototype, "userSaveRow", null);
169
+ __decorate([
170
+ Post('x-get-sequence-value'),
171
+ __param(0, Body()),
172
+ __metadata("design:type", Function),
173
+ __metadata("design:paramtypes", [Object]),
174
+ __metadata("design:returntype", Promise)
175
+ ], XLibController.prototype, "getSequenceValue", null);
176
+ __decorate([
177
+ Post('x-get-param-value'),
178
+ __param(0, Body()),
179
+ __metadata("design:type", Function),
180
+ __metadata("design:paramtypes", [Object]),
181
+ __metadata("design:returntype", Promise)
182
+ ], XLibController.prototype, "getParamValue", null);
183
+ __decorate([
184
+ Post('getXEntityMap'),
185
+ __param(0, Body()),
186
+ __metadata("design:type", Function),
187
+ __metadata("design:paramtypes", [Object]),
188
+ __metadata("design:returntype", Promise)
189
+ ], XLibController.prototype, "getXEntityMap", null);
190
+ __decorate([
191
+ Post('getXBrowseMetaMap'),
192
+ __param(0, Body()),
193
+ __metadata("design:type", Function),
194
+ __metadata("design:paramtypes", [Object]),
195
+ __metadata("design:returntype", Promise)
196
+ ], XLibController.prototype, "getXBrowseMetaMap", null);
197
+ XLibController = __decorate([
198
+ Controller(),
199
+ __metadata("design:paramtypes", [XLibService,
200
+ XLazyDataTableService,
201
+ XEntityMetadataService,
202
+ XBrowseFormMetadataService])
203
+ ], XLibController);
204
+ export { XLibController };
205
+ //# sourceMappingURL=x-lib.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x-lib.controller.js","sourceRoot":"","sources":["../../src/services/x-lib.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ export declare class XLibModule {
3
+ static forRoot(): DynamicModule;
4
+ }
@@ -0,0 +1,51 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var XLibModule_1;
8
+ import { Module } from '@nestjs/common';
9
+ import { XLibController } from './x-lib.controller.js';
10
+ import { XLibService } from './x-lib.service.js';
11
+ import { XLazyDataTableService } from './x-lazy-data-table.service.js';
12
+ import { XEntityMetadataService } from "./x-entity-metadata.service.js";
13
+ import { XBrowseFormMetadataService } from "./x-browse-form-metadata.service.js";
14
+ import { XFileController } from "./x-file.controller.js";
15
+ import { XFileService } from "./x-file.service.js";
16
+ import { XExportCsvService } from "./x-export-csv.service.js";
17
+ import { XExportJsonService } from "./x-export-json.service.js";
18
+ import { XExportExcelService } from "./x-export-excel.service.js";
19
+ let XLibModule = XLibModule_1 = class XLibModule {
20
+ static forRoot() {
21
+ return {
22
+ imports: [],
23
+ controllers: [XLibController, XFileController],
24
+ providers: [
25
+ XLibService,
26
+ XLazyDataTableService,
27
+ XExportCsvService,
28
+ XExportExcelService,
29
+ XExportJsonService,
30
+ XEntityMetadataService,
31
+ XBrowseFormMetadataService,
32
+ XFileService
33
+ ],
34
+ exports: [
35
+ XLibService,
36
+ XFileService,
37
+ XLazyDataTableService,
38
+ XExportCsvService,
39
+ XExportExcelService,
40
+ XExportJsonService,
41
+ XEntityMetadataService
42
+ ],
43
+ module: XLibModule_1
44
+ };
45
+ }
46
+ };
47
+ XLibModule = XLibModule_1 = __decorate([
48
+ Module({})
49
+ ], XLibModule);
50
+ export { XLibModule };
51
+ //# sourceMappingURL=x-lib.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x-lib.module.js","sourceRoot":"","sources":["../../src/services/x-lib.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAgB,MAAM,EAAC,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAC,cAAc,EAAC,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAC,qBAAqB,EAAC,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAGzD,IAAM,UAAU,kBAAhB,MAAM,UAAU;IAGrB,MAAM,CAAC,OAAO;QAEZ,OAAO;YACL,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;YAC9C,SAAS,EAAE;gBACP,WAAW;gBACX,qBAAqB;gBACrB,iBAAiB;gBACjB,mBAAmB;gBACnB,kBAAkB;gBAClB,sBAAsB;gBACtB,0BAA0B;gBAC1B,YAAY;aACf;YAEC,OAAO,EAAE;gBACL,WAAW;gBACX,YAAY;gBACZ,qBAAqB;gBACrB,iBAAiB;gBACjB,mBAAmB;gBACnB,kBAAkB;gBAClB,sBAAsB;aACzB;YACH,MAAM,EAAE,YAAU;SACnB,CAAC;IACJ,CAAC;CACF,CAAA;AA/BY,UAAU;IADtB,MAAM,CAAC,EAAE,CAAC;GACE,UAAU,CA+BtB"}
@@ -0,0 +1,33 @@
1
+ import { DataSource, EntityManager, SelectQueryBuilder } from "typeorm";
2
+ import { XEntityMetadataService } from "./x-entity-metadata.service.js";
3
+ import { XAssoc, XEntity } from "../serverApi/XEntityMetadata.js";
4
+ import { FindParamRowsForAssoc } from "./FindParamRowsForAssoc.js";
5
+ import { SaveRowParam } from "./SaveRowParam.js";
6
+ import { RemoveRowParam } from "./RemoveRowParam.js";
7
+ import { FindParamRows } from "./FindParamRows.js";
8
+ import { XPostLoginRequest, XPostLoginResponse } from "../serverApi/XPostLoginIfc.js";
9
+ import { XRowIdListToRemove } from "./XRowIdListToRemove.js";
10
+ export declare class XLibService {
11
+ private readonly dataSource;
12
+ private readonly xEntityMetadataService;
13
+ constructor(dataSource: DataSource, xEntityMetadataService: XEntityMetadataService);
14
+ findRowsForAssoc(findParamRows: FindParamRowsForAssoc): Promise<any[]>;
15
+ findRows(findParamRows: FindParamRows): Promise<any[]>;
16
+ saveRow(row: SaveRowParam): Promise<any>;
17
+ saveRowInTransaction(manager: EntityManager, row: SaveRowParam, fileListToRemove?: Array<string>): Promise<any>;
18
+ removeRow(row: RemoveRowParam): Promise<void>;
19
+ removeRowInTransaction(manager: EntityManager, row: RemoveRowParam, fileListToRemove?: Array<string>): Promise<void>;
20
+ removeRowsInTransaction(manager: EntityManager, xEntity: XEntity, rowIdList: any[], fileListToRemove?: Array<string>, assocsToRemove?: string[]): Promise<void>;
21
+ addAssocsOfEntity(selectQueryBuilder: SelectQueryBuilder<unknown>, xEntity: XEntity, alias: string, assocsToRemove?: string[]): boolean;
22
+ addRowOfEntityToRemove(xEntity: XEntity, row: any, rowIdListToRemove: XRowIdListToRemove, fileListToRemove?: Array<string>, assocsToRemove?: string[]): void;
23
+ filterForAssocToRemove(assoc: XAssoc, assocsToRemove?: string[]): boolean;
24
+ deleteRows(manager: EntityManager, entity: string, rowIdList: any[]): Promise<void>;
25
+ removeFiles(fileListToRemove: Array<string>): void;
26
+ userSaveRow(row: SaveRowParam): Promise<void>;
27
+ postLogin(reqUser: any, xPostLoginRequest: XPostLoginRequest): Promise<XPostLoginResponse>;
28
+ getSequenceValue(sequenceName: string): Promise<number>;
29
+ setSequenceValue(sequenceName: string, value: number): Promise<void>;
30
+ getParamValueAsInt(paramCode: string): Promise<number>;
31
+ getParamValueAsDate(paramCode: string): Promise<Date>;
32
+ getParamValue(paramCode: string): Promise<string>;
33
+ }
@@ -0,0 +1,264 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Injectable } from '@nestjs/common';
11
+ import { DataSource } from "typeorm";
12
+ import { XEntityMetadataService } from "./x-entity-metadata.service.js";
13
+ import { XUser } from "../administration/x-user.entity.js";
14
+ import { XUtils } from "./XUtils.js";
15
+ import { XAuth, XEnvVar } from "./XEnvVars.js";
16
+ import { join } from "path";
17
+ import { unlinkSync } from "fs";
18
+ import { XRowIdListToRemove } from "./XRowIdListToRemove.js";
19
+ import { XParam } from "../administration/x-param.entity.js";
20
+ import { dateFromUI, intFromUI, numberFromModel } from "../serverApi/XUtilsConversions.js";
21
+ let XLibService = class XLibService {
22
+ dataSource;
23
+ xEntityMetadataService;
24
+ constructor(dataSource, xEntityMetadataService) {
25
+ this.dataSource = dataSource;
26
+ this.xEntityMetadataService = xEntityMetadataService;
27
+ }
28
+ async findRowsForAssoc(findParamRows) {
29
+ const repository = this.dataSource.getRepository(findParamRows.entity);
30
+ const entityMetadata = repository.metadata;
31
+ const relationMetadata = entityMetadata.findRelationWithPropertyPath(findParamRows.assocField);
32
+ if (relationMetadata === undefined) {
33
+ throw "Unexpected error - RelationMetadata for property " + findParamRows.assocField + " not found for entity " + findParamRows.entity;
34
+ }
35
+ const repositoryForAssoc = this.dataSource.getRepository(relationMetadata.type);
36
+ const selectQueryBuilder = repositoryForAssoc.createQueryBuilder("t0");
37
+ if (findParamRows.displayField !== undefined && findParamRows.displayField !== null && findParamRows.filter !== undefined && findParamRows.filter !== null) {
38
+ selectQueryBuilder.where("t0." + findParamRows.displayField + " LIKE :filter", { filter: findParamRows.filter + "%" });
39
+ }
40
+ const rows = await selectQueryBuilder.getMany();
41
+ return rows;
42
+ }
43
+ async findRows(findParamRows) {
44
+ const repository = this.dataSource.getRepository(findParamRows.entity);
45
+ const selectQueryBuilder = repository.createQueryBuilder("t0");
46
+ if (findParamRows.displayField && findParamRows.filter) {
47
+ selectQueryBuilder.where("t0." + findParamRows.displayField + " LIKE :filter", { filter: findParamRows.filter + "%" });
48
+ }
49
+ if (findParamRows.sortMeta) {
50
+ let orderByItems = {};
51
+ orderByItems["t0." + findParamRows.sortMeta.field] = (findParamRows.sortMeta.order === 1 ? "ASC" : "DESC");
52
+ selectQueryBuilder.orderBy(orderByItems);
53
+ }
54
+ return await selectQueryBuilder.getMany();
55
+ }
56
+ async saveRow(row) {
57
+ const fileListToRemove = new Array();
58
+ const objectReloaded = await this.dataSource.transaction(manager => this.saveRowInTransaction(manager, row, fileListToRemove));
59
+ this.removeFiles(fileListToRemove);
60
+ return objectReloaded;
61
+ }
62
+ async saveRowInTransaction(manager, row, fileListToRemove) {
63
+ const xEntity = this.xEntityMetadataService.getXEntity(row.entity);
64
+ if (row.object.__x_generatedRowId) {
65
+ row.object[xEntity.idField] = undefined;
66
+ delete row.object.__x_generatedRowId;
67
+ }
68
+ let assocOneToManyList = this.xEntityMetadataService.getXAssocList(xEntity, ["one-to-many"]);
69
+ const rowId = row.object[xEntity.idField];
70
+ const insert = (rowId === undefined);
71
+ assocOneToManyList = assocOneToManyList.filter(insert ? (assoc) => assoc.isCascadeInsert : (assoc) => assoc.isCascadeUpdate);
72
+ for (const assoc of assocOneToManyList) {
73
+ const xChildEntity = this.xEntityMetadataService.getXEntity(assoc.entityName);
74
+ const childRowList = row.object[assoc.name];
75
+ if (childRowList === undefined) {
76
+ continue;
77
+ }
78
+ for (const childRow of childRowList) {
79
+ if (childRow.__x_generatedRowId) {
80
+ childRow[xChildEntity.idField] = undefined;
81
+ delete childRow.__x_generatedRowId;
82
+ }
83
+ }
84
+ }
85
+ if (!insert) {
86
+ for (const assoc of assocOneToManyList) {
87
+ const xChildEntity = this.xEntityMetadataService.getXEntity(assoc.entityName);
88
+ const idList = [];
89
+ const childRowList = row.object[assoc.name];
90
+ if (childRowList === undefined) {
91
+ continue;
92
+ }
93
+ for (const childRow of childRowList) {
94
+ const id = childRow[xChildEntity.idField];
95
+ if (id !== null && id !== undefined) {
96
+ idList.push(id);
97
+ }
98
+ }
99
+ if (assoc.inverseAssocName === undefined) {
100
+ throw `Assoc ${xEntity.name}.${assoc.name} has no inverse assoc.`;
101
+ }
102
+ const repository = manager.getRepository(xChildEntity.name);
103
+ const selectQueryBuilder = repository.createQueryBuilder("t0");
104
+ selectQueryBuilder.where(`t0.${assoc.inverseAssocName} = :rowId`, { rowId: rowId });
105
+ if (idList.length > 0) {
106
+ selectQueryBuilder.andWhere(`t0.${xChildEntity.idField} NOT IN (:...idList)`, { idList: idList });
107
+ }
108
+ const rowList = await selectQueryBuilder.getMany();
109
+ if (rowList.length > 0) {
110
+ const rowIdList = rowList.map(row => row[xChildEntity.idField]);
111
+ await this.removeRowsInTransaction(manager, xChildEntity, rowIdList, fileListToRemove);
112
+ }
113
+ }
114
+ }
115
+ const repository = manager.getRepository(row.entity);
116
+ const objectReloaded = await repository.save(row.object);
117
+ return row.reload ? objectReloaded : {};
118
+ }
119
+ async removeRow(row) {
120
+ const fileListToRemove = new Array();
121
+ await this.dataSource.transaction(manager => this.removeRowInTransaction(manager, row, fileListToRemove));
122
+ this.removeFiles(fileListToRemove);
123
+ }
124
+ async removeRowInTransaction(manager, row, fileListToRemove) {
125
+ const xEntity = this.xEntityMetadataService.getXEntity(row.entity);
126
+ return this.removeRowsInTransaction(manager, xEntity, [row.id], fileListToRemove, row.assocsToRemove);
127
+ }
128
+ async removeRowsInTransaction(manager, xEntity, rowIdList, fileListToRemove, assocsToRemove) {
129
+ const alias = "t";
130
+ const repository = manager.getRepository(xEntity.name);
131
+ const selectQueryBuilder = repository.createQueryBuilder(alias);
132
+ if (this.addAssocsOfEntity(selectQueryBuilder, xEntity, alias, assocsToRemove)) {
133
+ selectQueryBuilder.whereInIds(rowIdList);
134
+ const rowList = await selectQueryBuilder.getMany();
135
+ const rowIdListToRemove = new XRowIdListToRemove();
136
+ for (const row of rowList) {
137
+ this.addRowOfEntityToRemove(xEntity, row, rowIdListToRemove, fileListToRemove, assocsToRemove);
138
+ }
139
+ for (const rowIdList of rowIdListToRemove.entityRowIdListList) {
140
+ await this.deleteRows(manager, rowIdList.entity, rowIdList.rowIdList);
141
+ }
142
+ }
143
+ else {
144
+ await this.deleteRows(manager, xEntity.name, rowIdList);
145
+ }
146
+ }
147
+ addAssocsOfEntity(selectQueryBuilder, xEntity, alias, assocsToRemove) {
148
+ let leftJoinAdded = false;
149
+ const assocList = this.xEntityMetadataService.getXAssocList(xEntity).filter((assoc) => this.filterForAssocToRemove(assoc, assocsToRemove));
150
+ for (const [index, assoc] of assocList.entries()) {
151
+ const aliasForAssoc = `${alias}_${index}`;
152
+ selectQueryBuilder.leftJoinAndSelect(`${alias}.${assoc.name}`, aliasForAssoc);
153
+ leftJoinAdded = true;
154
+ const xAssocEntity = this.xEntityMetadataService.getXEntity(assoc.entityName);
155
+ this.addAssocsOfEntity(selectQueryBuilder, xAssocEntity, aliasForAssoc, undefined);
156
+ }
157
+ return leftJoinAdded;
158
+ }
159
+ addRowOfEntityToRemove(xEntity, row, rowIdListToRemove, fileListToRemove, assocsToRemove) {
160
+ const assocToManyList = this.xEntityMetadataService.getXAssocList(xEntity, ["one-to-many", "many-to-many"]).filter((assoc) => this.filterForAssocToRemove(assoc, assocsToRemove));
161
+ for (const assoc of assocToManyList) {
162
+ const assocRowList = row[assoc.name];
163
+ for (const assocRow of assocRowList) {
164
+ this.addRowOfEntityToRemove(this.xEntityMetadataService.getXEntity(assoc.entityName), assocRow, rowIdListToRemove, fileListToRemove, undefined);
165
+ }
166
+ }
167
+ const rowId = row[xEntity.idField];
168
+ rowIdListToRemove.addRowId(xEntity.name, rowId);
169
+ if (fileListToRemove !== undefined && xEntity.name === "XFile") {
170
+ if (row.pathName !== null) {
171
+ fileListToRemove.push(join(XUtils.getXFilesDir(), row.pathName));
172
+ }
173
+ }
174
+ const assocToOneList = this.xEntityMetadataService.getXAssocList(xEntity, ["one-to-one", "many-to-one"]).filter((assoc) => this.filterForAssocToRemove(assoc, assocsToRemove));
175
+ for (const assoc of assocToOneList) {
176
+ const assocRow = row[assoc.name];
177
+ if (assocRow) {
178
+ this.addRowOfEntityToRemove(this.xEntityMetadataService.getXEntity(assoc.entityName), assocRow, rowIdListToRemove, fileListToRemove, undefined);
179
+ }
180
+ }
181
+ }
182
+ filterForAssocToRemove(assoc, assocsToRemove) {
183
+ return assoc.isCascadeRemove || (assocsToRemove !== undefined && assocsToRemove.includes(assoc.name));
184
+ }
185
+ async deleteRows(manager, entity, rowIdList) {
186
+ const repository = manager.getRepository(entity);
187
+ await repository.delete(rowIdList);
188
+ }
189
+ removeFiles(fileListToRemove) {
190
+ for (const file of fileListToRemove) {
191
+ try {
192
+ unlinkSync(file);
193
+ }
194
+ catch (e) {
195
+ console.log(`Could not remove file ${file}. Error: ${e}`);
196
+ }
197
+ }
198
+ }
199
+ async userSaveRow(row) {
200
+ const repository = this.dataSource.getRepository(row.entity);
201
+ await this.saveRow(row);
202
+ }
203
+ async postLogin(reqUser, xPostLoginRequest) {
204
+ let username;
205
+ if (XUtils.getEnvVarValue(XEnvVar.X_AUTH) === XAuth.OFF) {
206
+ username = xPostLoginRequest.username;
207
+ }
208
+ else if (XUtils.getEnvVarValue(XEnvVar.X_AUTH) === XAuth.AUTH0) {
209
+ const emailKey = 'x-custom-claim-email';
210
+ username = reqUser[emailKey];
211
+ if (username === undefined) {
212
+ throw `Email of the current user was not found in access token. Email-key = ${emailKey}`;
213
+ }
214
+ }
215
+ else if (XUtils.getEnvVarValue(XEnvVar.X_AUTH) === XAuth.MS_ENTRA_ID) {
216
+ username = reqUser.preferred_username;
217
+ }
218
+ const repository = this.dataSource.getRepository(XUser);
219
+ const selectQueryBuilder = repository.createQueryBuilder("xUser");
220
+ selectQueryBuilder.where("xUser.username = :username", { username: username });
221
+ const xUser = await selectQueryBuilder.getOne();
222
+ return { xUser: xUser !== null ? xUser : undefined };
223
+ }
224
+ async getSequenceValue(sequenceName) {
225
+ const rowList = await this.dataSource.query(`SELECT nextval('${XUtils.getSchema()}.${sequenceName}') AS value`);
226
+ return numberFromModel(rowList[0].value);
227
+ }
228
+ async setSequenceValue(sequenceName, value) {
229
+ await this.dataSource.query(`SELECT setval('${XUtils.getSchema()}.${sequenceName}', ${value}, false)`);
230
+ }
231
+ async getParamValueAsInt(paramCode) {
232
+ const paramValue = await this.getParamValue(paramCode);
233
+ const paramValueInt = intFromUI(paramValue);
234
+ if (paramValueInt === null || paramValueInt === undefined) {
235
+ throw `Param ${paramCode}: could not convert param value ${paramValue} to int.`;
236
+ }
237
+ return paramValueInt;
238
+ }
239
+ async getParamValueAsDate(paramCode) {
240
+ const paramValue = await this.getParamValue(paramCode);
241
+ const paramValueDate = dateFromUI(paramValue);
242
+ if (paramValueDate === null || paramValueDate === undefined) {
243
+ throw `Param ${paramCode}: could not convert param value ${paramValue} to date.`;
244
+ }
245
+ return paramValueDate;
246
+ }
247
+ async getParamValue(paramCode) {
248
+ const repository = this.dataSource.getRepository(XParam);
249
+ const sqb = repository.createQueryBuilder("xParam");
250
+ sqb.where("xParam.code = :code", { code: paramCode });
251
+ const xParam = await sqb.getOne();
252
+ if (xParam === null) {
253
+ throw `XParam row for code = ${paramCode} not found.`;
254
+ }
255
+ return xParam.value;
256
+ }
257
+ };
258
+ XLibService = __decorate([
259
+ Injectable(),
260
+ __metadata("design:paramtypes", [DataSource,
261
+ XEntityMetadataService])
262
+ ], XLibService);
263
+ export { XLibService };
264
+ //# sourceMappingURL=x-lib.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x-lib.service.js","sourceRoot":"","sources":["../../src/services/x-lib.service.ts"],"names":[],"mappings":"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"}