@servicelabsco/slabs-access-manager 2.0.12 → 2.0.14

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 (148) hide show
  1. package/AGENTS.md +2 -0
  2. package/CLAUDE.md +2 -0
  3. package/dist/access/controllers/bulk.upload.controller.d.ts +10 -1
  4. package/dist/access/controllers/bulk.upload.controller.js +50 -2
  5. package/dist/access/controllers/bulk.upload.controller.js.map +1 -1
  6. package/dist/access/controllers/developer.menu.controller.d.ts +5 -3
  7. package/dist/access/controllers/developer.menu.controller.js +7 -6
  8. package/dist/access/controllers/developer.menu.controller.js.map +1 -1
  9. package/dist/access/controllers/developer.report.controller.d.ts +88 -0
  10. package/dist/access/controllers/developer.report.controller.js +128 -0
  11. package/dist/access/controllers/developer.report.controller.js.map +1 -0
  12. package/dist/access/controllers/index.d.ts +1 -0
  13. package/dist/access/controllers/index.js +1 -0
  14. package/dist/access/controllers/index.js.map +1 -1
  15. package/dist/access/dtos/business.downloadable.report.dto.d.ts +4 -0
  16. package/dist/access/dtos/business.downloadable.report.dto.js +28 -0
  17. package/dist/access/dtos/business.downloadable.report.dto.js.map +1 -0
  18. package/dist/access/dtos/business.menu.layout.attributes.dto.d.ts +1 -0
  19. package/dist/access/dtos/business.menu.layout.attributes.dto.js.map +1 -1
  20. package/dist/access/dtos/developer.search.query.dto.d.ts +4 -0
  21. package/dist/access/dtos/developer.search.query.dto.js +24 -0
  22. package/dist/access/dtos/developer.search.query.dto.js.map +1 -0
  23. package/dist/access/dtos/downloadable.report.dto.d.ts +8 -0
  24. package/dist/access/dtos/downloadable.report.dto.js +54 -0
  25. package/dist/access/dtos/downloadable.report.dto.js.map +1 -0
  26. package/dist/access/dtos/index.d.ts +4 -0
  27. package/dist/access/dtos/index.js +4 -0
  28. package/dist/access/dtos/index.js.map +1 -1
  29. package/dist/access/dtos/report.sheet.dto.d.ts +9 -0
  30. package/dist/access/dtos/report.sheet.dto.js +59 -0
  31. package/dist/access/dtos/report.sheet.dto.js.map +1 -0
  32. package/dist/access/entities/access.country.entity.js.map +1 -1
  33. package/dist/access/entities/business.menu.layout.entity.js.map +1 -1
  34. package/dist/access/entities/business.ui.action.entity.js.map +1 -1
  35. package/dist/access/es6.classes.d.ts +23 -21
  36. package/dist/access/es6.classes.js +46 -36
  37. package/dist/access/es6.classes.js.map +1 -1
  38. package/dist/access/libraries/index.d.ts +1 -0
  39. package/dist/access/libraries/index.js +1 -0
  40. package/dist/access/libraries/index.js.map +1 -1
  41. package/dist/access/libraries/process.application.menu.js +6 -1
  42. package/dist/access/libraries/process.application.menu.js.map +1 -1
  43. package/dist/access/libraries/process.developer.menu.d.ts +8 -3
  44. package/dist/access/libraries/process.developer.menu.js +74 -17
  45. package/dist/access/libraries/process.developer.menu.js.map +1 -1
  46. package/dist/access/libraries/process.downloadable.report.d.ts +91 -0
  47. package/dist/access/libraries/process.downloadable.report.js +221 -0
  48. package/dist/access/libraries/process.downloadable.report.js.map +1 -0
  49. package/dist/access/services/developer.mode.access.service.d.ts +2 -0
  50. package/dist/access/services/developer.mode.access.service.js +25 -1
  51. package/dist/access/services/developer.mode.access.service.js.map +1 -1
  52. package/dist/accessUtility/controllers/bulk.definition.controller.d.ts +18 -1
  53. package/dist/accessUtility/controllers/bulk.definition.controller.js +107 -2
  54. package/dist/accessUtility/controllers/bulk.definition.controller.js.map +1 -1
  55. package/dist/accessUtility/dtos/add.bulk.upload.column.dto.d.ts +10 -0
  56. package/dist/accessUtility/dtos/add.bulk.upload.column.dto.js +66 -0
  57. package/dist/accessUtility/dtos/add.bulk.upload.column.dto.js.map +1 -0
  58. package/dist/accessUtility/dtos/add.bulk.upload.type.dto.d.ts +11 -0
  59. package/dist/accessUtility/dtos/add.bulk.upload.type.dto.js +68 -0
  60. package/dist/accessUtility/dtos/add.bulk.upload.type.dto.js.map +1 -0
  61. package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.d.ts +10 -0
  62. package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.js +4 -1
  63. package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.js.map +1 -1
  64. package/dist/accessUtility/dtos/index.d.ts +3 -0
  65. package/dist/accessUtility/dtos/index.js +3 -0
  66. package/dist/accessUtility/dtos/index.js.map +1 -1
  67. package/dist/accessUtility/dtos/match.bulk.upload.file.dto.d.ts +3 -0
  68. package/dist/accessUtility/dtos/match.bulk.upload.file.dto.js +24 -0
  69. package/dist/accessUtility/dtos/match.bulk.upload.file.dto.js.map +1 -0
  70. package/dist/accessUtility/es6.classes.d.ts +10 -4
  71. package/dist/accessUtility/es6.classes.js +16 -0
  72. package/dist/accessUtility/es6.classes.js.map +1 -1
  73. package/dist/accessUtility/jobs/analyse.bulk.upload.job.d.ts +3 -1
  74. package/dist/accessUtility/jobs/analyse.bulk.upload.job.js +6 -3
  75. package/dist/accessUtility/jobs/analyse.bulk.upload.job.js.map +1 -1
  76. package/dist/accessUtility/jobs/bulk.upload.column.match.job.d.ts +0 -1
  77. package/dist/accessUtility/jobs/bulk.upload.column.match.job.js +3 -14
  78. package/dist/accessUtility/jobs/bulk.upload.column.match.job.js.map +1 -1
  79. package/dist/accessUtility/libraries/analyse.bulk.upload.d.ts +3 -1
  80. package/dist/accessUtility/libraries/analyse.bulk.upload.js +5 -1
  81. package/dist/accessUtility/libraries/analyse.bulk.upload.js.map +1 -1
  82. package/dist/accessUtility/libraries/extract.bulk.upload.headers.d.ts +16 -0
  83. package/dist/accessUtility/libraries/extract.bulk.upload.headers.js +78 -0
  84. package/dist/accessUtility/libraries/extract.bulk.upload.headers.js.map +1 -0
  85. package/dist/accessUtility/libraries/flatten.excel.rich.text.d.ts +5 -0
  86. package/dist/accessUtility/libraries/flatten.excel.rich.text.js +33 -0
  87. package/dist/accessUtility/libraries/flatten.excel.rich.text.js.map +1 -0
  88. package/dist/accessUtility/libraries/index.d.ts +5 -0
  89. package/dist/accessUtility/libraries/index.js +5 -0
  90. package/dist/accessUtility/libraries/index.js.map +1 -1
  91. package/dist/accessUtility/libraries/load.xls.file.js +2 -0
  92. package/dist/accessUtility/libraries/load.xls.file.js.map +1 -1
  93. package/dist/accessUtility/libraries/match.bulk.upload.columns.d.ts +16 -0
  94. package/dist/accessUtility/libraries/match.bulk.upload.columns.js +82 -0
  95. package/dist/accessUtility/libraries/match.bulk.upload.columns.js.map +1 -0
  96. package/dist/accessUtility/libraries/process.bulk.upload.format.d.ts +24 -0
  97. package/dist/accessUtility/libraries/process.bulk.upload.format.js +167 -0
  98. package/dist/accessUtility/libraries/process.bulk.upload.format.js.map +1 -0
  99. package/dist/accessUtility/libraries/read.xls.file.d.ts +1 -0
  100. package/dist/accessUtility/libraries/read.xls.file.js +16 -7
  101. package/dist/accessUtility/libraries/read.xls.file.js.map +1 -1
  102. package/dist/accessUtility/libraries/score.bulk.upload.columns.d.ts +16 -0
  103. package/dist/accessUtility/libraries/score.bulk.upload.columns.js +57 -0
  104. package/dist/accessUtility/libraries/score.bulk.upload.columns.js.map +1 -0
  105. package/dist/auth.controller.d.ts +6 -1
  106. package/dist/auth.controller.js +22 -3
  107. package/dist/auth.controller.js.map +1 -1
  108. package/dist/development/controllers/development.report.controller.d.ts +82 -0
  109. package/dist/development/controllers/development.report.controller.js +89 -0
  110. package/dist/development/controllers/development.report.controller.js.map +1 -1
  111. package/dist/mcp/admin/tools/admin.tool.registry.js +16 -0
  112. package/dist/mcp/admin/tools/admin.tool.registry.js.map +1 -1
  113. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.business.get.tool.d.ts +19 -0
  114. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.business.get.tool.js +24 -0
  115. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.business.get.tool.js.map +1 -0
  116. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.business.set.tool.d.ts +22 -0
  117. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.business.set.tool.js +26 -0
  118. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.business.set.tool.js.map +1 -0
  119. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.businesses.list.tool.d.ts +19 -0
  120. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.businesses.list.tool.js +25 -0
  121. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.businesses.list.tool.js.map +1 -0
  122. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.get.tool.d.ts +17 -0
  123. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.get.tool.js +23 -0
  124. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.get.tool.js.map +1 -0
  125. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.list.tool.d.ts +17 -0
  126. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.list.tool.js +24 -0
  127. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.list.tool.js.map +1 -0
  128. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.upsert.tool.d.ts +26 -0
  129. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.upsert.tool.js +50 -0
  130. package/dist/mcp/admin/tools/downloadable_report/downloadable.report.upsert.tool.js.map +1 -0
  131. package/dist/mcp/admin/tools/downloadable_report/index.d.ts +8 -0
  132. package/dist/mcp/admin/tools/downloadable_report/index.js +25 -0
  133. package/dist/mcp/admin/tools/downloadable_report/index.js.map +1 -0
  134. package/dist/mcp/admin/tools/downloadable_report/report.sheet.delete.tool.d.ts +19 -0
  135. package/dist/mcp/admin/tools/downloadable_report/report.sheet.delete.tool.js +24 -0
  136. package/dist/mcp/admin/tools/downloadable_report/report.sheet.delete.tool.js.map +1 -0
  137. package/dist/mcp/admin/tools/downloadable_report/report.sheet.upsert.tool.d.ts +30 -0
  138. package/dist/mcp/admin/tools/downloadable_report/report.sheet.upsert.tool.js +48 -0
  139. package/dist/mcp/admin/tools/downloadable_report/report.sheet.upsert.tool.js.map +1 -0
  140. package/dist/mcp/admin/tools/index.d.ts +1 -0
  141. package/dist/mcp/admin/tools/index.js +1 -0
  142. package/dist/mcp/admin/tools/index.js.map +1 -1
  143. package/dist/mcp/admin/tools/menu/menu.list.tool.js +4 -1
  144. package/dist/mcp/admin/tools/menu/menu.list.tool.js.map +1 -1
  145. package/dist/mcp/es6.classes.d.ts +9 -1
  146. package/dist/mcp/es6.classes.js +16 -0
  147. package/dist/mcp/es6.classes.js.map +1 -1
  148. package/package.json +2 -2
