@lilaquadrat/studio 10.0.0-beta.9 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/eslint.config.js +146 -0
- package/lib/fastify-plugins.d.ts +6 -0
- package/lib/fastify-plugins.js +7 -0
- package/lib/fastify-plugins.js.map +1 -0
- package/lib/helpers.d.ts +4 -2
- package/lib/helpers.js +13 -2
- package/lib/helpers.js.map +1 -1
- package/lib/main.d.ts +1 -3
- package/lib/main.js +7 -3
- package/lib/main.js.map +1 -1
- package/lib/models.d.ts +4 -4
- package/lib/models.js +4 -4
- package/lib/models.js.map +1 -1
- package/lib/services.d.ts +5 -5
- package/lib/services.js +5 -13
- package/lib/services.js.map +1 -1
- package/lib/src/Immutable.class.d.ts +8 -1
- package/lib/src/Immutable.class.js +52 -8
- package/lib/src/Immutable.class.js.map +1 -1
- package/lib/src/ShareClientFactory.class.d.ts +1 -3
- package/lib/src/ShareClientFactory.class.js +1 -9
- package/lib/src/ShareClientFactory.class.js.map +1 -1
- package/lib/src/classes/models.class.js.map +1 -1
- package/lib/src/classes/modelv2.class.d.ts +2 -0
- package/lib/src/classes/modelv2.class.js +1 -1
- package/lib/src/classes/modelv2.class.js.map +1 -1
- package/lib/src/classes/mongo.class.js +4 -14
- package/lib/src/classes/mongo.class.js.map +1 -1
- package/lib/src/functions/handleError.d.ts +2 -3
- package/lib/src/functions/handleError.js +3 -16
- package/lib/src/functions/handleError.js.map +1 -1
- package/lib/src/functions/optionsHelper.d.ts +4 -4
- package/lib/src/functions/optionsHelper.js +5 -4
- package/lib/src/functions/optionsHelper.js.map +1 -1
- package/lib/src/functions/respondCode.d.ts +2 -1
- package/lib/src/functions/respondCode.js +1 -1
- package/lib/src/functions/respondCode.js.map +1 -1
- package/lib/src/helpers/ControllerHelper.d.ts +73 -0
- package/lib/src/helpers/ControllerHelper.js +242 -0
- package/lib/src/helpers/ControllerHelper.js.map +1 -0
- package/lib/src/helpers/EnvMapper.js +1 -0
- package/lib/src/helpers/EnvMapper.js.map +1 -0
- package/lib/src/helpers/auth0config.d.ts +6 -0
- package/lib/src/helpers/auth0config.js +23 -0
- package/lib/src/helpers/auth0config.js.map +1 -0
- package/lib/src/helpers/authPlugin.d.ts +29 -0
- package/lib/src/helpers/authPlugin.js +77 -0
- package/lib/src/helpers/authPlugin.js.map +1 -0
- package/lib/src/helpers/cacheHelper.d.ts +69 -0
- package/lib/src/helpers/cacheHelper.js +235 -0
- package/lib/src/helpers/cacheHelper.js.map +1 -0
- package/lib/src/helpers/createSasToken.d.ts +0 -2
- package/lib/src/helpers/createSasToken.js +35 -32
- package/lib/src/helpers/createSasToken.js.map +1 -1
- package/lib/src/helpers/getSecrets.d.ts +1 -1
- package/lib/src/helpers/getSecrets.js +10 -12
- package/lib/src/helpers/getSecrets.js.map +1 -1
- package/lib/src/helpers/limiterPlugin.d.ts +9 -0
- package/lib/src/helpers/limiterPlugin.js +72 -0
- package/lib/src/helpers/limiterPlugin.js.map +1 -0
- package/lib/src/helpers/loggingPlugin.d.ts +30 -0
- package/lib/src/helpers/loggingPlugin.js +87 -0
- package/lib/src/helpers/loggingPlugin.js.map +1 -0
- package/lib/src/helpers/queryAssertionPlugin.d.ts +3 -0
- package/lib/src/helpers/queryAssertionPlugin.js +20 -0
- package/lib/src/helpers/queryAssertionPlugin.js.map +1 -0
- package/lib/src/helpers/safeObjectId.d.ts +1 -1
- package/lib/src/helpers/safeObjectId.js +5 -1
- package/lib/src/helpers/safeObjectId.js.map +1 -1
- package/lib/src/helpers/storageSdkFactory.d.ts +2 -0
- package/lib/src/helpers/storageSdkFactory.js +11 -0
- package/lib/src/helpers/storageSdkFactory.js.map +1 -0
- package/lib/src/helpers/studioAppPlugin.d.ts +3 -0
- package/lib/src/helpers/studioAppPlugin.js +16 -0
- package/lib/src/helpers/studioAppPlugin.js.map +1 -0
- package/lib/src/logger.js +40 -2
- package/lib/src/logger.js.map +1 -1
- package/lib/src/models/access.model.d.ts +14 -3
- package/lib/src/models/access.model.js +7 -9
- package/lib/src/models/access.model.js.map +1 -1
- package/lib/src/models/customers.model.js +14 -4
- package/lib/src/models/customers.model.js.map +1 -1
- package/lib/src/models/design.model.d.ts +4 -0
- package/lib/src/models/design.model.js +58 -0
- package/lib/src/models/design.model.js.map +1 -0
- package/lib/src/models/domain.model.js +1 -1
- package/lib/src/models/domain.model.js.map +1 -1
- package/lib/src/models/editor.model.js +7 -0
- package/lib/src/models/editor.model.js.map +1 -1
- package/lib/src/models/emailLimit.model.d.ts +4 -0
- package/lib/src/models/emailLimit.model.js +31 -0
- package/lib/src/models/emailLimit.model.js.map +1 -0
- package/lib/src/models/hosting.model.js +1 -3
- package/lib/src/models/hosting.model.js.map +1 -1
- package/lib/src/models/hostingSettings.model.js +6 -4
- package/lib/src/models/hostingSettings.model.js.map +1 -1
- package/lib/src/models/invoice.model.d.ts +4 -0
- package/lib/src/models/invoice.model.js +235 -0
- package/lib/src/models/invoice.model.js.map +1 -0
- package/lib/src/models/mailFrom.model.js +51 -10
- package/lib/src/models/mailFrom.model.js.map +1 -1
- package/lib/src/models/project.model.js +2 -4
- package/lib/src/models/project.model.js.map +1 -1
- package/lib/src/models/publish-method.model.js +79 -430
- package/lib/src/models/publish-method.model.js.map +1 -1
- package/lib/src/models/publish.model.js +6 -0
- package/lib/src/models/publish.model.js.map +1 -1
- package/lib/src/models/storage.model.js +23 -5
- package/lib/src/models/storage.model.js.map +1 -1
- package/lib/src/models/structure.model.js +40 -0
- package/lib/src/models/structure.model.js.map +1 -1
- package/lib/src/models/upload.model.js +38 -2
- package/lib/src/models/upload.model.js.map +1 -1
- package/lib/src/prompts/textGeneration.js +88 -0
- package/lib/src/prompts/textGeneration.js.map +1 -1
- package/lib/src/prompts/textGenerationMulti.js +78 -44
- package/lib/src/prompts/textGenerationMulti.js.map +1 -1
- package/lib/src/services/access.service.d.ts +132 -33
- package/lib/src/services/access.service.js +270 -92
- package/lib/src/services/access.service.js.map +1 -1
- package/lib/src/services/ai.service.d.ts +4 -3
- package/lib/src/services/ai.service.js +22 -29
- package/lib/src/services/ai.service.js.map +1 -1
- package/lib/src/services/auth.service.d.ts +11 -0
- package/lib/src/services/auth.service.js +70 -0
- package/lib/src/services/auth.service.js.map +1 -0
- package/lib/src/services/conf.service.d.ts +3 -31
- package/lib/src/services/conf.service.js +58 -167
- package/lib/src/services/conf.service.js.map +1 -1
- package/lib/src/services/customers.service.d.ts +8 -4
- package/lib/src/services/customers.service.js +34 -7
- package/lib/src/services/customers.service.js.map +1 -1
- package/lib/src/services/designs.service.d.ts +7 -0
- package/lib/src/services/designs.service.js +10 -0
- package/lib/src/services/designs.service.js.map +1 -0
- package/lib/src/services/domains.service.d.ts +18 -84
- package/lib/src/services/domains.service.js +91 -583
- package/lib/src/services/domains.service.js.map +1 -1
- package/lib/src/services/editor.service.d.ts +4 -0
- package/lib/src/services/editor.service.js +28 -0
- package/lib/src/services/editor.service.js.map +1 -1
- package/lib/src/services/emailLimit.service.d.ts +21 -0
- package/lib/src/services/emailLimit.service.js +51 -0
- package/lib/src/services/emailLimit.service.js.map +1 -0
- package/lib/src/services/hosting.service.d.ts +12 -24
- package/lib/src/services/hosting.service.js +32 -122
- package/lib/src/services/hosting.service.js.map +1 -1
- package/lib/src/services/hostingAdmin.service.d.ts +1 -1
- package/lib/src/services/hostingAdmin.service.js +2 -2
- package/lib/src/services/hostingAdmin.service.js.map +1 -1
- package/lib/src/services/import.service.d.ts +6 -22
- package/lib/src/services/import.service.js +63 -65
- package/lib/src/services/import.service.js.map +1 -1
- package/lib/src/services/invoices.service.d.ts +30 -0
- package/lib/src/services/invoices.service.js +265 -0
- package/lib/src/services/invoices.service.js.map +1 -0
- package/lib/src/services/jetstream.service.d.ts +5 -3
- package/lib/src/services/jetstream.service.js +63 -7
- package/lib/src/services/jetstream.service.js.map +1 -1
- package/lib/src/services/listParticipants.service.d.ts +3 -5
- package/lib/src/services/listParticipants.service.js +76 -16
- package/lib/src/services/listParticipants.service.js.map +1 -1
- package/lib/src/services/mailFrom.service.d.ts +14 -1
- package/lib/src/services/mailFrom.service.js +59 -0
- package/lib/src/services/mailFrom.service.js.map +1 -1
- package/lib/src/services/me.service.d.ts +23 -12
- package/lib/src/services/me.service.js +65 -88
- package/lib/src/services/me.service.js.map +1 -1
- package/lib/src/services/publish.service.d.ts +6 -8
- package/lib/src/services/publish.service.js +34 -32
- package/lib/src/services/publish.service.js.map +1 -1
- package/lib/src/services/publishData.service.d.ts +10 -7
- package/lib/src/services/publishData.service.js +32 -75
- package/lib/src/services/publishData.service.js.map +1 -1
- package/lib/src/services/spamAnalasys.service.d.ts +4 -4
- package/lib/src/services/spamAnalasys.service.js +36 -44
- package/lib/src/services/spamAnalasys.service.js.map +1 -1
- package/lib/src/services/storage.service.d.ts +68 -39
- package/lib/src/services/storage.service.js +378 -209
- package/lib/src/services/storage.service.js.map +1 -1
- package/lib/src/services/structures.service.d.ts +8 -1
- package/lib/src/services/structures.service.js +26 -1
- package/lib/src/services/structures.service.js.map +1 -1
- package/lib/src/services/upload.service.d.ts +8 -1
- package/lib/src/services/upload.service.js +76 -3
- package/lib/src/services/upload.service.js.map +1 -1
- package/lib/tests/groupStructuresByModel.spec.d.ts +1 -0
- package/lib/tests/groupStructuresByModel.spec.js +33 -0
- package/lib/tests/groupStructuresByModel.spec.js.map +1 -0
- package/lib/tests/listParticipantsServiceJoin.spec.d.ts +1 -0
- package/lib/tests/listParticipantsServiceJoin.spec.js +151 -0
- package/lib/tests/listParticipantsServiceJoin.spec.js.map +1 -0
- package/lib/tests/storageServiceHandleFile.spec.d.ts +1 -0
- package/lib/tests/storageServiceHandleFile.spec.js +94 -0
- package/lib/tests/storageServiceHandleFile.spec.js.map +1 -0
- package/lib/tests/storageServiceToken.spec.d.ts +1 -0
- package/lib/tests/storageServiceToken.spec.js +104 -0
- package/lib/tests/storageServiceToken.spec.js.map +1 -0
- package/lib/tests/uploadServiceCreate.spec.d.ts +1 -0
- package/lib/tests/uploadServiceCreate.spec.js +81 -0
- package/lib/tests/uploadServiceCreate.spec.js.map +1 -0
- package/package.json +30 -26
- package/lib/src/AzureBlobStorage.share.d.ts +0 -19
- package/lib/src/AzureBlobStorage.share.js +0 -162
- package/lib/src/AzureBlobStorage.share.js.map +0 -1
- package/lib/src/AzureFileStorage.share.d.ts +0 -22
- package/lib/src/AzureFileStorage.share.js +0 -139
- package/lib/src/AzureFileStorage.share.js.map +0 -1
- package/lib/src/AzureVault.d.ts +0 -14
- package/lib/src/AzureVault.js +0 -28
- package/lib/src/AzureVault.js.map +0 -1
- package/lib/src/dns.challenge.class.d.ts +0 -17
- package/lib/src/dns.challenge.class.js +0 -41
- package/lib/src/dns.challenge.class.js.map +0 -1
- package/lib/src/http.challenge.class.d.ts +0 -33
- package/lib/src/http.challenge.class.js +0 -58
- package/lib/src/http.challenge.class.js.map +0 -1
- package/lib/src/models/certificate-action.model.d.ts +0 -5
- package/lib/src/models/certificate-action.model.js +0 -230
- package/lib/src/models/certificate-action.model.js.map +0 -1
- package/lib/src/models/certificate.model.d.ts +0 -4
- package/lib/src/models/certificate.model.js +0 -96
- package/lib/src/models/certificate.model.js.map +0 -1
- package/lib/src/models/editorBase.model.d.ts +0 -4
- package/lib/src/models/editorBase.model.js +0 -39
- package/lib/src/models/editorBase.model.js.map +0 -1
- package/lib/src/services/certificates.service.js +0 -199
- package/lib/src/services/certificates.service.js.map +0 -1
- package/lib/src/services/certificatesAction.service.d.ts +0 -0
- package/lib/src/services/certificatesAction.service.js +0 -237
- package/lib/src/services/certificatesAction.service.js.map +0 -1
- package/lib/src/services/editorBase.service.d.ts +0 -46
- package/lib/src/services/editorBase.service.js +0 -161
- package/lib/src/services/editorBase.service.js.map +0 -1
- package/lib/src/services/handleFile.service.d.ts +0 -9
- package/lib/src/services/handleFile.service.js +0 -45
- package/lib/src/services/handleFile.service.js.map +0 -1
- package/lib/src/services/media.service.d.ts +0 -35
- package/lib/src/services/media.service.js +0 -418
- package/lib/src/services/media.service.js.map +0 -1
- package/lib/src/services/share.service.d.ts +0 -6
- package/lib/src/services/share.service.js +0 -4
- package/lib/src/services/share.service.js.map +0 -1
- /package/lib/src/{services/certificates.service.d.ts → helpers/EnvMapper.d.ts} +0 -0
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { ObjectId } from 'mongodb';
|
|
2
|
-
import { Modelv2, mongoClass } from '../../main.js';
|
|
3
2
|
import EditorModel from '../models/editor.model.js';
|
|
4
3
|
// import UniversalService from './universal.service.js';
|
|
5
4
|
import EditorService from './editor.service.js';
|
|
6
5
|
export default class PublishDataService {
|
|
7
|
-
static async getModel(
|
|
8
|
-
|
|
9
|
-
return EditorModel;
|
|
10
|
-
}
|
|
11
|
-
const universalModel = new Modelv2(model, 'universal', undefined, true);
|
|
12
|
-
await universalModel.setMongoConnection(mongoClass.client);
|
|
13
|
-
return universalModel;
|
|
6
|
+
static async getModel() {
|
|
7
|
+
return EditorModel;
|
|
14
8
|
}
|
|
15
|
-
static async getAll(company, project,
|
|
9
|
+
static async getAll(company, project, full, changed, affectedStates, category) {
|
|
16
10
|
let options;
|
|
17
11
|
if (full) {
|
|
18
12
|
options = {};
|
|
@@ -22,19 +16,17 @@ export default class PublishDataService {
|
|
|
22
16
|
projection: { _id: 1 },
|
|
23
17
|
};
|
|
24
18
|
}
|
|
25
|
-
const select = PublishDataService.getQuery(company, project,
|
|
26
|
-
|
|
27
|
-
return useModel
|
|
19
|
+
const select = PublishDataService.getQuery(company, project, changed, affectedStates, category);
|
|
20
|
+
return EditorModel
|
|
28
21
|
.db.find(select, options)
|
|
29
22
|
.toArray();
|
|
30
23
|
}
|
|
31
|
-
static async countAll(company, project,
|
|
32
|
-
const select = PublishDataService.getQuery(company, project,
|
|
33
|
-
|
|
34
|
-
return useModel
|
|
24
|
+
static async countAll(company, project, changed, affectedStates, category) {
|
|
25
|
+
const select = PublishDataService.getQuery(company, project, changed, affectedStates, category);
|
|
26
|
+
return EditorModel
|
|
35
27
|
.db.countDocuments(select);
|
|
36
28
|
}
|
|
37
|
-
static getQuery(company, project,
|
|
29
|
+
static getQuery(company, project, changed, affectedStates, category, options) {
|
|
38
30
|
let select;
|
|
39
31
|
if (changed) {
|
|
40
32
|
select = {
|
|
@@ -57,68 +49,33 @@ export default class PublishDataService {
|
|
|
57
49
|
if (category) {
|
|
58
50
|
select.tags = { $in: [category] };
|
|
59
51
|
}
|
|
60
|
-
if (
|
|
61
|
-
select.
|
|
62
|
-
|
|
52
|
+
if (!options?.includeLayouts) {
|
|
53
|
+
select.layout = { $exists: false };
|
|
54
|
+
}
|
|
55
|
+
if (!options?.includePartials) {
|
|
56
|
+
select.partial = { $exists: false };
|
|
63
57
|
}
|
|
64
58
|
return select;
|
|
65
59
|
}
|
|
66
|
-
static async getSingleInternalId(internalId, company, project, partials, children, genericData,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
affectedStates,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
// if (type === 'universal') {
|
|
79
|
-
// const model = new Modelv2<Universal>(modelPublish, 'universal', undefined, true);
|
|
80
|
-
// await model.setMongoConnection(mongoClass.client);
|
|
81
|
-
// const universalService = new UniversalService(model);
|
|
82
|
-
// data = await universalService.getByInternalId(
|
|
83
|
-
// internalId,
|
|
84
|
-
// company,
|
|
85
|
-
// project,
|
|
86
|
-
// appPublish,
|
|
87
|
-
// modelPublish,
|
|
88
|
-
// affectedStates,
|
|
89
|
-
// );
|
|
90
|
-
// }
|
|
91
|
-
if (!data)
|
|
92
|
-
throw new Error('DATA_SINGLE_NOT_FOUND');
|
|
93
|
-
return data;
|
|
60
|
+
static async getSingleInternalId(internalId, company, project, partials, children, genericData, affectedStates) {
|
|
61
|
+
return EditorService.getByInternalId(new ObjectId(internalId), {
|
|
62
|
+
company,
|
|
63
|
+
project,
|
|
64
|
+
partials,
|
|
65
|
+
children,
|
|
66
|
+
genericData,
|
|
67
|
+
affectedStates,
|
|
68
|
+
});
|
|
94
69
|
}
|
|
95
|
-
static async getSingle(id, company, project, partials, children, genericData,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
affectedStates,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
// if (type === 'universal') {
|
|
108
|
-
// const model = new Modelv2<Universal>(modelPublish, 'universal', undefined, true);
|
|
109
|
-
// await model.setMongoConnection(mongoClass.client);
|
|
110
|
-
// const universalService = new UniversalService(model);
|
|
111
|
-
// data = await universalService.single(
|
|
112
|
-
// id,
|
|
113
|
-
// company,
|
|
114
|
-
// project,
|
|
115
|
-
// appPublish,
|
|
116
|
-
// modelPublish,
|
|
117
|
-
// );
|
|
118
|
-
// }
|
|
119
|
-
if (!data)
|
|
120
|
-
throw new Error('DATA_SINGLE_ID_NOT_FOUND');
|
|
121
|
-
return data;
|
|
70
|
+
static async getSingle(id, company, project, partials, children, genericData, affectedStates) {
|
|
71
|
+
return EditorService.getById(id, {
|
|
72
|
+
company,
|
|
73
|
+
project,
|
|
74
|
+
partials,
|
|
75
|
+
children,
|
|
76
|
+
genericData,
|
|
77
|
+
affectedStates,
|
|
78
|
+
});
|
|
122
79
|
}
|
|
123
80
|
static async getContextData(arrayOfInternalIds, options) {
|
|
124
81
|
return EditorService.getMultipleByInternalId(arrayOfInternalIds, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishData.service.js","sourceRoot":"","sources":["../../../src/services/publishData.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"publishData.service.js","sourceRoot":"","sources":["../../../src/services/publishData.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExD,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,yDAAyD;AACzD,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAGhD,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAErC,MAAM,CAAC,KAAK,CAAC,QAAQ;QAEnB,OAAO,WAAW,CAAC;IAErB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAe,EACf,OAAe,EACf,IAAa,EACb,OAAc,EACd,cAAmC,EACnC,QAAiB;QAGjB,IAAI,OAAoB,CAAC;QAEzB,IAAI,IAAI,EAAE,CAAC;YAET,OAAO,GAAG,EAAE,CAAC;QAEf,CAAC;aAAM,CAAC;YAEN,OAAO,GAAG;gBACR,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;aACvB,CAAC;QAEJ,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CACxC,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,QAAQ,CACT,CAAC;QAEF,OAAO,WAAW;aACf,EAAE,CAAC,IAAI,CACN,MAAM,EACN,OAAO,CACR;aACA,OAAO,EAAE,CAAC;IAEf,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,OAAe,EACf,OAAe,EACf,OAAc,EACd,cAAmC,EACnC,QAAiB;QAGjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CACxC,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,QAAQ,CACT,CAAC;QAEF,OAAO,WAAW;aACf,EAAE,CAAC,cAAc,CAChB,MAAyB,CAC1B,CAAC;IAEN,CAAC;IAED,MAAM,CAAC,QAAQ,CACb,OAAe,EACf,OAAe,EACf,OAAc,EACd,cAAmC,EACnC,QAAiB,EACjB,OAGC;QAGD,IAAI,MAAuB,CAAC;QAE5B,IAAI,OAAO,EAAE,CAAC;YAEZ,MAAM,GAAG;gBACP,OAAO;gBACP,OAAO;gBACP,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC1D,iBAAiB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;aACpC,CAAC;QAEJ,CAAC;aAAM,CAAC;YAEN,MAAM,GAAG;gBACP,OAAO;gBACP,OAAO;gBACP,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;aAC3D,CAAC;QAEJ,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YAEnB,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;QAEzC,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YAEb,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAEpC,CAAC;QAED,IAAG,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;YAE5B,MAAM,CAAC,MAAM,GAAG,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC;QAEnC,CAAC;QAED,IAAG,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC;YAE7B,MAAM,CAAC,OAAO,GAAG,EAAC,OAAO,EAAE,KAAK,EAAC,CAAC;QAEpC,CAAC;QAED,OAAO,MAAM,CAAC;IAEhB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAC9B,UAAoB,EACpB,OAAe,EACf,OAAe,EACf,QAAiB,EACjB,QAAiB,EACjB,WAAoB,EACpB,cAAmC;QAGnC,OAAO,aAAa,CAAC,eAAe,CAClC,IAAI,QAAQ,CAAC,UAAU,CAAC,EACxB;YACE,OAAO;YACP,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,cAAc;SACf,CACF,CAAC;IAEJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,EAAU,EACV,OAAe,EACf,OAAe,EACf,QAAiB,EACjB,QAAiB,EACjB,WAAoB,EACpB,cAAmC;QAGnC,OAAO,aAAa,CAAC,OAAO,CAC1B,EAAE,EACF;YACE,OAAO;YACP,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,cAAc;SACf,CACF,CAAC;IAEJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,kBAAiD,EACjD,OAMC;QAGD,OAAO,aAAa,CAAC,uBAAuB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAE5E,CAAC;CAEF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CustomerPersonWithEmail } from '@lilaquadrat/interfaces';
|
|
2
|
-
import
|
|
2
|
+
import { GoogleGenAI } from '@google/genai';
|
|
3
3
|
export declare class SpamAnalasys {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
constructor(
|
|
4
|
+
provider: GoogleGenAI;
|
|
5
|
+
model: string;
|
|
6
|
+
constructor(key: string, model: string);
|
|
7
7
|
checkEmailDns(email: string): Promise<boolean>;
|
|
8
8
|
getDomainFromEMail(email: string): string | null;
|
|
9
9
|
check(person: CustomerPersonWithEmail, message: string): Promise<{
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import dnsCallbacks from 'dns';
|
|
2
|
-
import
|
|
2
|
+
import logger from '../logger.js';
|
|
3
|
+
import { GoogleGenAI, ThinkingLevel } from '@google/genai';
|
|
3
4
|
const dns = dnsCallbacks.promises;
|
|
4
5
|
export class SpamAnalasys {
|
|
5
|
-
constructor(
|
|
6
|
-
if (
|
|
7
|
-
this.
|
|
6
|
+
constructor(key, model) {
|
|
7
|
+
if (key) {
|
|
8
|
+
this.provider = new GoogleGenAI({
|
|
9
|
+
apiKey: key,
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
logger.warn('NO_API_KEY');
|
|
8
14
|
}
|
|
9
|
-
this.
|
|
15
|
+
this.model = model;
|
|
10
16
|
}
|
|
11
17
|
async checkEmailDns(email) {
|
|
12
18
|
const domain = this.getDomainFromEMail(email);
|
|
@@ -43,51 +49,37 @@ export class SpamAnalasys {
|
|
|
43
49
|
: null;
|
|
44
50
|
}
|
|
45
51
|
async check(person, message) {
|
|
46
|
-
const
|
|
47
|
-
model:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
{
|
|
51
|
-
role: 'system',
|
|
52
|
-
content: `i will provide the data as a json in this format:
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
"name": "LASTNAME",
|
|
56
|
-
"prename": "FIRSTNAME",
|
|
57
|
-
"message": "MESSAGE"
|
|
58
|
-
}
|
|
52
|
+
const response = await this.provider.models.generateContent({
|
|
53
|
+
model: this.model,
|
|
54
|
+
config: {
|
|
55
|
+
systemInstruction: `You are a strict B2B Lead Validation Agent. You will receive a JSON object: {name, prename, message}.
|
|
59
56
|
|
|
60
|
-
|
|
57
|
+
Evaluate the input based on two distinct criteria:
|
|
61
58
|
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
1. Identity Validation:
|
|
60
|
+
- Fail if 'name' or 'prename' are empty, clearly fake (e.g., "test", "admin", "123"), contain URLs, or are obvious gibberish.
|
|
64
61
|
|
|
65
|
-
|
|
62
|
+
2. Intent Validation:
|
|
63
|
+
- Pass only if the 'message' indicates a clear, human business intent (inquiry, support, sales, partnership).
|
|
64
|
+
- Fail if the message is promotional spam (SEO/Crypto), incoherent, automated, or lacks semantic meaning.
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
{
|
|
74
|
-
"useful": BOOLEAN,
|
|
75
|
-
"explanation": "EXPLANATION"
|
|
76
|
-
}`,
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
role: 'user',
|
|
80
|
-
content: JSON.stringify({
|
|
81
|
-
name: person.name,
|
|
82
|
-
prename: person.prename,
|
|
83
|
-
message,
|
|
84
|
-
}),
|
|
66
|
+
Output Instruction:
|
|
67
|
+
Return exactly one JSON object: {useful: BOOLEAN, explanation: STRING}.
|
|
68
|
+
- 'useful': true only if BOTH criteria pass.
|
|
69
|
+
- 'explanation': A concise, single-sentence justification.`,
|
|
70
|
+
thinkingConfig: {
|
|
71
|
+
thinkingLevel: ThinkingLevel.MEDIUM,
|
|
85
72
|
},
|
|
86
|
-
|
|
73
|
+
responseMimeType: 'application/json'
|
|
74
|
+
},
|
|
75
|
+
contents: JSON.stringify({
|
|
76
|
+
name: person.name,
|
|
77
|
+
prename: person.prename,
|
|
78
|
+
message,
|
|
79
|
+
})
|
|
87
80
|
});
|
|
88
|
-
|
|
89
|
-
return response;
|
|
81
|
+
return JSON.parse(response.text);
|
|
90
82
|
}
|
|
91
83
|
}
|
|
92
|
-
export default new SpamAnalasys(process.env.
|
|
84
|
+
export default new SpamAnalasys(process.env.GOOGLE_API_KEY, process.env.AI_MODEL);
|
|
93
85
|
//# sourceMappingURL=spamAnalasys.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spamAnalasys.service.js","sourceRoot":"","sources":["../../../src/services/spamAnalasys.service.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"spamAnalasys.service.js","sourceRoot":"","sources":["../../../src/services/spamAnalasys.service.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,KAAK,CAAC;AAC/B,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC;AAElC,MAAM,OAAO,YAAY;IAMvB,YAAY,GAAW,EAAE,KAAa;QAEpC,IAAI,GAAG,EAAE,CAAC;YAER,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC;gBAC9B,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;QAEL,CAAC;aAAM,CAAC;YAEN,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5B,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAErB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAa;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,OAAmB,CAAC;QACxB,IAAI,EAA2B,CAAC;QAChC,IAAI,GAAuB,CAAC;QAE5B,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,IAAI,CAAC;YAEH,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACvC,EAAE,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,OAAO,KAAK,CAAC;QAEf,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE7B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAEzB,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;gBAEzB,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAAE,GAAG,GAAG,WAAW,CAAC;YAExD,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvB,OAAO,IAAI,CAAC;IAEd,CAAC;IAED,kBAAkB,CAAC,KAAa;QAE9B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACf,CAAC,CAAC,IAAI,CAAC;IAEX,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAA+B,EAAE,OAAe;QAE1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE;gBACN,iBAAiB,EAAE;;;;;;;;;;;;;;2DAcgC;gBACnD,cAAc,EAAE;oBACd,aAAa,EAAE,aAAa,CAAC,MAAM;iBACpC;gBACD,gBAAgB,EAAE,kBAAkB;aACrC;YACD,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO;aACR,CAAC;SACH,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAK,CAA6C,CAAC;IAEhF,CAAC;CAEF;AAED,eAAe,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,cAAwB,EAAE,OAAO,CAAC,GAAG,CAAC,QAAkB,CAAC,CAAC"}
|
|
@@ -1,30 +1,8 @@
|
|
|
1
1
|
import { ObjectId } from 'mongodb';
|
|
2
|
-
import { Media, ListOfModels, MediaStats, Options, Upload,
|
|
2
|
+
import { Media, ListOfModels, MediaStats, Options, Upload, UserAppOptionsRequired, MediaMetadata, Storage, StorageFilePaths, BasicData } from '@lilaquadrat/interfaces';
|
|
3
3
|
import { type MultipartFile } from '@fastify/multipart';
|
|
4
4
|
import Immutable from '../Immutable.class.js';
|
|
5
5
|
export declare class StorageService extends Immutable<Storage> {
|
|
6
|
-
buckets: {
|
|
7
|
-
cdn: {
|
|
8
|
-
public: boolean;
|
|
9
|
-
overwrite: boolean;
|
|
10
|
-
cache: number;
|
|
11
|
-
};
|
|
12
|
-
hosting: {
|
|
13
|
-
public: boolean;
|
|
14
|
-
overwrite: boolean;
|
|
15
|
-
cache: number;
|
|
16
|
-
};
|
|
17
|
-
secure: {
|
|
18
|
-
public: boolean;
|
|
19
|
-
overwrite: boolean;
|
|
20
|
-
cache: number;
|
|
21
|
-
};
|
|
22
|
-
internal: {
|
|
23
|
-
public: boolean;
|
|
24
|
-
overwrite: boolean;
|
|
25
|
-
cache: number;
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
6
|
model: import("../classes/modelv2.class.js").default<Storage, string>;
|
|
29
7
|
options: {
|
|
30
8
|
dataFolder: string;
|
|
@@ -40,40 +18,51 @@ export declare class StorageService extends Immutable<Storage> {
|
|
|
40
18
|
* The token is cryptographically signed using HMAC-SHA256 and base64url-encoded to be
|
|
41
19
|
* non-human readable and URL-safe.
|
|
42
20
|
*
|
|
43
|
-
* @param fileId - The file identifier (ObjectId or string) to grant access to
|
|
44
21
|
* @param expiresIn - Time in seconds until the token expires (default: 3600 = 1 hour)
|
|
45
22
|
* @param limits - Optional restrictions to apply to the token
|
|
23
|
+
* @param limits.fileId - Restrict token to specific file (storage _id)
|
|
46
24
|
* @param limits.company - Restrict token to specific company
|
|
47
25
|
* @param limits.project - Restrict token to specific project
|
|
48
26
|
* @param limits.app - Restrict token to specific app
|
|
49
27
|
* @param limits.url - Restrict token to specific URL path prefix
|
|
50
28
|
* @param limits.prefix - Restrict token to specific file prefix
|
|
29
|
+
* @param limits.customer - Restrict token to specific customer
|
|
30
|
+
* @param limits.list - Restrict token to specific list
|
|
51
31
|
*
|
|
52
|
-
* @returns Base64url-encoded token containing:
|
|
32
|
+
* @returns Base64url-encoded token containing: expires[:limits]:signature
|
|
53
33
|
*
|
|
54
34
|
* @example
|
|
55
35
|
* // Generate token valid for 1 hour with no restrictions
|
|
56
|
-
* const { token } = getSecureToken(
|
|
36
|
+
* const { token } = getSecureToken(3600);
|
|
57
37
|
*
|
|
58
38
|
* @example
|
|
59
39
|
* // Generate token limited to specific company and project
|
|
60
|
-
* const { token } = getSecureToken(
|
|
40
|
+
* const { token } = getSecureToken(3600, {
|
|
61
41
|
* company: 'acme',
|
|
62
42
|
* project: 'website'
|
|
63
43
|
* });
|
|
64
44
|
*
|
|
65
45
|
* @example
|
|
46
|
+
* // Generate token limited to specific file
|
|
47
|
+
* const { token } = getSecureToken(3600, {
|
|
48
|
+
* fileId: '507f1f77bcf86cd799439011'
|
|
49
|
+
* });
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
66
52
|
* // Generate token limited to specific URL path
|
|
67
|
-
* const { token } = getSecureToken(
|
|
53
|
+
* const { token } = getSecureToken(3600, {
|
|
68
54
|
* url: '/company/project/files/'
|
|
69
55
|
* });
|
|
70
56
|
*/
|
|
71
|
-
getSecureToken(
|
|
57
|
+
getSecureToken(expiresIn?: number, limits?: {
|
|
58
|
+
fileId?: string;
|
|
72
59
|
company?: string;
|
|
73
60
|
project?: string;
|
|
74
61
|
app?: string;
|
|
75
62
|
url?: string;
|
|
76
63
|
prefix?: string;
|
|
64
|
+
customer?: string;
|
|
65
|
+
list?: string;
|
|
77
66
|
}): {
|
|
78
67
|
token: string;
|
|
79
68
|
expiresIn: number;
|
|
@@ -110,11 +99,14 @@ export declare class StorageService extends Immutable<Storage> {
|
|
|
110
99
|
* });
|
|
111
100
|
*/
|
|
112
101
|
validateSecureToken(token: string, checkLimits?: {
|
|
102
|
+
fileId?: string;
|
|
113
103
|
company?: string;
|
|
114
104
|
project?: string;
|
|
115
105
|
app?: string;
|
|
116
106
|
url?: string;
|
|
117
107
|
prefix?: string;
|
|
108
|
+
customer?: string;
|
|
109
|
+
list?: string;
|
|
118
110
|
}): boolean;
|
|
119
111
|
/**
|
|
120
112
|
* Creates a secure download URL with time-limited token for a storage file.
|
|
@@ -144,11 +136,11 @@ export declare class StorageService extends Immutable<Storage> {
|
|
|
144
136
|
url: string;
|
|
145
137
|
expiresAt: number;
|
|
146
138
|
}>;
|
|
147
|
-
handleFile(uploadInternalId: ObjectId, index: number, file: MultipartFile | undefined): Promise<Stored<Upload>>;
|
|
139
|
+
handleFile(uploadInternalId: ObjectId, index: number, file: MultipartFile | undefined): Promise<import("@lilaquadrat/interfaces").Stored<Upload>>;
|
|
148
140
|
complete(upload: Upload, options?: {
|
|
149
141
|
useNode?: boolean;
|
|
150
142
|
}): Promise<StorageFilePaths>;
|
|
151
|
-
writeFile(data: MultipartFile['file'] | Upload['paths'], index: number | undefined, internalId: ObjectId, type: 'upload' | 'file', options?: {
|
|
143
|
+
writeFile(data: MultipartFile['file'] | Upload['paths'] | string, index: number | undefined, internalId: ObjectId, type: 'upload' | 'file' | 'copy', options?: {
|
|
152
144
|
useNode?: boolean;
|
|
153
145
|
}): Promise<StorageFilePaths>;
|
|
154
146
|
writeFileVersion(data: Buffer, internalId: ObjectId, version: string): Promise<StorageFilePaths>;
|
|
@@ -164,27 +156,64 @@ export declare class StorageService extends Immutable<Storage> {
|
|
|
164
156
|
uploadPath(uploadId: string, index: number): StorageFilePaths;
|
|
165
157
|
static sanitizeName(name: string): string;
|
|
166
158
|
getMetadata(upload: Upload, metadata?: MediaMetadata): MediaMetadata;
|
|
167
|
-
get(
|
|
159
|
+
get(select: {
|
|
160
|
+
company: string;
|
|
161
|
+
project?: string;
|
|
162
|
+
app?: string;
|
|
163
|
+
list?: ObjectId;
|
|
164
|
+
customer?: ObjectId;
|
|
165
|
+
assetId?: string[];
|
|
166
|
+
query?: {
|
|
167
|
+
tags?: string | string[];
|
|
168
|
+
search?: string;
|
|
169
|
+
prefix?: string;
|
|
170
|
+
ignorePrefix?: boolean;
|
|
171
|
+
populateAssetId?: boolean;
|
|
172
|
+
};
|
|
173
|
+
}, limit?: {
|
|
168
174
|
skip: number;
|
|
169
175
|
limit: number;
|
|
170
176
|
}): Promise<ListOfModels<Media>>;
|
|
177
|
+
/**
|
|
178
|
+
* Get all files for a company/project with optional prefix filtering.
|
|
179
|
+
* Returns a flat list of all matching files without creating virtual folders.
|
|
180
|
+
*
|
|
181
|
+
* @param company - Company identifier
|
|
182
|
+
* @param project - Optional project identifier
|
|
183
|
+
* @param app - Optional app identifier
|
|
184
|
+
* @param prefix - Optional prefix to filter files (e.g., "folder/subfolder")
|
|
185
|
+
* @param limit - Optional pagination with skip and limit
|
|
186
|
+
* @returns Promise with all matching files and count
|
|
187
|
+
*/
|
|
188
|
+
getAllFiles(company: string, project?: string, app?: string, prefix?: string, limit?: {
|
|
189
|
+
skip: number;
|
|
190
|
+
limit: number;
|
|
191
|
+
}): Promise<ListOfModels<Storage>>;
|
|
171
192
|
getTags(company: string, project: string, search: string): Promise<string[]>;
|
|
172
193
|
single(company: string, project: string, filename: string): Promise<Media | null>;
|
|
173
194
|
content(company: string, project: string, id: ObjectId): Promise<Media | null>;
|
|
174
195
|
/**
|
|
175
196
|
* checks if the file was already successfully uploaded
|
|
176
197
|
*/
|
|
177
|
-
exists(filename: string, prefix: string | undefined, app: string, options: {
|
|
198
|
+
exists(filename: string, prefix: string | undefined, app: string, customer: ObjectId | undefined, list: ObjectId | undefined, options: {
|
|
178
199
|
company: string;
|
|
179
200
|
project: string | undefined;
|
|
180
201
|
}): Promise<boolean>;
|
|
181
|
-
|
|
202
|
+
/**
|
|
203
|
+
* counts non-versioned storage documents bound to a specific assetId
|
|
204
|
+
*/
|
|
205
|
+
countByAssetId(assetId: string, app: string, customer: ObjectId | undefined, list: ObjectId | undefined, options: {
|
|
206
|
+
company: string;
|
|
207
|
+
project: string | undefined;
|
|
208
|
+
}): Promise<number>;
|
|
209
|
+
matchSortTags(documents: Storage[], search: RegExp | string, sort: string): string[];
|
|
182
210
|
checkAllowedSize(filesize: number, allowedSize: number): boolean;
|
|
183
|
-
stats(company: string, project: string): Promise<MediaStats>;
|
|
184
|
-
getByInternalId(internalId: ObjectId, options: Required<Options>): Promise<
|
|
185
|
-
getPathByFilename(filename: string, app: string, options:
|
|
186
|
-
getByFilename(filename: string, prefix: string | undefined,
|
|
187
|
-
|
|
211
|
+
stats(company: string, project: string, customer?: ObjectId): Promise<MediaStats>;
|
|
212
|
+
getByInternalId(internalId: ObjectId, options: Required<Options>): Promise<BasicData<Storage> | null>;
|
|
213
|
+
getPathByFilename(filename: string, app: string, customer: ObjectId | undefined, list: ObjectId | undefined, options: Options): Promise<import("mongodb").WithId<Storage> | null>;
|
|
214
|
+
getByFilename(filename: string, prefix: string | undefined, app: string, customer: ObjectId | undefined, list: ObjectId | undefined, options: Required<Options>): Promise<BasicData<Storage> | null>;
|
|
215
|
+
removeBlobMembers(internalId: ObjectId, customer: ObjectId, options: Required<UserAppOptionsRequired>): Promise<void>;
|
|
216
|
+
removeBlob(internalId: ObjectId, options: Required<UserAppOptionsRequired>): Promise<void>;
|
|
188
217
|
removeBlobVersion(parentId: ObjectId, options: Required<UserAppOptionsRequired>): Promise<void>;
|
|
189
218
|
}
|
|
190
219
|
declare const _default: StorageService;
|