@servicelabsco/slabs-access-manager 2.0.13 → 2.0.15

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 (205) hide show
  1. package/dist/access/controllers/alias.mapping.controller.d.ts +16 -0
  2. package/dist/access/controllers/alias.mapping.controller.js +93 -0
  3. package/dist/access/controllers/alias.mapping.controller.js.map +1 -0
  4. package/dist/access/controllers/bulk.upload.controller.d.ts +10 -1
  5. package/dist/access/controllers/bulk.upload.controller.js +50 -2
  6. package/dist/access/controllers/bulk.upload.controller.js.map +1 -1
  7. package/dist/access/controllers/business.email.controller.d.ts +2 -1
  8. package/dist/access/controllers/business.email.controller.js +6 -3
  9. package/dist/access/controllers/business.email.controller.js.map +1 -1
  10. package/dist/access/controllers/developer.menu.controller.d.ts +1 -0
  11. package/dist/access/controllers/emithook.controller.d.ts +12 -0
  12. package/dist/access/controllers/emithook.controller.js +49 -0
  13. package/dist/access/controllers/emithook.controller.js.map +1 -0
  14. package/dist/access/controllers/index.d.ts +2 -0
  15. package/dist/access/controllers/index.js +2 -0
  16. package/dist/access/controllers/index.js.map +1 -1
  17. package/dist/access/dtos/add.alias.mapping.dto.d.ts +7 -0
  18. package/dist/access/dtos/add.alias.mapping.dto.js +49 -0
  19. package/dist/access/dtos/add.alias.mapping.dto.js.map +1 -0
  20. package/dist/access/dtos/add.business.email.dto.d.ts +4 -0
  21. package/dist/access/dtos/add.business.email.dto.js +34 -0
  22. package/dist/access/dtos/add.business.email.dto.js.map +1 -0
  23. package/dist/access/dtos/business.email.attributes.dto.d.ts +1 -0
  24. package/dist/access/dtos/business.email.attributes.dto.js +6 -0
  25. package/dist/access/dtos/business.email.attributes.dto.js.map +1 -1
  26. package/dist/access/dtos/business.menu.layout.attributes.dto.d.ts +1 -0
  27. package/dist/access/dtos/business.menu.layout.attributes.dto.js.map +1 -1
  28. package/dist/access/dtos/emithook.envelope.dto.d.ts +38 -0
  29. package/dist/access/dtos/emithook.envelope.dto.js +16 -0
  30. package/dist/access/dtos/emithook.envelope.dto.js.map +1 -0
  31. package/dist/access/dtos/index.d.ts +4 -0
  32. package/dist/access/dtos/index.js +4 -0
  33. package/dist/access/dtos/index.js.map +1 -1
  34. package/dist/access/dtos/search.alias.mapping.dto.d.ts +7 -0
  35. package/dist/access/dtos/search.alias.mapping.dto.js +51 -0
  36. package/dist/access/dtos/search.alias.mapping.dto.js.map +1 -0
  37. package/dist/access/entities/access.country.entity.js.map +1 -1
  38. package/dist/access/entities/alias.mapping.entity.d.ts +11 -0
  39. package/dist/access/entities/alias.mapping.entity.js +51 -0
  40. package/dist/access/entities/alias.mapping.entity.js.map +1 -0
  41. package/dist/access/entities/business.email.entity.d.ts +1 -0
  42. package/dist/access/entities/business.email.entity.js +4 -0
  43. package/dist/access/entities/business.email.entity.js.map +1 -1
  44. package/dist/access/entities/business.menu.layout.entity.js.map +1 -1
  45. package/dist/access/entities/business.ui.action.entity.js.map +1 -1
  46. package/dist/access/entities/index.d.ts +1 -0
  47. package/dist/access/entities/index.js +1 -0
  48. package/dist/access/entities/index.js.map +1 -1
  49. package/dist/access/enums/business.email.type.enum.d.ts +3 -0
  50. package/dist/access/enums/business.email.type.enum.js +8 -0
  51. package/dist/access/enums/business.email.type.enum.js.map +1 -0
  52. package/dist/access/enums/index.d.ts +1 -0
  53. package/dist/access/enums/index.js +1 -0
  54. package/dist/access/enums/index.js.map +1 -1
  55. package/dist/access/es6.classes.d.ts +39 -25
  56. package/dist/access/es6.classes.js +81 -48
  57. package/dist/access/es6.classes.js.map +1 -1
  58. package/dist/access/index.d.ts +1 -0
  59. package/dist/access/index.js +1 -0
  60. package/dist/access/index.js.map +1 -1
  61. package/dist/access/interfaces/alias.lookup.options.interface.d.ts +4 -0
  62. package/dist/access/interfaces/alias.lookup.options.interface.js +3 -0
  63. package/dist/access/interfaces/alias.lookup.options.interface.js.map +1 -0
  64. package/dist/access/interfaces/alias.mapping.input.interface.d.ts +7 -0
  65. package/dist/access/interfaces/alias.mapping.input.interface.js +3 -0
  66. package/dist/access/interfaces/alias.mapping.input.interface.js.map +1 -0
  67. package/dist/access/interfaces/alias.search.match.interface.d.ts +8 -0
  68. package/dist/access/interfaces/alias.search.match.interface.js +3 -0
  69. package/dist/access/interfaces/alias.search.match.interface.js.map +1 -0
  70. package/dist/access/interfaces/alias.search.query.interface.d.ts +7 -0
  71. package/dist/access/interfaces/alias.search.query.interface.js +3 -0
  72. package/dist/access/interfaces/alias.search.query.interface.js.map +1 -0
  73. package/dist/access/interfaces/emithook.email.body.interface.d.ts +24 -0
  74. package/dist/access/interfaces/emithook.email.body.interface.js +3 -0
  75. package/dist/access/interfaces/emithook.email.body.interface.js.map +1 -0
  76. package/dist/access/interfaces/inbound.email.message.interface.d.ts +31 -0
  77. package/dist/access/interfaces/inbound.email.message.interface.js +3 -0
  78. package/dist/access/interfaces/inbound.email.message.interface.js.map +1 -0
  79. package/dist/access/interfaces/index.d.ts +6 -0
  80. package/dist/access/interfaces/index.js +23 -0
  81. package/dist/access/interfaces/index.js.map +1 -0
  82. package/dist/access/jobs/handle.emithook.email.job.d.ts +27 -0
  83. package/dist/access/jobs/handle.emithook.email.job.js +162 -0
  84. package/dist/access/jobs/handle.emithook.email.job.js.map +1 -0
  85. package/dist/access/jobs/index.d.ts +3 -0
  86. package/dist/access/jobs/index.js +3 -0
  87. package/dist/access/jobs/index.js.map +1 -1
  88. package/dist/access/jobs/poll.emithook.email.inbox.job.d.ts +19 -0
  89. package/dist/access/jobs/poll.emithook.email.inbox.job.js +109 -0
  90. package/dist/access/jobs/poll.emithook.email.inbox.job.js.map +1 -0
  91. package/dist/access/jobs/poll.emithook.email.sqs.job.d.ts +20 -0
  92. package/dist/access/jobs/poll.emithook.email.sqs.job.js +83 -0
  93. package/dist/access/jobs/poll.emithook.email.sqs.job.js.map +1 -0
  94. package/dist/access/jobs/process.server.email.job.d.ts +1 -9
  95. package/dist/access/jobs/process.server.email.job.js +13 -105
  96. package/dist/access/jobs/process.server.email.job.js.map +1 -1
  97. package/dist/access/libraries/index.d.ts +4 -0
  98. package/dist/access/libraries/index.js +4 -0
  99. package/dist/access/libraries/index.js.map +1 -1
  100. package/dist/access/libraries/process.application.menu.js +6 -1
  101. package/dist/access/libraries/process.application.menu.js.map +1 -1
  102. package/dist/access/libraries/process.developer.menu.d.ts +2 -0
  103. package/dist/access/libraries/process.developer.menu.js +50 -11
  104. package/dist/access/libraries/process.developer.menu.js.map +1 -1
  105. package/dist/access/libraries/process.inbound.email.message.d.ts +21 -0
  106. package/dist/access/libraries/process.inbound.email.message.js +129 -0
  107. package/dist/access/libraries/process.inbound.email.message.js.map +1 -0
  108. package/dist/access/libraries/read.eml.attachments.d.ts +19 -0
  109. package/dist/access/libraries/read.eml.attachments.js +126 -0
  110. package/dist/access/libraries/read.eml.attachments.js.map +1 -0
  111. package/dist/access/libraries/search.alias.mappings.d.ts +12 -0
  112. package/dist/access/libraries/search.alias.mappings.js +46 -0
  113. package/dist/access/libraries/search.alias.mappings.js.map +1 -0
  114. package/dist/access/libraries/set.alias.mapping.d.ts +12 -0
  115. package/dist/access/libraries/set.alias.mapping.js +81 -0
  116. package/dist/access/libraries/set.alias.mapping.js.map +1 -0
  117. package/dist/access/services/alias.mapping.service.d.ts +9 -0
  118. package/dist/access/services/alias.mapping.service.js +45 -0
  119. package/dist/access/services/alias.mapping.service.js.map +1 -0
  120. package/dist/access/services/business.email.service.d.ts +5 -1
  121. package/dist/access/services/business.email.service.js +34 -2
  122. package/dist/access/services/business.email.service.js.map +1 -1
  123. package/dist/access/services/emithook.service.d.ts +32 -0
  124. package/dist/access/services/emithook.service.js +115 -0
  125. package/dist/access/services/emithook.service.js.map +1 -0
  126. package/dist/access/services/index.d.ts +2 -0
  127. package/dist/access/services/index.js +2 -0
  128. package/dist/access/services/index.js.map +1 -1
  129. package/dist/accessUtility/controllers/bulk.definition.controller.d.ts +22 -1
  130. package/dist/accessUtility/controllers/bulk.definition.controller.js +124 -2
  131. package/dist/accessUtility/controllers/bulk.definition.controller.js.map +1 -1
  132. package/dist/accessUtility/dtos/add.bulk.upload.column.dto.d.ts +10 -0
  133. package/dist/accessUtility/dtos/add.bulk.upload.column.dto.js +66 -0
  134. package/dist/accessUtility/dtos/add.bulk.upload.column.dto.js.map +1 -0
  135. package/dist/accessUtility/dtos/add.bulk.upload.type.dto.d.ts +11 -0
  136. package/dist/accessUtility/dtos/add.bulk.upload.type.dto.js +68 -0
  137. package/dist/accessUtility/dtos/add.bulk.upload.type.dto.js.map +1 -0
  138. package/dist/accessUtility/dtos/bulk.definition.script.dto.d.ts +4 -0
  139. package/dist/accessUtility/dtos/bulk.definition.script.dto.js +30 -0
  140. package/dist/accessUtility/dtos/bulk.definition.script.dto.js.map +1 -0
  141. package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.d.ts +10 -0
  142. package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.js +4 -1
  143. package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.js.map +1 -1
  144. package/dist/accessUtility/dtos/index.d.ts +4 -0
  145. package/dist/accessUtility/dtos/index.js +4 -0
  146. package/dist/accessUtility/dtos/index.js.map +1 -1
  147. package/dist/accessUtility/dtos/match.bulk.upload.file.dto.d.ts +3 -0
  148. package/dist/accessUtility/dtos/match.bulk.upload.file.dto.js +24 -0
  149. package/dist/accessUtility/dtos/match.bulk.upload.file.dto.js.map +1 -0
  150. package/dist/accessUtility/es6.classes.d.ts +12 -4
  151. package/dist/accessUtility/es6.classes.js +20 -0
  152. package/dist/accessUtility/es6.classes.js.map +1 -1
  153. package/dist/accessUtility/jobs/analyse.bulk.upload.job.d.ts +3 -1
  154. package/dist/accessUtility/jobs/analyse.bulk.upload.job.js +6 -3
  155. package/dist/accessUtility/jobs/analyse.bulk.upload.job.js.map +1 -1
  156. package/dist/accessUtility/jobs/bulk.upload.column.match.job.d.ts +0 -1
  157. package/dist/accessUtility/jobs/bulk.upload.column.match.job.js +3 -14
  158. package/dist/accessUtility/jobs/bulk.upload.column.match.job.js.map +1 -1
  159. package/dist/accessUtility/jobs/push.to.bulk.item.job.d.ts +2 -0
  160. package/dist/accessUtility/jobs/push.to.bulk.item.job.js +2 -0
  161. package/dist/accessUtility/jobs/push.to.bulk.item.job.js.map +1 -1
  162. package/dist/accessUtility/libraries/analyse.bulk.upload.d.ts +3 -1
  163. package/dist/accessUtility/libraries/analyse.bulk.upload.js +5 -1
  164. package/dist/accessUtility/libraries/analyse.bulk.upload.js.map +1 -1
  165. package/dist/accessUtility/libraries/extract.bulk.upload.headers.d.ts +16 -0
  166. package/dist/accessUtility/libraries/extract.bulk.upload.headers.js +78 -0
  167. package/dist/accessUtility/libraries/extract.bulk.upload.headers.js.map +1 -0
  168. package/dist/accessUtility/libraries/flatten.excel.rich.text.d.ts +5 -0
  169. package/dist/accessUtility/libraries/flatten.excel.rich.text.js +33 -0
  170. package/dist/accessUtility/libraries/flatten.excel.rich.text.js.map +1 -0
  171. package/dist/accessUtility/libraries/index.d.ts +6 -0
  172. package/dist/accessUtility/libraries/index.js +6 -0
  173. package/dist/accessUtility/libraries/index.js.map +1 -1
  174. package/dist/accessUtility/libraries/load.xls.file.js +2 -0
  175. package/dist/accessUtility/libraries/load.xls.file.js.map +1 -1
  176. package/dist/accessUtility/libraries/match.bulk.upload.columns.d.ts +16 -0
  177. package/dist/accessUtility/libraries/match.bulk.upload.columns.js +82 -0
  178. package/dist/accessUtility/libraries/match.bulk.upload.columns.js.map +1 -0
  179. package/dist/accessUtility/libraries/process.bulk.definition.script.d.ts +9 -0
  180. package/dist/accessUtility/libraries/process.bulk.definition.script.js +43 -0
  181. package/dist/accessUtility/libraries/process.bulk.definition.script.js.map +1 -0
  182. package/dist/accessUtility/libraries/process.bulk.upload.format.d.ts +24 -0
  183. package/dist/accessUtility/libraries/process.bulk.upload.format.js +167 -0
  184. package/dist/accessUtility/libraries/process.bulk.upload.format.js.map +1 -0
  185. package/dist/accessUtility/libraries/read.xls.file.d.ts +5 -1
  186. package/dist/accessUtility/libraries/read.xls.file.js +65 -17
  187. package/dist/accessUtility/libraries/read.xls.file.js.map +1 -1
  188. package/dist/accessUtility/libraries/score.bulk.upload.columns.d.ts +16 -0
  189. package/dist/accessUtility/libraries/score.bulk.upload.columns.js +57 -0
  190. package/dist/accessUtility/libraries/score.bulk.upload.columns.js.map +1 -0
  191. package/dist/mcp/admin/tools/menu/menu.list.tool.js +4 -1
  192. package/dist/mcp/admin/tools/menu/menu.list.tool.js.map +1 -1
  193. package/dist/mcp/es6.classes.d.ts +9 -1
  194. package/dist/mcp/es6.classes.js +16 -0
  195. package/dist/mcp/es6.classes.js.map +1 -1
  196. package/dist/migrations/1790855763155-CreateBzAliasMappingsTable.d.ts +8 -0
  197. package/dist/migrations/1790855763155-CreateBzAliasMappingsTable.js +37 -0
  198. package/dist/migrations/1790855763155-CreateBzAliasMappingsTable.js.map +1 -0
  199. package/dist/migrations/1792089460727-AddIdentifierBzBusinessEmailsTable.d.ts +5 -0
  200. package/dist/migrations/1792089460727-AddIdentifierBzBusinessEmailsTable.js +16 -0
  201. package/dist/migrations/1792089460727-AddIdentifierBzBusinessEmailsTable.js.map +1 -0
  202. package/dist/migrations/1792091262917-AddUniqueEmailIdentifierBzEmailMessagesTable.d.ts +8 -0
  203. package/dist/migrations/1792091262917-AddUniqueEmailIdentifierBzEmailMessagesTable.js +30 -0
  204. package/dist/migrations/1792091262917-AddUniqueEmailIdentifierBzEmailMessagesTable.js.map +1 -0
  205. package/package.json +2 -2