@@ -8,17 +8,19 @@ const business_menu_entity_1 = require("../entities/business.menu.entity");
8
8
  const business_menu_layout_entity_1 = require("../entities/business.menu.layout.entity");
9
9
  const feature_entity_1 = require("../entities/feature.entity");
10
10
  const module_entity_1 = require("../entities/module.entity");
11
+ const module_menu_entity_1 = require("../entities/module.menu.entity");
11
12
  const product_entity_1 = require("../entities/product.entity");
12
13
  const apply_menu_layout_1 = require("./apply.menu.layout");
13
14
  class ProcessDeveloperMenu {
14
15
  constructor(business) {
15
16
  this.business = business;
16
17
  }
17
- async features(productId) {
18
+ async features(productId, q) {
18
19
  await this.validateProduct(productId);
19
20
  const features = await feature_entity_1.FeatureEntity.find({ where: { product_id: productId }, order: { name: 'ASC' } });
20
21
  const businessFeatures = await business_feature_entity_1.BusinessFeatureEntity.find({ where: { business_id: this.business.id } });
21
- return features.map((feature) => {
22
+ const matching = features.filter((feature) => this.containsSearch([feature.name, feature.description], q));
23
+ return matching.map((feature) => {
22
24
  const own = businessFeatures.find((item) => item.feature_id === feature.id);
23
25
  return { ...feature, assigned: !!own, active: !!own?.active };
24
26
  });
@@ -35,25 +37,24 @@ class ProcessDeveloperMenu {
35
37
  businessFeature.active = active;
36
38
  return businessFeature.save();
37
39
  }
38
- async menus() {
40
+ async menus(q) {
39
41
  const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({ where: { business_id: this.business.id }, relations: ['menu'] });
40
42
  return businessMenus
41
- .filter((businessMenu) => businessMenu.menu?.id)
43
+ .filter((businessMenu) => businessMenu.menu?.id && this.matchesSearch(businessMenu.menu, q))
42
44
  .map((businessMenu) => ({ ...businessMenu.menu, active: businessMenu.active }));
43
45
  }
44
46
  async setMenu(menuId, active) {
45
- const businessMenu = await business_menu_entity_1.BusinessMenuEntity.findOne({ where: { business_id: this.business.id, menu_id: menuId } });
46
- if (!businessMenu)
47
- throw new nestjs_utility_services_1.OperationException(`Menu ${menuId} is not provided by any feature of this business`);
48
- businessMenu.active = active;
49
- return businessMenu.save();
47
+ const res = await this.setMenus([{ id: menuId, active }]);
48
+ return res[0];
50
49
  }
51
50
  async setMenus(items) {
52
51
  const ids = items.map((item) => item.id);
53
52
  const duplicate = ids.find((id, index) => ids.indexOf(id) !== index);
54
53
  if (duplicate)
55
54
  throw new nestjs_utility_services_1.OperationException(`Menu ${duplicate} is listed more than once`);
56
- const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({ where: { business_id: this.business.id, menu_id: (0, typeorm_1.In)(ids) } });
55
+ const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({ where: { business_id: this.business.id } });
56
+ if (!businessMenus.length)
57
+ return this.setHiddenMenus(items);
57
58
  const rows = items.map((item) => {
58
59
  const businessMenu = businessMenus.find((row) => row.menu_id === item.id);
59
60
  if (!businessMenu)
@@ -63,7 +64,39 @@ class ProcessDeveloperMenu {
63
64
  });
64
65
  return business_menu_entity_1.BusinessMenuEntity.save(rows);
65
66
  }
66
- async productMenus(productId) {
67
+ async setHiddenMenus(items) {
68
+ const moduleMenus = await module_menu_entity_1.ModuleMenuEntity.find({ where: { menu_id: (0, typeorm_1.In)(items.map((item) => item.id)) }, relations: ['module'] });
69
+ const byProduct = new Map();
70
+ for (const item of items) {
71
+ const productIds = new Set(moduleMenus
72
+ .filter((row) => row.menu_id === item.id && row.module?.active && row.module.business_id == null)
73
+ .map((row) => row.module.product_id));
74
+ if (!productIds.size)
75
+ throw new nestjs_utility_services_1.OperationException(`Menu ${item.id} is not in any portal`);
76
+ for (const productId of productIds)
77
+ byProduct.set(productId, [...(byProduct.get(productId) || []), item]);
78
+ }
79
+ for (const [productId, productItems] of byProduct) {
80
+ const row = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.firstOrNew({ business_id: this.business.id, product_id: productId });
81
+ const hidden = new Set(row.attributes?.hidden_menu_ids || []);
82
+ for (const item of productItems) {
83
+ if (item.active)
84
+ hidden.delete(item.id);
85
+ else
86
+ hidden.add(item.id);
87
+ }
88
+ if (!hidden.size && !row.layout?.modules?.length) {
89
+ if (row.id)
90
+ await row.softDelete();
91
+ continue;
92
+ }
93
+ row.layout = row.layout ?? { modules: [] };
94
+ row.attributes = { ...row.attributes, hidden_menu_ids: [...hidden] };
95
+ await row.save();
96
+ }
97
+ return items.map((item) => Object.assign(new business_menu_entity_1.BusinessMenuEntity(), { business_id: this.business.id, menu_id: item.id, active: item.active }));
98
+ }
99
+ async productMenus(productId, q) {
67
100
  await this.validateProduct(productId);
68
101
  const modules = await module_entity_1.ModuleEntity.find({
69
102
  where: { product_id: productId, active: true, business_id: (0, typeorm_1.IsNull)() },
@@ -72,6 +105,8 @@ class ProcessDeveloperMenu {
72
105
  });
73
106
  const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({ where: { business_id: this.business.id } });
74
107
  const featureManaged = businessMenus.length > 0;
108
+ const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
109
+ const hidden = featureManaged ? [] : saved?.attributes?.hidden_menu_ids || [];
75
110
  const data = [];
76
111
  for (const module of nestjs_utility_services_1.ClassMapper.removeArrayWhoColumns(modules)) {
77
112
  const { module_menus, ...mod } = module;
@@ -87,22 +122,24 @@ class ProcessDeveloperMenu {
87
122
  ...nestjs_utility_services_1.ClassMapper.removeWhoColumns(moduleMenu.menu),
88
123
  display_order: moduleMenu.display_order,
89
124
  default_module_id: module.id,
90
- active: featureManaged ? businessMenu.active : true,
125
+ active: featureManaged ? businessMenu.active : !hidden.includes(moduleMenu.menu_id),
91
126
  });
92
127
  }
93
128
  data.push({ ...mod, menus });
94
129
  }
95
- const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
130
+ const placed = new apply_menu_layout_1.ApplyMenuLayout().process(data, saved?.layout, true);
96
131
  return {
97
132
  feature_managed: featureManaged,
98
- layout_saved: !!saved,
99
- modules: new apply_menu_layout_1.ApplyMenuLayout().process(data, saved?.layout, true),
133
+ menus_switchable: true,
134
+ layout_saved: !!saved?.layout?.modules?.length,
135
+ modules: this.searchModules(placed, q),
100
136
  };
101
137
  }
102
138
  async layout(productId) {
103
139
  await this.validateProduct(productId);
104
140
  const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
105
- return { layout: saved?.layout ?? null, modules: await this.getModules(productId) };
141
+ const modules = await this.getModules(productId);
142
+ return { layout: saved?.layout?.modules?.length ? saved.layout : null, modules };
106
143
  }
107
144
  async saveLayout(productId, layout) {
108
145
  await this.validateProduct(productId);
@@ -118,7 +155,11 @@ class ProcessDeveloperMenu {
118
155
  async resetLayout(productId) {
119
156
  await this.validateProduct(productId);
120
157
  const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
121
- if (saved)
158
+ if (saved?.attributes?.hidden_menu_ids?.length) {
159
+ saved.layout = { modules: [] };
160
+ await saved.save();
161
+ }
162
+ else if (saved)
122
163
  await saved.softDelete();
123
164
  return { success: true };
124
165
  }
@@ -128,6 +169,22 @@ class ProcessDeveloperMenu {
128
169
  order: { display_order: 'ASC' },
129
170
  });
130
171
  }
172
+ searchModules(modules, q) {
173
+ if (!q?.trim())
174
+ return modules;
175
+ return modules
176
+ .map((module) => ({ ...module, menus: module.menus.filter((menu) => this.matchesSearch(menu, q)) }))
177
+ .filter((module) => module.menus.length);
178
+ }
179
+ matchesSearch(menu, q) {
180
+ return this.containsSearch([menu.name, menu.label, menu.display_name, menu.path], q);
181
+ }
182
+ containsSearch(values, q) {
183
+ const search = q?.trim().toLowerCase();
184
+ if (!search)
185
+ return true;
186
+ return values.some((value) => typeof value === 'string' && value.toLowerCase().includes(search));
187
+ }
131
188
  async validateProduct(productId) {
132
189
  const product = await product_entity_1.ProductEntity.first(productId);
133
190
  if (!product)
@@ -1 +1 @@
1
- {"version":3,"file":"process.developer.menu.js","sourceRoot":"","sources":["../../../src/access/libraries/process.developer.menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.developer.menu.js","sourceRoot":"","sources":["../../../src/access/libraries/process.developer.menu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import { BusinessDownloadableReportDto } from '../dtos/business.downloadable.report.dto';
2
+ import { DownloadableReportDto } from '../dtos/downloadable.report.dto';
3
+ import { ReportSheetDto } from '../dtos/report.sheet.dto';
4
+ import { BusinessDownloadableReportEntity } from '../entities/business.downloadable.report.entity';
5
+ export declare class ProcessDownloadableReport {
6
+ list(q?: string): Promise<{
7
+ sheets: {
8
+ id: number;
9
+ report_id: number;
10
+ name: string;
11
+ priority: number;
12
+ active: boolean;
13
+ }[];
14
+ id: number;
15
+ name: string;
16
+ description: string;
17
+ is_downloadable: boolean;
18
+ configurations: any;
19
+ attributes: any;
20
+ }[]>;
21
+ get(reportId: number): Promise<{
22
+ pre_script: string;
23
+ sheets: {
24
+ query: string;
25
+ pre_script: string;
26
+ post_script: string;
27
+ id: number;
28
+ report_id: number;
29
+ name: string;
30
+ priority: number;
31
+ active: boolean;
32
+ }[];
33
+ id: number;
34
+ name: string;
35
+ description: string;
36
+ is_downloadable: boolean;
37
+ configurations: any;
38
+ attributes: any;
39
+ }>;
40
+ upsert(body: DownloadableReportDto): Promise<{
41
+ pre_script: string;
42
+ sheets: {
43
+ query: string;
44
+ pre_script: string;
45
+ post_script: string;
46
+ id: number;
47
+ report_id: number;
48
+ name: string;
49
+ priority: number;
50
+ active: boolean;
51
+ }[];
52
+ id: number;
53
+ name: string;
54
+ description: string;
55
+ is_downloadable: boolean;
56
+ configurations: any;
57
+ attributes: any;
58
+ }>;
59
+ upsertSheet(reportId: number, body: ReportSheetDto): Promise<{
60
+ query: string;
61
+ pre_script: string;
62
+ post_script: string;
63
+ id: number;
64
+ report_id: number;
65
+ name: string;
66
+ priority: number;
67
+ active: boolean;
68
+ }>;
69
+ removeSheet(reportId: number, sheetId: number): Promise<{
70
+ success: boolean;
71
+ }>;
72
+ listBusinesses(reportId: number, q?: string): Promise<{
73
+ id: number;
74
+ business_id: number;
75
+ name: string;
76
+ identifier: number;
77
+ active: boolean;
78
+ emails: string[];
79
+ created_at: Date;
80
+ }[]>;
81
+ getBusiness(reportId: number, businessId: number): Promise<BusinessDownloadableReportEntity>;
82
+ setBusiness(reportId: number, businessId: number, body: BusinessDownloadableReportDto): Promise<BusinessDownloadableReportEntity>;
83
+ private getReport;
84
+ private resolveReport;
85
+ private resolveSheet;
86
+ private validateConfigurations;
87
+ private saveScript;
88
+ private reportFields;
89
+ private sheetFields;
90
+ private sheetDetail;
91
+ }
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessDownloadableReport = void 0;
4
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
5
+ const typeorm_1 = require("typeorm");
6
+ const access_business_entity_1 = require("../entities/access.business.entity");
7
+ const business_downloadable_report_entity_1 = require("../entities/business.downloadable.report.entity");
8
+ const SCRIPT_TYPE_ID = 11;
9
+ const REPORT_SOURCE_TYPE = 'ab60ad4e1a51c7d593e957b7857662c1';
10
+ const SHEET_SOURCE_TYPE = '8368af51d42be9a8b569aa8541b57e1f';
11
+ const LIST_LIMIT = 100;
12
+ class ProcessDownloadableReport {
13
+ async list(q) {
14
+ const search = q?.trim();
15
+ const where = search
16
+ ? [
17
+ { is_downloadable: true, name: (0, typeorm_1.ILike)(`%${search}%`) },
18
+ { is_downloadable: true, description: (0, typeorm_1.ILike)(`%${search}%`) },
19
+ ]
20
+ : { is_downloadable: true };
21
+ const reports = await nestjs_utility_services_1.ReportEntity.find({ where, order: { name: 'ASC' }, take: LIST_LIMIT });
22
+ if (!reports.length)
23
+ return [];
24
+ const sheets = await nestjs_utility_services_1.ReportSheetEntity.find({
25
+ where: { report_id: (0, typeorm_1.In)(reports.map((report) => report.id)) },
26
+ order: { priority: 'DESC' },
27
+ });
28
+ return reports.map((report) => ({
29
+ ...this.reportFields(report),
30
+ sheets: sheets.filter((sheet) => sheet.report_id === report.id).map((sheet) => this.sheetFields(sheet)),
31
+ }));
32
+ }
33
+ async get(reportId) {
34
+ const report = await this.getReport(reportId, ['pre_script']);
35
+ const sheets = await nestjs_utility_services_1.ReportSheetEntity.find({
36
+ where: { report_id: report.id },
37
+ relations: ['query', 'pre_script', 'post_script'],
38
+ order: { priority: 'DESC' },
39
+ });
40
+ return {
41
+ ...this.reportFields(report),
42
+ pre_script: report.pre_script?.script ?? null,
43
+ sheets: sheets.map((sheet) => this.sheetDetail(sheet)),
44
+ };
45
+ }
46
+ async upsert(body) {
47
+ this.validateConfigurations(body.configurations);
48
+ const report = await this.resolveReport(body);
49
+ if (body.name !== undefined)
50
+ report.name = body.name;
51
+ report.is_downloadable = true;
52
+ if (body.description !== undefined)
53
+ report.description = body.description;
54
+ if (body.configurations !== undefined)
55
+ report.configurations = body.configurations;
56
+ if (body.attributes !== undefined)
57
+ report.attributes = { ...(report.attributes || {}), ...body.attributes };
58
+ const saved = await report.save();
59
+ const owner = { name: 'ReportEntity Script', sourceType: REPORT_SOURCE_TYPE, sourceId: saved.id };
60
+ const preScriptId = await this.saveScript(saved.pre_script_id, body.pre_script, owner);
61
+ if (preScriptId !== saved.pre_script_id) {
62
+ saved.pre_script_id = preScriptId;
63
+ await saved.save();
64
+ }
65
+ return this.get(saved.id);
66
+ }
67
+ async upsertSheet(reportId, body) {
68
+ const report = await this.getReport(reportId);
69
+ const sheet = await this.resolveSheet(report.id, body);
70
+ if (!sheet.id && !body.query)
71
+ throw new nestjs_utility_services_1.OperationException('query is required for a new sheet');
72
+ if (body.name !== undefined)
73
+ sheet.name = body.name;
74
+ sheet.priority = body.priority ?? sheet.priority ?? 1;
75
+ sheet.active = body.active ?? sheet.active ?? true;
76
+ const saved = await sheet.save();
77
+ const owner = { name: 'ReportSheetEntity Script', sourceType: SHEET_SOURCE_TYPE, sourceId: saved.id };
78
+ const queryId = await this.saveScript(saved.query_id, body.query, owner);
79
+ const preScriptId = await this.saveScript(saved.pre_script_id, body.pre_script, owner);
80
+ const postScriptId = await this.saveScript(saved.post_script_id, body.post_script, owner);
81
+ saved.query_id = queryId;
82
+ saved.pre_script_id = preScriptId;
83
+ saved.post_script_id = postScriptId;
84
+ await saved.save();
85
+ const detail = await nestjs_utility_services_1.ReportSheetEntity.findOne({ where: { id: saved.id }, relations: ['query', 'pre_script', 'post_script'] });
86
+ return this.sheetDetail(detail);
87
+ }
88
+ async removeSheet(reportId, sheetId) {
89
+ const report = await this.getReport(reportId);
90
+ const sheet = await nestjs_utility_services_1.ReportSheetEntity.findOne({ where: { id: sheetId, report_id: report.id } });
91
+ if (!sheet)
92
+ throw new nestjs_utility_services_1.OperationException(`No sheet ${sheetId} found on report ${report.id}`);
93
+ await sheet.softDelete();
94
+ return { success: true };
95
+ }
96
+ async listBusinesses(reportId, q) {
97
+ const report = await this.getReport(reportId);
98
+ const search = q?.trim();
99
+ const where = [{ sys_report_id: report.id }];
100
+ if (search) {
101
+ where[0] = { sys_report_id: report.id, business: { name: (0, typeorm_1.ILike)(`%${search}%`) } };
102
+ if (/^\d{1,15}$/.test(search))
103
+ where.push({ sys_report_id: report.id, business: { identifier: Number(search) } });
104
+ }
105
+ const rows = await business_downloadable_report_entity_1.BusinessDownloadableReportEntity.find({ where, relations: ['business'], order: { created_at: 'DESC' }, take: LIST_LIMIT });
106
+ return rows.map((row) => ({
107
+ id: row.id,
108
+ business_id: row.business_id,
109
+ name: row.business?.name ?? null,
110
+ identifier: row.business?.identifier ?? null,
111
+ active: row.active,
112
+ emails: row.emails ?? [],
113
+ created_at: row.created_at,
114
+ }));
115
+ }
116
+ async getBusiness(reportId, businessId) {
117
+ const report = await this.getReport(reportId);
118
+ return business_downloadable_report_entity_1.BusinessDownloadableReportEntity.findOne({ where: { sys_report_id: report.id, business_id: businessId } });
119
+ }
120
+ async setBusiness(reportId, businessId, body) {
121
+ const report = await this.getReport(reportId);
122
+ const business = await access_business_entity_1.AccessBusinessEntity.first(businessId);
123
+ if (!business)
124
+ throw new nestjs_utility_services_1.OperationException(`No business found with id ${businessId}`);
125
+ const row = await business_downloadable_report_entity_1.BusinessDownloadableReportEntity.firstOrNew({ sys_report_id: report.id, business_id: business.id });
126
+ if (!row.id && !body.active)
127
+ return row;
128
+ row.active = body.active;
129
+ if (body.emails !== undefined)
130
+ row.emails = body.emails;
131
+ return row.save();
132
+ }
133
+ async getReport(reportId, relations = []) {
134
+ const report = await nestjs_utility_services_1.ReportEntity.findOne({ where: { id: reportId, is_downloadable: true }, relations });
135
+ if (!report)
136
+ throw new nestjs_utility_services_1.OperationException(`No downloadable report found with id ${reportId}`);
137
+ return report;
138
+ }
139
+ async resolveReport(body) {
140
+ let byName = null;
141
+ if (body.name)
142
+ byName = await nestjs_utility_services_1.ReportEntity.findOne({ where: { name: body.name } });
143
+ if (body.id) {
144
+ const report = await this.getReport(body.id);
145
+ if (byName && byName.id !== report.id)
146
+ throw new nestjs_utility_services_1.OperationException(`Report name ${body.name} is already used by report ${byName.id}`);
147
+ return report;
148
+ }
149
+ if (!body.name)
150
+ throw new nestjs_utility_services_1.OperationException('name is required for a new report');
151
+ if (!byName)
152
+ return nestjs_utility_services_1.ReportEntity.create({ name: body.name });
153
+ if (!byName.is_downloadable)
154
+ throw new nestjs_utility_services_1.OperationException(`Report ${body.name} exists and is not a downloadable report`);
155
+ return byName;
156
+ }
157
+ async resolveSheet(reportId, body) {
158
+ let byName = null;
159
+ if (body.name)
160
+ byName = await nestjs_utility_services_1.ReportSheetEntity.findOne({ where: { report_id: reportId, name: body.name } });
161
+ if (body.id) {
162
+ const sheet = await nestjs_utility_services_1.ReportSheetEntity.findOne({ where: { id: body.id, report_id: reportId } });
163
+ if (!sheet)
164
+ throw new nestjs_utility_services_1.OperationException(`No sheet ${body.id} found on report ${reportId}`);
165
+ if (byName && byName.id !== sheet.id)
166
+ throw new nestjs_utility_services_1.OperationException(`Sheet name ${body.name} is already used by sheet ${byName.id}`);
167
+ return sheet;
168
+ }
169
+ if (!body.name)
170
+ throw new nestjs_utility_services_1.OperationException('name is required for a new sheet');
171
+ return byName ?? nestjs_utility_services_1.ReportSheetEntity.create({ report_id: reportId });
172
+ }
173
+ validateConfigurations(configurations) {
174
+ if (!configurations)
175
+ return;
176
+ const invalid = Object.entries(configurations)
177
+ .filter(([, field]) => !field || typeof field !== 'object' || typeof field.type !== 'string' || typeof field.label !== 'string')
178
+ .map(([key]) => key);
179
+ if (invalid.length)
180
+ throw new nestjs_utility_services_1.OperationException(`configurations fields need a string "type" and "label": ${invalid.join(', ')}`);
181
+ }
182
+ async saveScript(currentId, text, owner) {
183
+ if (text === undefined)
184
+ return currentId ?? null;
185
+ if (text === null || !text.trim())
186
+ return null;
187
+ let script = null;
188
+ if (currentId)
189
+ script = await nestjs_utility_services_1.SystemScriptEntity.first(currentId);
190
+ if (!script)
191
+ script = nestjs_utility_services_1.SystemScriptEntity.create({ type_id: SCRIPT_TYPE_ID, name: owner.name });
192
+ script.script = text;
193
+ script.source_type = owner.sourceType;
194
+ script.source_id = owner.sourceId;
195
+ const saved = await script.save();
196
+ return saved.id;
197
+ }
198
+ reportFields(report) {
199
+ return {
200
+ id: report.id,
201
+ name: report.name,
202
+ description: report.description,
203
+ is_downloadable: report.is_downloadable,
204
+ configurations: report.configurations ?? null,
205
+ attributes: report.attributes ?? null,
206
+ };
207
+ }
208
+ sheetFields(sheet) {
209
+ return { id: sheet.id, report_id: sheet.report_id, name: sheet.name, priority: sheet.priority, active: sheet.active };
210
+ }
211
+ sheetDetail(sheet) {
212
+ return {
213
+ ...this.sheetFields(sheet),
214
+ query: sheet.query?.script ?? null,
215
+ pre_script: sheet.pre_script?.script ?? null,
216
+ post_script: sheet.post_script?.script ?? null,
217
+ };
218
+ }
219
+ }
220
+ exports.ProcessDownloadableReport = ProcessDownloadableReport;
221
+ //# sourceMappingURL=process.downloadable.report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.downloadable.report.js","sourceRoot":"","sources":["../../../src/access/libraries/process.downloadable.report.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,7 @@ export declare class DeveloperModeAccessService {
5
5
  constructor(accessBusinessService: AccessBusinessService);
6
6
  validate(): Promise<AccessBusinessEntity>;
7
7
  resolveBusiness(businessId?: number): Promise<AccessBusinessEntity>;
8
+ isCurrentUserDeveloper(): Promise<boolean>;
8
9
  hasDeveloperAccess(attributes?: Record<string, any> | null): boolean;
10
+ private isImpersonatorDeveloper;
9
11
  }
@@ -13,14 +13,17 @@ exports.DeveloperModeAccessService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
15
15
  const access_business_entity_1 = require("../entities/access.business.entity");
16
+ const finnoto_user_entity_1 = require("../entities/finnoto.user.entity");
16
17
  const access_business_service_1 = require("./access.business.service");
18
+ const impersonatorDeveloperCache = new WeakMap();
17
19
  let DeveloperModeAccessService = class DeveloperModeAccessService {
18
20
  constructor(accessBusinessService) {
19
21
  this.accessBusinessService = accessBusinessService;
20
22
  }
21
23
  async validate() {
22
24
  const business = await this.accessBusinessService.validateAccess();
23
- if (this.hasDeveloperAccess(nestjs_utility_services_1.Auth.user()?.attributes))
25
+ const isDeveloper = await this.isCurrentUserDeveloper();
26
+ if (isDeveloper)
24
27
  return business;
25
28
  throw new nestjs_utility_services_1.OperationException('You do not have access for this operation');
26
29
  }
@@ -33,9 +36,30 @@ let DeveloperModeAccessService = class DeveloperModeAccessService {
33
36
  throw new nestjs_utility_services_1.OperationException(`No business found with id ${businessId}`);
34
37
  return business;
35
38
  }
39
+ async isCurrentUserDeveloper() {
40
+ const user = nestjs_utility_services_1.Auth.user();
41
+ if (!user)
42
+ return false;
43
+ const impersonatingUserId = user.auth_attributes?.impersonating_user_id;
44
+ if (impersonatingUserId === undefined || impersonatingUserId === null)
45
+ return this.hasDeveloperAccess(user.attributes);
46
+ const cached = impersonatorDeveloperCache.get(user);
47
+ if (cached)
48
+ return cached;
49
+ const lookup = this.isImpersonatorDeveloper(impersonatingUserId);
50
+ impersonatorDeveloperCache.set(user, lookup);
51
+ return lookup;
52
+ }
36
53
  hasDeveloperAccess(attributes) {
37
54
  return Boolean(attributes?.is_developer);
38
55
  }
56
+ async isImpersonatorDeveloper(impersonatingUserId) {
57
+ const metaServerId = Number(impersonatingUserId);
58
+ if (!Number.isInteger(metaServerId) || metaServerId <= 0)
59
+ return false;
60
+ const impersonator = await finnoto_user_entity_1.FinnotoUserEntity.findOne({ select: ['id', 'attributes'], where: { meta_server_id: metaServerId } });
61
+ return this.hasDeveloperAccess(impersonator?.attributes);
62
+ }
39
63
  };
40
64
  exports.DeveloperModeAccessService = DeveloperModeAccessService;
41
65
  exports.DeveloperModeAccessService = DeveloperModeAccessService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"developer.mode.access.service.js","sourceRoot":"","sources":["../../../src/access/services/developer.mode.access.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oFAAkF;AAClF,+EAA0E;AAC1E,uEAAkE;AAQ3D,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACnC,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAO7E,KAAK,CAAC,QAAQ;QACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,CAAC;QAEnE,IAAI,IAAI,CAAC,kBAAkB,CAAC,8BAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC;YAAE,OAAO,QAAQ,CAAC;QAEtE,MAAM,IAAI,4CAAkB,CAAC,2CAA2C,CAAC,CAAC;IAC9E,CAAC;IASD,KAAK,CAAC,eAAe,CAAC,UAAmB;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC;QAE7D,MAAM,QAAQ,GAAG,MAAM,6CAAoB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,4CAAkB,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;QAEvF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAKD,kBAAkB,CAAC,UAAuC;QACtD,OAAO,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;CACJ,CAAA;AAvCY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;qCAE2C,+CAAqB;GADhE,0BAA0B,CAuCtC"}
1
+ {"version":3,"file":"developer.mode.access.service.js","sourceRoot":"","sources":["../../../src/access/services/developer.mode.access.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,oFAAkF;AAClF,+EAA0E;AAC1E,yEAAoE;AACpE,uEAAkE;AAGlE,MAAM,0BAA0B,GAAG,IAAI,OAAO,EAA4B,CAAC;AASpE,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACnC,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAO7E,KAAK,CAAC,QAAQ;QACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,EAAE,CAAC;QAEnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxD,IAAI,WAAW;YAAE,OAAO,QAAQ,CAAC;QAEjC,MAAM,IAAI,4CAAkB,CAAC,2CAA2C,CAAC,CAAC;IAC9E,CAAC;IASD,KAAK,CAAC,eAAe,CAAC,UAAmB;QACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,OAAO,CAAC,EAAE;YAAE,OAAO,OAAO,CAAC;QAE7D,MAAM,QAAQ,GAAG,MAAM,6CAAoB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,4CAAkB,CAAC,6BAA6B,UAAU,EAAE,CAAC,CAAC;QAEvF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAQD,KAAK,CAAC,sBAAsB;QACxB,MAAM,IAAI,GAAQ,8BAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAExB,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,qBAAqB,CAAC;QACxE,IAAI,mBAAmB,KAAK,SAAS,IAAI,mBAAmB,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvH,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;QACjE,0BAA0B,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAE7C,OAAO,MAAM,CAAC;IAClB,CAAC;IAMD,kBAAkB,CAAC,UAAuC;QACtD,OAAO,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;IAOO,KAAK,CAAC,uBAAuB,CAAC,mBAA4B;QAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAEvE,MAAM,YAAY,GAAG,MAAM,uCAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;QAEhI,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;CACJ,CAAA;AA7EY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;qCAE2C,+CAAqB;GADhE,0BAA0B,CA6EtC"}