@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.
- package/dist/access/controllers/alias.mapping.controller.d.ts +16 -0
- package/dist/access/controllers/alias.mapping.controller.js +93 -0
- package/dist/access/controllers/alias.mapping.controller.js.map +1 -0
- package/dist/access/controllers/bulk.upload.controller.d.ts +10 -1
- package/dist/access/controllers/bulk.upload.controller.js +50 -2
- package/dist/access/controllers/bulk.upload.controller.js.map +1 -1
- package/dist/access/controllers/business.email.controller.d.ts +2 -1
- package/dist/access/controllers/business.email.controller.js +6 -3
- package/dist/access/controllers/business.email.controller.js.map +1 -1
- package/dist/access/controllers/developer.menu.controller.d.ts +1 -0
- package/dist/access/controllers/emithook.controller.d.ts +12 -0
- package/dist/access/controllers/emithook.controller.js +49 -0
- package/dist/access/controllers/emithook.controller.js.map +1 -0
- package/dist/access/controllers/index.d.ts +2 -0
- package/dist/access/controllers/index.js +2 -0
- package/dist/access/controllers/index.js.map +1 -1
- package/dist/access/dtos/add.alias.mapping.dto.d.ts +7 -0
- package/dist/access/dtos/add.alias.mapping.dto.js +49 -0
- package/dist/access/dtos/add.alias.mapping.dto.js.map +1 -0
- package/dist/access/dtos/add.business.email.dto.d.ts +4 -0
- package/dist/access/dtos/add.business.email.dto.js +34 -0
- package/dist/access/dtos/add.business.email.dto.js.map +1 -0
- package/dist/access/dtos/business.email.attributes.dto.d.ts +1 -0
- package/dist/access/dtos/business.email.attributes.dto.js +6 -0
- package/dist/access/dtos/business.email.attributes.dto.js.map +1 -1
- package/dist/access/dtos/business.menu.layout.attributes.dto.d.ts +1 -0
- package/dist/access/dtos/business.menu.layout.attributes.dto.js.map +1 -1
- package/dist/access/dtos/emithook.envelope.dto.d.ts +38 -0
- package/dist/access/dtos/emithook.envelope.dto.js +16 -0
- package/dist/access/dtos/emithook.envelope.dto.js.map +1 -0
- package/dist/access/dtos/index.d.ts +4 -0
- package/dist/access/dtos/index.js +4 -0
- package/dist/access/dtos/index.js.map +1 -1
- package/dist/access/dtos/search.alias.mapping.dto.d.ts +7 -0
- package/dist/access/dtos/search.alias.mapping.dto.js +51 -0
- package/dist/access/dtos/search.alias.mapping.dto.js.map +1 -0
- package/dist/access/entities/access.country.entity.js.map +1 -1
- package/dist/access/entities/alias.mapping.entity.d.ts +11 -0
- package/dist/access/entities/alias.mapping.entity.js +51 -0
- package/dist/access/entities/alias.mapping.entity.js.map +1 -0
- package/dist/access/entities/business.email.entity.d.ts +1 -0
- package/dist/access/entities/business.email.entity.js +4 -0
- package/dist/access/entities/business.email.entity.js.map +1 -1
- package/dist/access/entities/business.menu.layout.entity.js.map +1 -1
- package/dist/access/entities/business.ui.action.entity.js.map +1 -1
- package/dist/access/entities/index.d.ts +1 -0
- package/dist/access/entities/index.js +1 -0
- package/dist/access/entities/index.js.map +1 -1
- package/dist/access/enums/business.email.type.enum.d.ts +3 -0
- package/dist/access/enums/business.email.type.enum.js +8 -0
- package/dist/access/enums/business.email.type.enum.js.map +1 -0
- package/dist/access/enums/index.d.ts +1 -0
- package/dist/access/enums/index.js +1 -0
- package/dist/access/enums/index.js.map +1 -1
- package/dist/access/es6.classes.d.ts +39 -25
- package/dist/access/es6.classes.js +81 -48
- package/dist/access/es6.classes.js.map +1 -1
- package/dist/access/index.d.ts +1 -0
- package/dist/access/index.js +1 -0
- package/dist/access/index.js.map +1 -1
- package/dist/access/interfaces/alias.lookup.options.interface.d.ts +4 -0
- package/dist/access/interfaces/alias.lookup.options.interface.js +3 -0
- package/dist/access/interfaces/alias.lookup.options.interface.js.map +1 -0
- package/dist/access/interfaces/alias.mapping.input.interface.d.ts +7 -0
- package/dist/access/interfaces/alias.mapping.input.interface.js +3 -0
- package/dist/access/interfaces/alias.mapping.input.interface.js.map +1 -0
- package/dist/access/interfaces/alias.search.match.interface.d.ts +8 -0
- package/dist/access/interfaces/alias.search.match.interface.js +3 -0
- package/dist/access/interfaces/alias.search.match.interface.js.map +1 -0
- package/dist/access/interfaces/alias.search.query.interface.d.ts +7 -0
- package/dist/access/interfaces/alias.search.query.interface.js +3 -0
- package/dist/access/interfaces/alias.search.query.interface.js.map +1 -0
- package/dist/access/interfaces/emithook.email.body.interface.d.ts +24 -0
- package/dist/access/interfaces/emithook.email.body.interface.js +3 -0
- package/dist/access/interfaces/emithook.email.body.interface.js.map +1 -0
- package/dist/access/interfaces/inbound.email.message.interface.d.ts +31 -0
- package/dist/access/interfaces/inbound.email.message.interface.js +3 -0
- package/dist/access/interfaces/inbound.email.message.interface.js.map +1 -0
- package/dist/access/interfaces/index.d.ts +6 -0
- package/dist/access/interfaces/index.js +23 -0
- package/dist/access/interfaces/index.js.map +1 -0
- package/dist/access/jobs/handle.emithook.email.job.d.ts +27 -0
- package/dist/access/jobs/handle.emithook.email.job.js +162 -0
- package/dist/access/jobs/handle.emithook.email.job.js.map +1 -0
- package/dist/access/jobs/index.d.ts +3 -0
- package/dist/access/jobs/index.js +3 -0
- package/dist/access/jobs/index.js.map +1 -1
- package/dist/access/jobs/poll.emithook.email.inbox.job.d.ts +19 -0
- package/dist/access/jobs/poll.emithook.email.inbox.job.js +109 -0
- package/dist/access/jobs/poll.emithook.email.inbox.job.js.map +1 -0
- package/dist/access/jobs/poll.emithook.email.sqs.job.d.ts +20 -0
- package/dist/access/jobs/poll.emithook.email.sqs.job.js +83 -0
- package/dist/access/jobs/poll.emithook.email.sqs.job.js.map +1 -0
- package/dist/access/jobs/process.server.email.job.d.ts +1 -9
- package/dist/access/jobs/process.server.email.job.js +13 -105
- package/dist/access/jobs/process.server.email.job.js.map +1 -1
- package/dist/access/libraries/index.d.ts +4 -0
- package/dist/access/libraries/index.js +4 -0
- package/dist/access/libraries/index.js.map +1 -1
- package/dist/access/libraries/process.application.menu.js +6 -1
- package/dist/access/libraries/process.application.menu.js.map +1 -1
- package/dist/access/libraries/process.developer.menu.d.ts +2 -0
- package/dist/access/libraries/process.developer.menu.js +50 -11
- package/dist/access/libraries/process.developer.menu.js.map +1 -1
- package/dist/access/libraries/process.inbound.email.message.d.ts +21 -0
- package/dist/access/libraries/process.inbound.email.message.js +129 -0
- package/dist/access/libraries/process.inbound.email.message.js.map +1 -0
- package/dist/access/libraries/read.eml.attachments.d.ts +19 -0
- package/dist/access/libraries/read.eml.attachments.js +126 -0
- package/dist/access/libraries/read.eml.attachments.js.map +1 -0
- package/dist/access/libraries/search.alias.mappings.d.ts +12 -0
- package/dist/access/libraries/search.alias.mappings.js +46 -0
- package/dist/access/libraries/search.alias.mappings.js.map +1 -0
- package/dist/access/libraries/set.alias.mapping.d.ts +12 -0
- package/dist/access/libraries/set.alias.mapping.js +81 -0
- package/dist/access/libraries/set.alias.mapping.js.map +1 -0
- package/dist/access/services/alias.mapping.service.d.ts +9 -0
- package/dist/access/services/alias.mapping.service.js +45 -0
- package/dist/access/services/alias.mapping.service.js.map +1 -0
- package/dist/access/services/business.email.service.d.ts +5 -1
- package/dist/access/services/business.email.service.js +34 -2
- package/dist/access/services/business.email.service.js.map +1 -1
- package/dist/access/services/emithook.service.d.ts +32 -0
- package/dist/access/services/emithook.service.js +115 -0
- package/dist/access/services/emithook.service.js.map +1 -0
- package/dist/access/services/index.d.ts +2 -0
- package/dist/access/services/index.js +2 -0
- package/dist/access/services/index.js.map +1 -1
- package/dist/accessUtility/controllers/bulk.definition.controller.d.ts +22 -1
- package/dist/accessUtility/controllers/bulk.definition.controller.js +124 -2
- package/dist/accessUtility/controllers/bulk.definition.controller.js.map +1 -1
- package/dist/accessUtility/dtos/add.bulk.upload.column.dto.d.ts +10 -0
- package/dist/accessUtility/dtos/add.bulk.upload.column.dto.js +66 -0
- package/dist/accessUtility/dtos/add.bulk.upload.column.dto.js.map +1 -0
- package/dist/accessUtility/dtos/add.bulk.upload.type.dto.d.ts +11 -0
- package/dist/accessUtility/dtos/add.bulk.upload.type.dto.js +68 -0
- package/dist/accessUtility/dtos/add.bulk.upload.type.dto.js.map +1 -0
- package/dist/accessUtility/dtos/bulk.definition.script.dto.d.ts +4 -0
- package/dist/accessUtility/dtos/bulk.definition.script.dto.js +30 -0
- package/dist/accessUtility/dtos/bulk.definition.script.dto.js.map +1 -0
- package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.d.ts +10 -0
- package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.js +4 -1
- package/dist/accessUtility/dtos/bulk.upload.column.match.score.dto.js.map +1 -1
- package/dist/accessUtility/dtos/index.d.ts +4 -0
- package/dist/accessUtility/dtos/index.js +4 -0
- package/dist/accessUtility/dtos/index.js.map +1 -1
- package/dist/accessUtility/dtos/match.bulk.upload.file.dto.d.ts +3 -0
- package/dist/accessUtility/dtos/match.bulk.upload.file.dto.js +24 -0
- package/dist/accessUtility/dtos/match.bulk.upload.file.dto.js.map +1 -0
- package/dist/accessUtility/es6.classes.d.ts +12 -4
- package/dist/accessUtility/es6.classes.js +20 -0
- package/dist/accessUtility/es6.classes.js.map +1 -1
- package/dist/accessUtility/jobs/analyse.bulk.upload.job.d.ts +3 -1
- package/dist/accessUtility/jobs/analyse.bulk.upload.job.js +6 -3
- package/dist/accessUtility/jobs/analyse.bulk.upload.job.js.map +1 -1
- package/dist/accessUtility/jobs/bulk.upload.column.match.job.d.ts +0 -1
- package/dist/accessUtility/jobs/bulk.upload.column.match.job.js +3 -14
- package/dist/accessUtility/jobs/bulk.upload.column.match.job.js.map +1 -1
- package/dist/accessUtility/jobs/push.to.bulk.item.job.d.ts +2 -0
- package/dist/accessUtility/jobs/push.to.bulk.item.job.js +2 -0
- package/dist/accessUtility/jobs/push.to.bulk.item.job.js.map +1 -1
- package/dist/accessUtility/libraries/analyse.bulk.upload.d.ts +3 -1
- package/dist/accessUtility/libraries/analyse.bulk.upload.js +5 -1
- package/dist/accessUtility/libraries/analyse.bulk.upload.js.map +1 -1
- package/dist/accessUtility/libraries/extract.bulk.upload.headers.d.ts +16 -0
- package/dist/accessUtility/libraries/extract.bulk.upload.headers.js +78 -0
- package/dist/accessUtility/libraries/extract.bulk.upload.headers.js.map +1 -0
- package/dist/accessUtility/libraries/flatten.excel.rich.text.d.ts +5 -0
- package/dist/accessUtility/libraries/flatten.excel.rich.text.js +33 -0
- package/dist/accessUtility/libraries/flatten.excel.rich.text.js.map +1 -0
- package/dist/accessUtility/libraries/index.d.ts +6 -0
- package/dist/accessUtility/libraries/index.js +6 -0
- package/dist/accessUtility/libraries/index.js.map +1 -1
- package/dist/accessUtility/libraries/load.xls.file.js +2 -0
- package/dist/accessUtility/libraries/load.xls.file.js.map +1 -1
- package/dist/accessUtility/libraries/match.bulk.upload.columns.d.ts +16 -0
- package/dist/accessUtility/libraries/match.bulk.upload.columns.js +82 -0
- package/dist/accessUtility/libraries/match.bulk.upload.columns.js.map +1 -0
- package/dist/accessUtility/libraries/process.bulk.definition.script.d.ts +9 -0
- package/dist/accessUtility/libraries/process.bulk.definition.script.js +43 -0
- package/dist/accessUtility/libraries/process.bulk.definition.script.js.map +1 -0
- package/dist/accessUtility/libraries/process.bulk.upload.format.d.ts +24 -0
- package/dist/accessUtility/libraries/process.bulk.upload.format.js +167 -0
- package/dist/accessUtility/libraries/process.bulk.upload.format.js.map +1 -0
- package/dist/accessUtility/libraries/read.xls.file.d.ts +5 -1
- package/dist/accessUtility/libraries/read.xls.file.js +65 -17
- package/dist/accessUtility/libraries/read.xls.file.js.map +1 -1
- package/dist/accessUtility/libraries/score.bulk.upload.columns.d.ts +16 -0
- package/dist/accessUtility/libraries/score.bulk.upload.columns.js +57 -0
- package/dist/accessUtility/libraries/score.bulk.upload.columns.js.map +1 -0
- package/dist/mcp/admin/tools/menu/menu.list.tool.js +4 -1
- package/dist/mcp/admin/tools/menu/menu.list.tool.js.map +1 -1
- package/dist/mcp/es6.classes.d.ts +9 -1
- package/dist/mcp/es6.classes.js +16 -0
- package/dist/mcp/es6.classes.js.map +1 -1
- package/dist/migrations/1790855763155-CreateBzAliasMappingsTable.d.ts +8 -0
- package/dist/migrations/1790855763155-CreateBzAliasMappingsTable.js +37 -0
- package/dist/migrations/1790855763155-CreateBzAliasMappingsTable.js.map +1 -0
- package/dist/migrations/1792089460727-AddIdentifierBzBusinessEmailsTable.d.ts +5 -0
- package/dist/migrations/1792089460727-AddIdentifierBzBusinessEmailsTable.js +16 -0
- package/dist/migrations/1792089460727-AddIdentifierBzBusinessEmailsTable.js.map +1 -0
- package/dist/migrations/1792091262917-AddUniqueEmailIdentifierBzEmailMessagesTable.d.ts +8 -0
- package/dist/migrations/1792091262917-AddUniqueEmailIdentifierBzEmailMessagesTable.js +30 -0
- package/dist/migrations/1792091262917-AddUniqueEmailIdentifierBzEmailMessagesTable.js.map +1 -0
- 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
|
|
47
|
-
|
|
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
|
|
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 :
|
|
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
|
-
|
|
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
|
-
|
|
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
|
+
}
|