@@ -8,6 +8,7 @@ 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 {
@@ -43,18 +44,17 @@ class ProcessDeveloperMenu {
43
44
  .map((businessMenu) => ({ ...businessMenu.menu, active: businessMenu.active }));
44
45
  }
45
46
  async setMenu(menuId, active) {
46
- const businessMenu = await business_menu_entity_1.BusinessMenuEntity.findOne({ where: { business_id: this.business.id, menu_id: menuId } });
47
- if (!businessMenu)
48
- throw new nestjs_utility_services_1.OperationException(`Menu ${menuId} is not provided by any feature of this business`);
49
- businessMenu.active = active;
50
- return businessMenu.save();
47
+ const res = await this.setMenus([{ id: menuId, active }]);
48
+ return res[0];
51
49
  }
52
50
  async setMenus(items) {
53
51
  const ids = items.map((item) => item.id);
54
52
  const duplicate = ids.find((id, index) => ids.indexOf(id) !== index);
55
53
  if (duplicate)
56
54
  throw new nestjs_utility_services_1.OperationException(`Menu ${duplicate} is listed more than once`);
57
- 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);
58
58
  const rows = items.map((item) => {
59
59
  const businessMenu = businessMenus.find((row) => row.menu_id === item.id);
60
60
  if (!businessMenu)
@@ -64,6 +64,38 @@ class ProcessDeveloperMenu {
64
64
  });
65
65
  return business_menu_entity_1.BusinessMenuEntity.save(rows);
66
66
  }
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
+ }
67
99
  async productMenus(productId, q) {
68
100
  await this.validateProduct(productId);
69
101
  const modules = await module_entity_1.ModuleEntity.find({
@@ -73,6 +105,8 @@ class ProcessDeveloperMenu {
73
105
  });
74
106
  const businessMenus = await business_menu_entity_1.BusinessMenuEntity.find({ where: { business_id: this.business.id } });
75
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 || [];
76
110
  const data = [];
77
111
  for (const module of nestjs_utility_services_1.ClassMapper.removeArrayWhoColumns(modules)) {
78
112
  const { module_menus, ...mod } = module;
@@ -88,23 +122,24 @@ class ProcessDeveloperMenu {
88
122
  ...nestjs_utility_services_1.ClassMapper.removeWhoColumns(moduleMenu.menu),
89
123
  display_order: moduleMenu.display_order,
90
124
  default_module_id: module.id,
91
- active: featureManaged ? businessMenu.active : true,
125
+ active: featureManaged ? businessMenu.active : !hidden.includes(moduleMenu.menu_id),
92
126
  });
93
127
  }
94
128
  data.push({ ...mod, menus });
95
129
  }
96
- const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
97
130
  const placed = new apply_menu_layout_1.ApplyMenuLayout().process(data, saved?.layout, true);
98
131
  return {
99
132
  feature_managed: featureManaged,
100
- layout_saved: !!saved,
133
+ menus_switchable: true,
134
+ layout_saved: !!saved?.layout?.modules?.length,
101
135
  modules: this.searchModules(placed, q),
102
136
  };
103
137
  }
104
138
  async layout(productId) {
105
139
  await this.validateProduct(productId);
106
140
  const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
107
- 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 };
108
143
  }
109
144
  async saveLayout(productId, layout) {
110
145
  await this.validateProduct(productId);
@@ -120,7 +155,11 @@ class ProcessDeveloperMenu {
120
155
  async resetLayout(productId) {
121
156
  await this.validateProduct(productId);
122
157
  const saved = await business_menu_layout_entity_1.BusinessMenuLayoutEntity.findOne({ where: { business_id: this.business.id, product_id: productId } });
123
- if (saved)
158
+ if (saved?.attributes?.hidden_menu_ids?.length) {
159
+ saved.layout = { modules: [] };
160
+ await saved.save();
161
+ }
162
+ else if (saved)
124
163
  await saved.softDelete();
125
164
  return { success: true };
126
165
  }
@@ -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,21 @@
1
+ import { UploadService } from '@servicelabsco/nestjs-utility-services';
2
+ import { BusinessEmailEntity } from '../entities/business.email.entity';
3
+ import { EmailMessageEntity } from '../entities/email.message.entity';
4
+ import { InboundEmailMessageInterface } from '../interfaces/inbound.email.message.interface';
5
+ import { SyncEmailMessageMetricsJob } from '../jobs/sync.email.message.metrics.job';
6
+ export declare class ProcessInboundEmailMessage {
7
+ private readonly uploadService;
8
+ private readonly syncEmailMessageMetricsJob;
9
+ constructor(uploadService: UploadService, syncEmailMessageMetricsJob: SyncEmailMessageMetricsJob);
10
+ process(email: BusinessEmailEntity, payload: InboundEmailMessageInterface): Promise<EmailMessageEntity>;
11
+ private existingOnUniqueViolation;
12
+ private setAttachments;
13
+ private setAttachment;
14
+ private setRecipients;
15
+ private getBody;
16
+ private getAttachment;
17
+ private getDate;
18
+ private getSenderId;
19
+ private getParentDetails;
20
+ private getMessageIdentifier;
21
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProcessInboundEmailMessage = void 0;
4
+ const nestjs_utility_services_1 = require("@servicelabsco/nestjs-utility-services");
5
+ const typeorm_1 = require("typeorm");
6
+ const email_attachment_entity_1 = require("../entities/email.attachment.entity");
7
+ const email_message_entity_1 = require("../entities/email.message.entity");
8
+ const email_recipient_entity_1 = require("../entities/email.recipient.entity");
9
+ const PG_UNIQUE_VIOLATION = '23505';
10
+ class ProcessInboundEmailMessage {
11
+ constructor(uploadService, syncEmailMessageMetricsJob) {
12
+ this.uploadService = uploadService;
13
+ this.syncEmailMessageMetricsJob = syncEmailMessageMetricsJob;
14
+ }
15
+ async process(email, payload) {
16
+ const message = await email_message_entity_1.EmailMessageEntity.firstOrNew({ email_id: email.id, identifier: payload.identifier });
17
+ if (message.id)
18
+ return message;
19
+ message.subject = payload.subject;
20
+ message.from_email = payload.from_email;
21
+ message.sender_id = await this.getSenderId(payload.from_email);
22
+ message.tracking_identifier = this.getMessageIdentifier(payload);
23
+ message.body = await this.getBody(email, payload.body);
24
+ message.attributes = { ...message.attributes, ...payload.attributes };
25
+ message.emailed_at = this.getDate(payload.attributes?.date);
26
+ const parent = await this.getParentDetails(message);
27
+ message.parent_id = parent?.parent_id || parent?.id || null;
28
+ try {
29
+ await message.save();
30
+ }
31
+ catch (error) {
32
+ const existing = await this.existingOnUniqueViolation(error, email.id, payload.identifier);
33
+ if (existing)
34
+ return existing;
35
+ throw error;
36
+ }
37
+ await this.setAttachments(email, message, payload.attachments);
38
+ await this.setRecipients(message, payload.recipients);
39
+ await this.syncEmailMessageMetricsJob.delayedDispatch(message.id);
40
+ return message;
41
+ }
42
+ async existingOnUniqueViolation(error, emailId, identifier) {
43
+ const code = error instanceof typeorm_1.QueryFailedError ? error.driverError?.code : undefined;
44
+ if (code !== PG_UNIQUE_VIOLATION)
45
+ return null;
46
+ return email_message_entity_1.EmailMessageEntity.findOne({ where: { email_id: emailId, identifier, deleted_at: (0, typeorm_1.IsNull)() } });
47
+ }
48
+ async setAttachments(email, message, attachments) {
49
+ if (!Array.isArray(attachments))
50
+ return;
51
+ for (const attachment of attachments)
52
+ await this.setAttachment(email, message, attachment);
53
+ }
54
+ async setAttachment(email, message, attachment) {
55
+ try {
56
+ const url = await this.getAttachment(email, attachment);
57
+ const r = await email_attachment_entity_1.EmailAttachmentEntity.firstOrNew({ message_id: message.id, name: attachment.name });
58
+ r.url = url;
59
+ r.attributes = { ...r.attributes, size: attachment.size };
60
+ return r.save();
61
+ }
62
+ catch {
63
+ global.console.log('cannot store attachment : ', attachment?.name);
64
+ }
65
+ }
66
+ async setRecipients(message, recipients) {
67
+ const nodes = ['to', 'cc'];
68
+ for (const node of nodes) {
69
+ const records = recipients?.[node];
70
+ if (!Array.isArray(records))
71
+ continue;
72
+ for (const record of records) {
73
+ if (!record?.email)
74
+ continue;
75
+ const r = await email_recipient_entity_1.EmailRecipientEntity.firstOrNew({ message_id: message.id, type: node, email: record.email });
76
+ r.attributes = { ...r.attributes, name: record.name };
77
+ await r.save();
78
+ }
79
+ }
80
+ }
81
+ async getBody(email, body) {
82
+ const originalname = `${Date.now()}.${nestjs_utility_services_1.PlatformUtility.generateRandomAlpha(6).toLowerCase()}.emailBody.html`;
83
+ const params = { folder: `business/${email.business.identifier}/email/body`, acl: 'private' };
84
+ if (body?.url)
85
+ return this.uploadService.upload({ url: body.url, originalname }, params);
86
+ const buffer = Buffer.from(body?.html ?? '', 'utf-8');
87
+ return this.uploadService.upload({ buffer, originalname }, params);
88
+ }
89
+ async getAttachment(email, attachment) {
90
+ const params = { folder: `business/${email.business.identifier}/email/attachments`, acl: 'private' };
91
+ if (attachment.buffer)
92
+ return this.uploadService.upload({ buffer: attachment.buffer, originalname: attachment.name }, params);
93
+ return this.uploadService.upload({ url: attachment.url, originalname: attachment.name }, params);
94
+ }
95
+ getDate(value) {
96
+ if (!value)
97
+ return null;
98
+ const date = new Date(value);
99
+ return Number.isNaN(date.getTime()) ? null : date;
100
+ }
101
+ async getSenderId(email) {
102
+ const user = await nestjs_utility_services_1.UserEntity.findOne({ where: { email } });
103
+ return user?.id || null;
104
+ }
105
+ async getParentDetails(message) {
106
+ let identifiers = [];
107
+ const { in_reply_to, references } = message.attributes || {};
108
+ if (in_reply_to)
109
+ identifiers.push(in_reply_to);
110
+ if (references?.length)
111
+ identifiers = identifiers.concat(references);
112
+ identifiers = identifiers.filter((item) => item?.length);
113
+ if (!identifiers.length)
114
+ return;
115
+ for (const identifier of identifiers) {
116
+ const parent = await email_message_entity_1.EmailMessageEntity.findOne({ where: { email_id: message.email_id, tracking_identifier: identifier } });
117
+ if (parent)
118
+ return parent;
119
+ }
120
+ }
121
+ getMessageIdentifier(payload) {
122
+ const { in_reply_to, references, message_id } = payload?.attributes || {};
123
+ if (!in_reply_to && references?.length === 1)
124
+ return references[0];
125
+ return message_id;
126
+ }
127
+ }
128
+ exports.ProcessInboundEmailMessage = ProcessInboundEmailMessage;
129
+ //# sourceMappingURL=process.inbound.email.message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.inbound.email.message.js","sourceRoot":"","sources":["../../../src/access/libraries/process.inbound.email.message.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface EmlAttachmentInterface {
2
+ name: string;
3
+ buffer: Buffer;
4
+ }
5
+ export declare class ReadEmlAttachments {
6
+ fromBuffer(source: Buffer): EmlAttachmentInterface[];
7
+ private parts;
8
+ private unfold;
9
+ private escape;
10
+ private boundary;
11
+ private filePart;
12
+ private decodeBody;
13
+ private decodeQuotedPrintable;
14
+ private headerValue;
15
+ private param;
16
+ private extendedParam;
17
+ private decodeWords;
18
+ private decode;
19
+ }
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReadEmlAttachments = void 0;
4
+ class ReadEmlAttachments {
5
+ fromBuffer(source) {
6
+ return this.parts(source.toString('latin1'));
7
+ }
8
+ parts(raw) {
9
+ const split = /\r?\n\r?\n/.exec(raw);
10
+ if (!split)
11
+ return [];
12
+ const header = this.unfold(raw.slice(0, split.index));
13
+ const body = raw.slice(split.index + split[0].length);
14
+ const boundary = this.boundary(header);
15
+ if (!boundary) {
16
+ const file = this.filePart(header, body);
17
+ return file ? [file] : [];
18
+ }
19
+ const delimiter = new RegExp(`^--${this.escape(boundary)}(--)?[ \\t]*\\r?$`, 'm');
20
+ const chunks = body.split(delimiter);
21
+ const files = [];
22
+ for (let i = 1; i < chunks.length; i += 2) {
23
+ if (chunks[i] === '--')
24
+ break;
25
+ const piece = (chunks[i + 1] || '').replace(/^\r?\n/, '').replace(/\r?\n$/, '');
26
+ files.push(...this.parts(piece));
27
+ }
28
+ return files;
29
+ }
30
+ unfold(header) {
31
+ return header.replace(/\r?\n[ \t]+/g, ' ');
32
+ }
33
+ escape(value) {
34
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
35
+ }
36
+ boundary(header) {
37
+ const contentType = this.headerValue(header, 'content-type');
38
+ if (!/^multipart\//i.test(contentType || ''))
39
+ return;
40
+ return this.param(contentType, 'boundary');
41
+ }
42
+ filePart(header, body) {
43
+ const contentType = this.headerValue(header, 'content-type') || '';
44
+ if (/^multipart\//i.test(contentType))
45
+ return;
46
+ const name = this.param(this.headerValue(header, 'content-disposition') || '', 'filename') || this.param(contentType, 'name');
47
+ if (!name)
48
+ return;
49
+ const encoding = this.headerValue(header, 'content-transfer-encoding')?.toLowerCase();
50
+ const buffer = this.decodeBody(body.replace(/\r?\n$/, ''), encoding);
51
+ if (!buffer.length)
52
+ return;
53
+ return { name, buffer };
54
+ }
55
+ decodeBody(payload, encoding) {
56
+ if (encoding === 'base64')
57
+ return Buffer.from(payload.replace(/\s/g, ''), 'base64');
58
+ if (encoding === 'quoted-printable')
59
+ return this.decodeQuotedPrintable(payload);
60
+ return Buffer.from(payload, 'latin1');
61
+ }
62
+ decodeQuotedPrintable(payload) {
63
+ const text = payload.replace(/=\r?\n/g, '').replace(/=([0-9A-F]{2})/gi, (_match, hex) => String.fromCharCode(parseInt(hex, 16)));
64
+ return Buffer.from(text, 'latin1');
65
+ }
66
+ headerValue(header, name) {
67
+ const match = new RegExp(`^${name}:[ \\t]*(.*)$`, 'im').exec(header);
68
+ return match?.[1]?.trim();
69
+ }
70
+ param(value, name) {
71
+ const extended = this.extendedParam(value, name);
72
+ if (extended)
73
+ return extended;
74
+ const match = new RegExp(`(?:^|;)\\s*${name}\\s*=\\s*(?:"((?:[^"\\\\]|\\\\.)*)"|([^;\\s]+))`, 'i').exec(value);
75
+ if (!match)
76
+ return;
77
+ const text = match[1] !== undefined ? match[1].replace(/\\(.)/g, '$1') : match[2];
78
+ return this.decodeWords(text);
79
+ }
80
+ extendedParam(value, name) {
81
+ const pattern = new RegExp(`(?:^|;)\\s*${name}\\*(\\d+)?(\\*)?\\s*=\\s*(?:"([^"]*)"|([^;\\s]+))`, 'gi');
82
+ const pieces = [];
83
+ for (const match of value.matchAll(pattern)) {
84
+ pieces.push({ index: Number(match[1] ?? 0), text: match[3] ?? match[4], encoded: Boolean(match[2]) || match[1] === undefined });
85
+ }
86
+ if (!pieces.length)
87
+ return;
88
+ pieces.sort((a, b) => a.index - b.index);
89
+ let charset = 'utf-8';
90
+ const bytes = [];
91
+ for (const [position, piece] of pieces.entries()) {
92
+ let text = piece.text;
93
+ if (position === 0 && piece.encoded) {
94
+ const prefix = /^([^']*)'[^']*'/.exec(text);
95
+ if (prefix) {
96
+ charset = prefix[1] || charset;
97
+ text = text.slice(prefix[0].length);
98
+ }
99
+ }
100
+ const decoded = piece.encoded ? text.replace(/%([0-9A-F]{2})/gi, (_match, hex) => String.fromCharCode(parseInt(hex, 16))) : text;
101
+ for (const char of decoded)
102
+ bytes.push(char.charCodeAt(0) & 0xff);
103
+ }
104
+ return this.decode(Buffer.from(bytes), charset);
105
+ }
106
+ decodeWords(value) {
107
+ return value
108
+ .replace(/(\?=)\s+(=\?)/g, '$1$2')
109
+ .replace(/=\?([^?]+)\?([bq])\?([^?]*)\?=/gi, (_word, charset, kind, text) => {
110
+ const bytes = kind.toLowerCase() === 'b'
111
+ ? Buffer.from(text, 'base64')
112
+ : Buffer.from(text.replace(/_/g, ' ').replace(/=([0-9A-F]{2})/gi, (_match, hex) => String.fromCharCode(parseInt(hex, 16))), 'latin1');
113
+ return this.decode(bytes, charset);
114
+ });
115
+ }
116
+ decode(bytes, charset) {
117
+ try {
118
+ return new TextDecoder(charset.trim().toLowerCase()).decode(bytes);
119
+ }
120
+ catch {
121
+ return bytes.toString('latin1');
122
+ }
123
+ }
124
+ }
125
+ exports.ReadEmlAttachments = ReadEmlAttachments;
126
+ //# sourceMappingURL=read.eml.attachments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.eml.attachments.js","sourceRoot":"","sources":["../../../src/access/libraries/read.eml.attachments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { SqlService } from '@servicelabsco/nestjs-utility-services';
2
+ import { AliasSearchMatchInterface } from '../interfaces/alias.search.match.interface';
3
+ import { AliasSearchQueryInterface } from '../interfaces/alias.search.query.interface';
4
+ export declare class SearchAliasMappings {
5
+ private readonly sqlService;
6
+ private static readonly DEFAULT_LIMIT;
7
+ private static readonly MAX_LIMIT;
8
+ private static readonly MIN_SIMILARITY;
9
+ constructor(sqlService: SqlService);
10
+ process(businessId: number, query: AliasSearchQueryInterface): Promise<AliasSearchMatchInterface[]>;
11
+ private clamp;
12
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SearchAliasMappings = void 0;
4
+ class SearchAliasMappings {
5
+ constructor(sqlService) {
6
+ this.sqlService = sqlService;
7
+ }
8
+ async process(businessId, query) {
9
+ const name = query?.name?.trim();
10
+ if (!name)
11
+ return [];
12
+ const minSimilarity = this.clamp(query.min_similarity ?? SearchAliasMappings.MIN_SIMILARITY, SearchAliasMappings.MIN_SIMILARITY, 1);
13
+ const limit = Math.round(this.clamp(query.limit ?? SearchAliasMappings.DEFAULT_LIMIT, 1, SearchAliasMappings.MAX_LIMIT));
14
+ const sourceType = query.source_type?.trim() || null;
15
+ const type = query.type?.trim() || null;
16
+ const rows = await this.sqlService.boundSql(`select a.id, a.source_type, a.source_id, a.name, a.type,
17
+ similarity(lower(a.name), lower($2)) as similarity
18
+ from bz_alias_mappings a
19
+ where a.deleted_at is null
20
+ and a.business_id = $1
21
+ and ($3::text is null or a.source_type = $3)
22
+ and ($4::text is null or a.type = $4)
23
+ and similarity(lower(a.name), lower($2)) >= $5
24
+ order by similarity desc, a.id asc
25
+ limit $6`, [businessId, name, sourceType, type, minSimilarity, limit]);
26
+ return (rows ?? []).map((row) => ({
27
+ id: Number(row.id),
28
+ source_type: row.source_type,
29
+ source_id: Number(row.source_id),
30
+ name: row.name,
31
+ type: row.type,
32
+ similarity: Number(row.similarity),
33
+ }));
34
+ }
35
+ clamp(value, min, max) {
36
+ const number = Number(value);
37
+ if (!Number.isFinite(number))
38
+ return min;
39
+ return Math.min(Math.max(number, min), max);
40
+ }
41
+ }
42
+ exports.SearchAliasMappings = SearchAliasMappings;
43
+ SearchAliasMappings.DEFAULT_LIMIT = 10;
44
+ SearchAliasMappings.MAX_LIMIT = 50;
45
+ SearchAliasMappings.MIN_SIMILARITY = 0.3;
46
+ //# sourceMappingURL=search.alias.mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.alias.mappings.js","sourceRoot":"","sources":["../../../src/access/libraries/search.alias.mappings.ts"],"names":[],"mappings":";;;AASA,MAAa,mBAAmB;IAM5B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAmBvD,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,KAAgC;QAC9D,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,mBAAmB,CAAC,cAAc,EAAE,mBAAmB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACpI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,mBAAmB,CAAC,aAAa,EAAE,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;QACzH,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;QAExC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CACvC;;;;;;;;;iBASK,EACL,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAC7D,CAAC;QAEF,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9B,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;YAChC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;SACrC,CAAC,CAAC,CAAC;IACR,CAAC;IAUO,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,GAAG,CAAC;QAEzC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;;AAvEL,kDAwEC;AAvE2B,iCAAa,GAAG,EAAE,CAAC;AACnB,6BAAS,GAAG,EAAE,CAAC;AAEf,kCAAc,GAAG,GAAG,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { AliasMappingEntity } from '../entities/alias.mapping.entity';
2
+ import { AliasMappingInputInterface } from '../interfaces/alias.mapping.input.interface';
3
+ export declare class SetAliasMapping {
4
+ private static readonly MAX_NAME;
5
+ private static readonly MAX_TYPE;
6
+ private static readonly SOURCE_TYPE;
7
+ process(businessId: number, input: AliasMappingInputInterface): Promise<AliasMappingEntity>;
8
+ private findExisting;
9
+ private mergeAttributes;
10
+ private static isUniqueViolation;
11
+ private validate;
12
+ }