@lilaquadrat/studio 10.2.1 → 10.4.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/lib/helpers.d.ts +2 -1
- package/lib/helpers.js +2 -1
- package/lib/helpers.js.map +1 -1
- package/lib/models.d.ts +2 -1
- package/lib/models.js +2 -1
- package/lib/models.js.map +1 -1
- package/lib/services.d.ts +2 -1
- package/lib/services.js +2 -1
- package/lib/services.js.map +1 -1
- package/lib/src/helpers/authPlugin.js +38 -0
- package/lib/src/helpers/authPlugin.js.map +1 -1
- package/lib/src/helpers/verifyToken.d.ts +27 -0
- package/lib/src/helpers/verifyToken.js +68 -0
- package/lib/src/helpers/verifyToken.js.map +1 -0
- package/lib/src/models/conversation.model.d.ts +4 -0
- package/lib/src/models/conversation.model.js +64 -0
- package/lib/src/models/conversation.model.js.map +1 -0
- package/lib/src/models/permissions.model.js +10 -0
- package/lib/src/models/permissions.model.js.map +1 -1
- package/lib/src/services/domains.service.d.ts +5 -0
- package/lib/src/services/domains.service.js +42 -0
- package/lib/src/services/domains.service.js.map +1 -1
- package/lib/src/services/support.service.d.ts +7 -0
- package/lib/src/services/support.service.js +37 -0
- package/lib/src/services/support.service.js.map +1 -0
- package/package.json +2 -2
package/lib/helpers.d.ts
CHANGED
|
@@ -15,4 +15,5 @@ import batch from './src/helpers/batch.js';
|
|
|
15
15
|
import CacheHelper from './src/helpers/cacheHelper.js';
|
|
16
16
|
import ControllerHelper from './src/helpers/ControllerHelper.js';
|
|
17
17
|
import storageSdkFactory from './src/helpers/storageSdkFactory.js';
|
|
18
|
-
|
|
18
|
+
import verifyToken from './src/helpers/verifyToken.js';
|
|
19
|
+
export { companyRights, hardCopy, createError, getSecrets, matchSortArray, isValidObjectId, convertCountryISO2, countries, HttpStatusCode, ProjectScope, CompanyScope, UniversalScope, CompanyScopeAdmin, safeObjectId, isDeepEmpty, filenameHelper, batch, CacheHelper, ControllerHelper, storageSdkFactory, verifyToken };
|
package/lib/helpers.js
CHANGED
|
@@ -16,9 +16,10 @@ import batch from './src/helpers/batch.js';
|
|
|
16
16
|
import CacheHelper from './src/helpers/cacheHelper.js';
|
|
17
17
|
import ControllerHelper from './src/helpers/ControllerHelper.js';
|
|
18
18
|
import storageSdkFactory from './src/helpers/storageSdkFactory.js';
|
|
19
|
+
import verifyToken from './src/helpers/verifyToken.js';
|
|
19
20
|
export { companyRights, hardCopy, createError, getSecrets, matchSortArray, isValidObjectId, convertCountryISO2, countries, HttpStatusCode, ProjectScope, CompanyScope, UniversalScope, CompanyScopeAdmin, safeObjectId, isDeepEmpty,
|
|
20
21
|
// createSasToken,
|
|
21
|
-
filenameHelper, batch, CacheHelper, ControllerHelper, storageSdkFactory };
|
|
22
|
+
filenameHelper, batch, CacheHelper, ControllerHelper, storageSdkFactory, verifyToken };
|
|
22
23
|
// Note: Fastify plugins (authPlugin, studioAppPlugin, queryAssertionPlugin) are not exported here
|
|
23
24
|
// to avoid loading fastify-plugin for non-Fastify apps.
|
|
24
25
|
// Import them directly if needed:
|
package/lib/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,aAAa,MAAM,gCAAgC,CAAC;AAC3D,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,kBAAkB,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAClH,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AACnD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,gEAAgE;AAChE,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAC3C,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AACjE,OAAO,iBAAiB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,aAAa,MAAM,gCAAgC,CAAC;AAC3D,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,kBAAkB,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAClH,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AACnD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,gEAAgE;AAChE,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAC3C,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AACjE,OAAO,iBAAiB,MAAM,oCAAoC,CAAC;AACnE,OAAO,WAAW,MAAM,8BAA8B,CAAC;AAEvD,OAAO,EACH,aAAa,EACb,QAAQ,EACR,WAAW,EACX,UAAU,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,WAAW;AACX,kBAAkB;AAClB,cAAc,EACd,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACd,CAAA;AAED,kGAAkG;AAClG,wDAAwD;AACxD,kCAAkC;AAClC,yEAAyE;AACzE,mFAAmF;AACnF,6FAA6F"}
|
package/lib/models.d.ts
CHANGED
|
@@ -34,4 +34,5 @@ import uploadModel from './src/models/upload.model.js';
|
|
|
34
34
|
import invoiceModel from './src/models/invoice.model.js';
|
|
35
35
|
import emailLimitModel from './src/models/emailLimit.model.js';
|
|
36
36
|
import designModel from './src/models/design.model.js';
|
|
37
|
-
|
|
37
|
+
import conversationModel from './src/models/conversation.model.js';
|
|
38
|
+
export { companyModel as CompanyModel, meModel as MeModel, editorModel as EditorModel, historyModel as HistoryModel, permissionsModel as PermissionsModel, projectModel as ProjectModel, settingsModel as SettingsModel, mediaModel as MediaModel, idModel as IdModel, publishModel as PublishModel, publishMethodModel as PublishMethodModel, secretsModel as SecretsModel, domainModel as DomainModel, hostingModel as HostingModel, hostingCommandModel as HostingCommandModel, hostingSettingsModel as HostingSettingsModel, trackerModel as TrackerModel, universalModel as UniversalModel, customersModel as CustomersModel, listsModel as ListsModel, listParticipantsModel as ListParticipantsModel, cacheModel as CacheModel, accessModel as AccessModel, mailFromModel as MailFromModel, webhookCallModel as WebhookCallModel, paymentModel as PaymentModel, paymentProviderModel as PaymentProviderModel, appModel as AppModel, importModel as ImportModel, structureModel as StructureModel, cartModel as CartModel, loggingModel as LoggingModel, uploadModel as UploadModel, invoiceModel as InvoiceModel, emailLimitModel as EmailLimitModel, designModel as DesignModel, conversationModel as ConversationModel };
|
package/lib/models.js
CHANGED
|
@@ -34,5 +34,6 @@ import uploadModel from './src/models/upload.model.js';
|
|
|
34
34
|
import invoiceModel from './src/models/invoice.model.js';
|
|
35
35
|
import emailLimitModel from './src/models/emailLimit.model.js';
|
|
36
36
|
import designModel from './src/models/design.model.js';
|
|
37
|
-
|
|
37
|
+
import conversationModel from './src/models/conversation.model.js';
|
|
38
|
+
export { companyModel as CompanyModel, meModel as MeModel, editorModel as EditorModel, historyModel as HistoryModel, permissionsModel as PermissionsModel, projectModel as ProjectModel, settingsModel as SettingsModel, mediaModel as MediaModel, idModel as IdModel, publishModel as PublishModel, publishMethodModel as PublishMethodModel, secretsModel as SecretsModel, domainModel as DomainModel, hostingModel as HostingModel, hostingCommandModel as HostingCommandModel, hostingSettingsModel as HostingSettingsModel, trackerModel as TrackerModel, universalModel as UniversalModel, customersModel as CustomersModel, listsModel as ListsModel, listParticipantsModel as ListParticipantsModel, cacheModel as CacheModel, accessModel as AccessModel, mailFromModel as MailFromModel, webhookCallModel as WebhookCallModel, paymentModel as PaymentModel, paymentProviderModel as PaymentProviderModel, appModel as AppModel, importModel as ImportModel, structureModel as StructureModel, cartModel as CartModel, loggingModel as LoggingModel, uploadModel as UploadModel, invoiceModel as InvoiceModel, emailLimitModel as EmailLimitModel, designModel as DesignModel, conversationModel as ConversationModel };
|
|
38
39
|
//# sourceMappingURL=models.js.map
|
package/lib/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../models.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAC/C,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,gBAAgB,MAAM,mCAAmC,CAAC;AACjE,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,aAAa,MAAM,gCAAgC,CAAC;AAC3D,OAAO,UAAU,MAAM,+BAA+B,CAAC;AACvD,OAAO,OAAO,MAAM,0BAA0B,CAAC;AAC/C,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,kBAAkB,MAAM,sCAAsC,CAAC;AACtE,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,WAAW,MAAM,8BAA8B,CAAA;AACtD,OAAO,YAAY,MAAM,+BAA+B,CAAA;AACxD,OAAO,mBAAmB,MAAM,sCAAsC,CAAC;AACvE,OAAO,oBAAoB,MAAM,uCAAuC,CAAC;AACzE,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,qBAAqB,MAAM,yCAAyC,CAAC;AAC5E,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,aAAa,MAAM,gCAAgC,CAAC;AAC3D,OAAO,gBAAgB,MAAM,oCAAoC,CAAC;AAClE,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,oBAAoB,MAAM,wCAAwC,CAAC;AAC1E,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,SAAS,MAAM,4BAA4B,CAAC;AACnD,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,WAAW,MAAM,8BAA8B,CAAC;AACvD,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,eAAe,MAAM,kCAAkC,CAAC;AAC/D,OAAO,WAAW,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../models.ts"],"names":[],"mappings":"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"}
|
package/lib/services.d.ts
CHANGED
|
@@ -33,4 +33,5 @@ import authService from './src/services/auth.service.js';
|
|
|
33
33
|
import invoicesService from './src/services/invoices.service.js';
|
|
34
34
|
import emailLimitService from './src/services/emailLimit.service.js';
|
|
35
35
|
import designsService from './src/services/designs.service.js';
|
|
36
|
-
|
|
36
|
+
import supportService from './src/services/support.service.js';
|
|
37
|
+
export { editorService as EditorService, historyService as HistoryService, idService as IdService, publishService as PublishService, secretService as SecretService, publishMethodService as PublishMethodService, domainsService as DomainsService, confService as ConfService, hostingCommandsService as HostingCommandsService, hostingService as HostingService, hostingAdminService as HostingAdminService, customersService as CustomersService, listsService as ListsService, listParticipantsService as ListParticipantsService, spamAnalasysService as SpamAnalasysService, webhooksCallsService as WebhooksCallsService, paymentsService as PaymentsService, paymentProvidersService as PaymentProvidersService, permissionsService as PermissionsService, importService as ImportService, structuresService as StructuresService, meService, MeService, AccessService, PublishDataService, MailFromService, CartService, AiService, LoggingService, jetstreamService as JetStreamService, storageService as StorageService, uploadService as UploadService, authService as AuthService, invoicesService as InvoicesService, emailLimitService as EmailLimitService, designsService as DesignsService, supportService as SupportService, };
|
package/lib/services.js
CHANGED
|
@@ -33,5 +33,6 @@ import authService from './src/services/auth.service.js';
|
|
|
33
33
|
import invoicesService from './src/services/invoices.service.js';
|
|
34
34
|
import emailLimitService from './src/services/emailLimit.service.js';
|
|
35
35
|
import designsService from './src/services/designs.service.js';
|
|
36
|
-
|
|
36
|
+
import supportService from './src/services/support.service.js';
|
|
37
|
+
export { editorService as EditorService, historyService as HistoryService, idService as IdService, publishService as PublishService, secretService as SecretService, publishMethodService as PublishMethodService, domainsService as DomainsService, confService as ConfService, hostingCommandsService as HostingCommandsService, hostingService as HostingService, hostingAdminService as HostingAdminService, customersService as CustomersService, listsService as ListsService, listParticipantsService as ListParticipantsService, spamAnalasysService as SpamAnalasysService, webhooksCallsService as WebhooksCallsService, paymentsService as PaymentsService, paymentProvidersService as PaymentProvidersService, permissionsService as PermissionsService, importService as ImportService, structuresService as StructuresService, meService, MeService, AccessService, PublishDataService, MailFromService, CartService, AiService, LoggingService, jetstreamService as JetStreamService, storageService as StorageService, uploadService as UploadService, authService as AuthService, invoicesService as InvoicesService, emailLimitService as EmailLimitService, designsService as DesignsService, supportService as SupportService, };
|
|
37
38
|
//# sourceMappingURL=services.js.map
|
package/lib/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../services.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,oBAAoB,MAAM,yCAAyC,CAAC;AAC3E,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAC/E,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,wCAAwC,CAAC;AACzE,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,uBAAuB,MAAM,4CAA4C,CAAC;AACjF,OAAO,mBAAmB,MAAM,wCAAwC,CAAC;AACzE,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAC5E,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,uBAAuB,MAAM,4CAA4C,CAAC;AACjF,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,SAAS,EAAE,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EACL,aAAa,IAAI,aAAa,EAC9B,cAAc,IAAI,cAAc,EAChC,SAAS,IAAI,SAAS,EACtB,cAAc,IAAI,cAAc,EAChC,aAAa,IAAI,aAAa,EAC9B,oBAAoB,IAAI,oBAAoB,EAC5C,cAAc,IAAI,cAAc,EAChC,WAAW,IAAI,WAAW,EAC1B,sBAAsB,IAAI,sBAAsB,EAChD,cAAc,IAAI,cAAc,EAChC,mBAAmB,IAAI,mBAAmB,EAC1C,gBAAgB,IAAI,gBAAgB,EACpC,YAAY,IAAI,YAAY,EAC5B,uBAAuB,IAAI,uBAAuB,EAClD,mBAAmB,IAAI,mBAAmB,EAC1C,oBAAoB,IAAI,oBAAoB,EAC5C,eAAe,IAAI,eAAe,EAClC,uBAAuB,IAAI,uBAAuB,EAClD,kBAAkB,IAAI,kBAAkB,EACxC,aAAa,IAAI,aAAa,EAC9B,iBAAiB,IAAI,iBAAiB,EACtC,SAAS,EACT,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EACd,gBAAgB,IAAI,gBAAgB,EACpC,cAAc,IAAI,cAAc,EAChC,aAAa,IAAI,aAAa,EAC9B,WAAW,IAAI,WAAW,EAC1B,eAAe,IAAI,eAAe,EAClC,iBAAiB,IAAI,iBAAiB,EACtC,cAAc,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../services.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,oBAAoB,MAAM,yCAAyC,CAAC;AAC3E,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,sBAAsB,MAAM,2CAA2C,CAAC;AAC/E,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,mBAAmB,MAAM,wCAAwC,CAAC;AACzE,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAC3D,OAAO,uBAAuB,MAAM,4CAA4C,CAAC;AACjF,OAAO,mBAAmB,MAAM,wCAAwC,CAAC;AACzE,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAC5E,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,uBAAuB,MAAM,4CAA4C,CAAC;AACjF,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AACvE,OAAO,SAAS,EAAE,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AAClE,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,gBAAgB,MAAM,qCAAqC,CAAC;AACnE,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAC7D,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,iBAAiB,MAAM,sCAAsC,CAAC;AACrE,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EACL,aAAa,IAAI,aAAa,EAC9B,cAAc,IAAI,cAAc,EAChC,SAAS,IAAI,SAAS,EACtB,cAAc,IAAI,cAAc,EAChC,aAAa,IAAI,aAAa,EAC9B,oBAAoB,IAAI,oBAAoB,EAC5C,cAAc,IAAI,cAAc,EAChC,WAAW,IAAI,WAAW,EAC1B,sBAAsB,IAAI,sBAAsB,EAChD,cAAc,IAAI,cAAc,EAChC,mBAAmB,IAAI,mBAAmB,EAC1C,gBAAgB,IAAI,gBAAgB,EACpC,YAAY,IAAI,YAAY,EAC5B,uBAAuB,IAAI,uBAAuB,EAClD,mBAAmB,IAAI,mBAAmB,EAC1C,oBAAoB,IAAI,oBAAoB,EAC5C,eAAe,IAAI,eAAe,EAClC,uBAAuB,IAAI,uBAAuB,EAClD,kBAAkB,IAAI,kBAAkB,EACxC,aAAa,IAAI,aAAa,EAC9B,iBAAiB,IAAI,iBAAiB,EACtC,SAAS,EACT,SAAS,EACT,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EACd,gBAAgB,IAAI,gBAAgB,EACpC,cAAc,IAAI,cAAc,EAChC,aAAa,IAAI,aAAa,EAC9B,WAAW,IAAI,WAAW,EAC1B,eAAe,IAAI,eAAe,EAClC,iBAAiB,IAAI,iBAAiB,EACtC,cAAc,IAAI,cAAc,EAChC,cAAc,IAAI,cAAc,GACjC,CAAC"}
|
|
@@ -95,6 +95,24 @@ const authPlugin = async (fastify) => {
|
|
|
95
95
|
return respondCode(upstream ? "SERVICE_UNAVAILABLE" : "UNAUTHORIZED", reply);
|
|
96
96
|
}
|
|
97
97
|
});
|
|
98
|
+
fastify.decorate('authenticateM2M', async (request, reply) => {
|
|
99
|
+
try {
|
|
100
|
+
await request.jwtVerify();
|
|
101
|
+
if (request.user.gty !== 'client-credentials') {
|
|
102
|
+
return respondCode("FORBIDDEN", reply);
|
|
103
|
+
}
|
|
104
|
+
request.auth = request.user;
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
const upstream = isTransientAuthError(err);
|
|
108
|
+
request.requestLog?.warn?.('auth.failed', {
|
|
109
|
+
upstream,
|
|
110
|
+
code: err?.code ?? err?.errno,
|
|
111
|
+
msg: err?.message,
|
|
112
|
+
});
|
|
113
|
+
return respondCode(upstream ? "SERVICE_UNAVAILABLE" : "UNAUTHORIZED", reply);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
98
116
|
}
|
|
99
117
|
else {
|
|
100
118
|
// Dev: Mock authentication
|
|
@@ -116,6 +134,26 @@ const authPlugin = async (fastify) => {
|
|
|
116
134
|
email_verified: true
|
|
117
135
|
};
|
|
118
136
|
});
|
|
137
|
+
fastify.decorate('authenticateM2M', async (request, reply) => {
|
|
138
|
+
request.auth = {
|
|
139
|
+
sub: 'dev-m2m@clients',
|
|
140
|
+
given_name: 'M2M',
|
|
141
|
+
family_name: 'Client',
|
|
142
|
+
nickname: 'm2mclient',
|
|
143
|
+
name: 'M2M Client',
|
|
144
|
+
picture: '',
|
|
145
|
+
updated_at: new Date().toISOString(),
|
|
146
|
+
iss: 'dev',
|
|
147
|
+
aud: 'dev',
|
|
148
|
+
iat: Math.floor(Date.now() / 1000),
|
|
149
|
+
exp: Math.floor(Date.now() / 1000) + 3600,
|
|
150
|
+
at_hash: '',
|
|
151
|
+
nonce: '',
|
|
152
|
+
email_verified: false,
|
|
153
|
+
gty: 'client-credentials',
|
|
154
|
+
permissions: ['*'],
|
|
155
|
+
};
|
|
156
|
+
});
|
|
119
157
|
}
|
|
120
158
|
};
|
|
121
159
|
export default fp(authPlugin, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authPlugin.js","sourceRoot":"","sources":["../../../src/helpers/authPlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authPlugin.js","sourceRoot":"","sources":["../../../src/helpers/authPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standalone Auth0/OIDC JWT verification — usable outside Fastify (e.g. the chat
|
|
3
|
+
* websocket server, which @fastify/jwt's request-bound jwtVerify can't reach).
|
|
4
|
+
* Verifies an RS256 token's signature against the IdP JWKS and validates the
|
|
5
|
+
* standard time/issuer/audience claims. Returns the decoded claims on success;
|
|
6
|
+
* throws on any failure (bad signature, expired, wrong issuer, unknown kid).
|
|
7
|
+
*
|
|
8
|
+
* Mirrors authPlugin's RS256 + jwks-rsa approach so HTTP and WS trust the same keys.
|
|
9
|
+
*/
|
|
10
|
+
type JwtClaims = {
|
|
11
|
+
sub: string;
|
|
12
|
+
iss?: string;
|
|
13
|
+
aud?: string | string[];
|
|
14
|
+
exp?: number;
|
|
15
|
+
nbf?: number;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
export interface VerifyTokenOptions {
|
|
19
|
+
/** JWKS endpoint. Defaults to process.env.JWT_URL. */
|
|
20
|
+
jwksUri?: string;
|
|
21
|
+
/** expected issuer. Defaults to process.env.JWT_ISSUER. Skipped if unset. */
|
|
22
|
+
issuer?: string;
|
|
23
|
+
/** expected audience. Skipped if unset. */
|
|
24
|
+
audience?: string;
|
|
25
|
+
}
|
|
26
|
+
export default function verifyToken(token: string, options?: VerifyTokenOptions): Promise<JwtClaims>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { promisify } from 'node:util';
|
|
2
|
+
import { createVerify } from 'node:crypto';
|
|
3
|
+
import jwksRsa from 'jwks-rsa';
|
|
4
|
+
// Per-JWKS-uri client cache (signing keys cached; rotation publishes a new kid → cache miss).
|
|
5
|
+
const jwksClients = new Map();
|
|
6
|
+
function getJwksClient(jwksUri) {
|
|
7
|
+
let client = jwksClients.get(jwksUri);
|
|
8
|
+
if (!client) {
|
|
9
|
+
client = jwksRsa({
|
|
10
|
+
cache: true,
|
|
11
|
+
cacheMaxEntries: 20,
|
|
12
|
+
cacheMaxAge: Number(process.env.JWKS_CACHE_MAX_AGE_MS ?? 6 * 60 * 60 * 1000),
|
|
13
|
+
rateLimit: true,
|
|
14
|
+
jwksRequestsPerMinute: 10,
|
|
15
|
+
timeout: Number(process.env.JWKS_TIMEOUT_MS ?? 5000),
|
|
16
|
+
jwksUri,
|
|
17
|
+
});
|
|
18
|
+
jwksClients.set(jwksUri, client);
|
|
19
|
+
}
|
|
20
|
+
return client;
|
|
21
|
+
}
|
|
22
|
+
function base64UrlDecode(segment) {
|
|
23
|
+
return Buffer.from(segment.replace(/-/g, '+').replace(/_/g, '/'), 'base64');
|
|
24
|
+
}
|
|
25
|
+
function decodeSegment(segment) {
|
|
26
|
+
return JSON.parse(base64UrlDecode(segment).toString('utf8'));
|
|
27
|
+
}
|
|
28
|
+
export default async function verifyToken(token, options = {}) {
|
|
29
|
+
const jwksUri = options.jwksUri ?? process.env.JWT_URL;
|
|
30
|
+
const issuer = options.issuer ?? process.env.JWT_ISSUER;
|
|
31
|
+
if (!jwksUri)
|
|
32
|
+
throw new Error('JWKS uri not configured (set JWT_URL or pass jwksUri)');
|
|
33
|
+
const parts = token.split('.');
|
|
34
|
+
if (parts.length !== 3)
|
|
35
|
+
throw new Error('malformed token');
|
|
36
|
+
const [headerB64, payloadB64, signatureB64] = parts;
|
|
37
|
+
const header = decodeSegment(headerB64);
|
|
38
|
+
if (header.alg !== 'RS256')
|
|
39
|
+
throw new Error(`unsupported token alg: ${header.alg}`);
|
|
40
|
+
if (!header.kid)
|
|
41
|
+
throw new Error('token header missing kid');
|
|
42
|
+
const client = getJwksClient(jwksUri);
|
|
43
|
+
const getSigningKey = promisify(client.getSigningKey.bind(client));
|
|
44
|
+
const signingKey = await getSigningKey(header.kid);
|
|
45
|
+
const publicKey = signingKey.getPublicKey();
|
|
46
|
+
const verifier = createVerify('RSA-SHA256');
|
|
47
|
+
verifier.update(`${headerB64}.${payloadB64}`);
|
|
48
|
+
verifier.end();
|
|
49
|
+
if (!verifier.verify(publicKey, base64UrlDecode(signatureB64)))
|
|
50
|
+
throw new Error('invalid token signature');
|
|
51
|
+
const claims = decodeSegment(payloadB64);
|
|
52
|
+
const now = Math.floor(Date.now() / 1000);
|
|
53
|
+
if (typeof claims.exp === 'number' && now >= claims.exp)
|
|
54
|
+
throw new Error('token expired');
|
|
55
|
+
if (typeof claims.nbf === 'number' && now < claims.nbf)
|
|
56
|
+
throw new Error('token not yet valid');
|
|
57
|
+
if (issuer && claims.iss !== issuer)
|
|
58
|
+
throw new Error('token issuer mismatch');
|
|
59
|
+
if (options.audience) {
|
|
60
|
+
const matches = Array.isArray(claims.aud) ? claims.aud.includes(options.audience) : claims.aud === options.audience;
|
|
61
|
+
if (!matches)
|
|
62
|
+
throw new Error('token audience mismatch');
|
|
63
|
+
}
|
|
64
|
+
if (!claims.sub)
|
|
65
|
+
throw new Error('token missing sub');
|
|
66
|
+
return claims;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=verifyToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifyToken.js","sourceRoot":"","sources":["../../../src/helpers/verifyToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,OAAO,MAAM,UAAU,CAAC;AA8B/B,8FAA8F;AAC9F,MAAM,WAAW,GAAG,IAAI,GAAG,EAA8B,CAAC;AAE1D,SAAS,aAAa,CAAC,OAAe;IAEpC,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QAEZ,MAAM,GAAG,OAAO,CAAC;YACf,KAAK,EAAE,IAAI;YACX,eAAe,EAAE,EAAE;YACnB,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;YAC5E,SAAS,EAAE,IAAI;YACf,qBAAqB,EAAE,EAAE;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC;YACpD,OAAO;SACR,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEnC,CAAC;IAED,OAAO,MAAM,CAAC;AAEhB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IAEtC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AAE9E,CAAC;AAED,SAAS,aAAa,CAAI,OAAe;IAEvC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAM,CAAC;AAEpE,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,UAA8B,EAAE;IAEvF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAExD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAEvF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE3D,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC;IACpD,MAAM,MAAM,GAAG,aAAa,CAAgC,SAAS,CAAC,CAAC;IAEvE,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;IAE5C,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,UAAU,EAAE,CAAC,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,CAAC;IAEf,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE3G,MAAM,MAAM,GAAG,aAAa,CAAY,UAAU,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAE1C,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IAC1F,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/F,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAE9E,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAErB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC;QACpH,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE3D,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAEtD,OAAO,MAAM,CAAC;AAEhB,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import Modelv2 from '../classes/modelv2.class.js';
|
|
2
|
+
const model = new Modelv2('conversation', 'conversations');
|
|
3
|
+
model.setSchema({
|
|
4
|
+
type: 'object',
|
|
5
|
+
properties: {
|
|
6
|
+
name: { type: 'string', maxLength: 100 },
|
|
7
|
+
participantsHash: { type: 'string' },
|
|
8
|
+
participants: { type: 'array', items: { type: 'string' } },
|
|
9
|
+
blocked: { type: 'array', items: { type: 'string' } },
|
|
10
|
+
createdAt: { type: 'string', format: 'date-time' },
|
|
11
|
+
lastActivity: { type: 'string', format: 'date-time' },
|
|
12
|
+
messagesCount: { type: 'number', minimum: 0 },
|
|
13
|
+
messagesCountSystem: { type: 'number', minimum: 0 },
|
|
14
|
+
operationMode: { type: 'string', enum: ['default', 'support'] }
|
|
15
|
+
},
|
|
16
|
+
required: ['participantsHash', 'participants', 'messagesCount'],
|
|
17
|
+
additionalProperties: false,
|
|
18
|
+
}, 'create');
|
|
19
|
+
model.setSchema({
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
participants: { type: 'array', items: { type: 'string' } },
|
|
23
|
+
},
|
|
24
|
+
required: ['participants'],
|
|
25
|
+
additionalProperties: false,
|
|
26
|
+
}, 'change');
|
|
27
|
+
model.setSchema({
|
|
28
|
+
type: 'object',
|
|
29
|
+
properties: {
|
|
30
|
+
name: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
maxLength: 100,
|
|
33
|
+
pattern: '^[a-zA-Z0-9#!\\-_?.: ]*$'
|
|
34
|
+
},
|
|
35
|
+
participantsHash: { type: 'string' },
|
|
36
|
+
},
|
|
37
|
+
required: ['name'],
|
|
38
|
+
additionalProperties: false,
|
|
39
|
+
}, 'updateName');
|
|
40
|
+
model.addIndex({
|
|
41
|
+
key: {
|
|
42
|
+
name: 1,
|
|
43
|
+
participantsHash: 1,
|
|
44
|
+
},
|
|
45
|
+
unique: true,
|
|
46
|
+
name: 'name_participants_hash',
|
|
47
|
+
sparse: true
|
|
48
|
+
}, 1);
|
|
49
|
+
model.addIndex({
|
|
50
|
+
key: {
|
|
51
|
+
participantsHash: 1,
|
|
52
|
+
},
|
|
53
|
+
unique: true,
|
|
54
|
+
name: 'participants_hash_unnamed',
|
|
55
|
+
partialFilterExpression: { name: null }
|
|
56
|
+
}, 2);
|
|
57
|
+
model.addIndex({
|
|
58
|
+
key: {
|
|
59
|
+
participants: 1,
|
|
60
|
+
},
|
|
61
|
+
name: 'participants',
|
|
62
|
+
}, 3);
|
|
63
|
+
export default model;
|
|
64
|
+
//# sourceMappingURL=conversation.model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.model.js","sourceRoot":"","sources":["../../../src/models/conversation.model.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD,MAAM,KAAK,GAAG,IAAI,OAAO,CAAmD,cAAc,EAAE,eAAe,CAAC,CAAC;AAE7G,KAAK,CAAC,SAAS,CAAC;IACd,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE;QACxC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC1D,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACrD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;QAClD,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;QACrD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;QAC7C,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE;QACnD,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE;KAChE;IACD,QAAQ,EAAE,CAAC,kBAAkB,EAAE,cAAc,EAAE,eAAe,CAAC;IAC/D,oBAAoB,EAAE,KAAK;CAC5B,EAAE,QAAQ,CAAC,CAAC;AAEb,KAAK,CAAC,SAAS,CAAC;IACd,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC3D;IACD,QAAQ,EAAE,CAAC,cAAc,CAAC;IAC1B,oBAAoB,EAAE,KAAK;CAC5B,EAAE,QAAQ,CAAC,CAAC;AAEb,KAAK,CAAC,SAAS,CAAC;IACd,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,0BAA0B;SACpC;QACD,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACrC;IACD,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,oBAAoB,EAAE,KAAK;CAC5B,EAAE,YAAY,CAAC,CAAC;AAEjB,KAAK,CAAC,QAAQ,CACZ;IACE,GAAG,EAAE;QACH,IAAI,EAAE,CAAC;QACP,gBAAgB,EAAE,CAAC;KACpB;IACD,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,IAAI;CACb,EACD,CAAC,CACF,CAAC;AAEF,KAAK,CAAC,QAAQ,CACZ;IACE,GAAG,EAAE;QACH,gBAAgB,EAAE,CAAC;KACpB;IACD,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,2BAA2B;IACjC,uBAAuB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CACxC,EACD,CAAC,CACF,CAAC;AAEF,KAAK,CAAC,QAAQ,CACZ;IACE,GAAG,EAAE;QACH,YAAY,EAAE,CAAC;KAChB;IACD,IAAI,EAAE,cAAc;CACrB,EACD,CAAC,CACF,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.model.js","sourceRoot":"","sources":["../../../src/models/permissions.model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"permissions.model.js","sourceRoot":"","sources":["../../../src/models/permissions.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,11 @@ declare class DomainsService extends Immutable<Domain> {
|
|
|
14
14
|
validateDnsAAAARecord(domain: string, ip: string): Promise<boolean>;
|
|
15
15
|
getDefaultDomain(company: string, project: string, hostingDomain: string): string;
|
|
16
16
|
getAllDomains(): Promise<WithId<Domain>[]>;
|
|
17
|
+
getAllActiveDomains(): Promise<{
|
|
18
|
+
company: string;
|
|
19
|
+
project: string;
|
|
20
|
+
domain: string;
|
|
21
|
+
}[]>;
|
|
17
22
|
/**
|
|
18
23
|
* returns a string of domains and if a domain is set as "main" it will be not in the last
|
|
19
24
|
* @param company
|
|
@@ -73,6 +73,48 @@ class DomainsService extends Immutable {
|
|
|
73
73
|
getAllDomains() {
|
|
74
74
|
return this.model.db.find().toArray();
|
|
75
75
|
}
|
|
76
|
+
getAllActiveDomains() {
|
|
77
|
+
return this.model.db.aggregate([
|
|
78
|
+
{
|
|
79
|
+
$match: {
|
|
80
|
+
active: true,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
$lookup: {
|
|
85
|
+
from: 'hosting',
|
|
86
|
+
let: { companyId: '$company', projectId: '$project' },
|
|
87
|
+
pipeline: [
|
|
88
|
+
{
|
|
89
|
+
$match: {
|
|
90
|
+
$expr: {
|
|
91
|
+
$and: [
|
|
92
|
+
{ $eq: ['$company', '$$companyId'] },
|
|
93
|
+
{ $eq: ['$project', '$$projectId'] },
|
|
94
|
+
{ $eq: ['$active', true] },
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
as: 'hosting',
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
$match: {
|
|
105
|
+
'hosting.0': { $exists: true },
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
$project: {
|
|
110
|
+
_id: 0,
|
|
111
|
+
company: 1,
|
|
112
|
+
project: 1,
|
|
113
|
+
domain: 1,
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
]).toArray();
|
|
117
|
+
}
|
|
76
118
|
/**
|
|
77
119
|
* returns a string of domains and if a domain is set as "main" it will be not in the last
|
|
78
120
|
* @param company
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.service.js","sourceRoot":"","sources":["../../../src/services/domains.service.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAKhD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;AAEzB,MAAM,cAAe,SAAQ,SAAiB;IAA9C;;QAEE,UAAK,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"domains.service.js","sourceRoot":"","sources":["../../../src/services/domains.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class SupportService {
|
|
2
|
+
getSupportMembers(company: string): Promise<(string | undefined)[]>;
|
|
3
|
+
getSupportConversations(): Promise<import("mongodb").WithId<import("@lilaquadrat/interfaces").Conversation>[]>;
|
|
4
|
+
getNextSupportMember(company: string): Promise<string | null | undefined>;
|
|
5
|
+
}
|
|
6
|
+
declare const _default: SupportService;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import PermissionsModel from '../models/permissions.model.js';
|
|
2
|
+
import ConversationModel from '../models/conversation.model.js';
|
|
3
|
+
export class SupportService {
|
|
4
|
+
async getSupportMembers(company) {
|
|
5
|
+
const permissions = await PermissionsModel.db.find({
|
|
6
|
+
company,
|
|
7
|
+
scope: { $in: ['support:member'] },
|
|
8
|
+
}).toArray();
|
|
9
|
+
return permissions.map((permission) => permission.user);
|
|
10
|
+
}
|
|
11
|
+
async getSupportConversations() {
|
|
12
|
+
return ConversationModel.db.find({
|
|
13
|
+
operationMode: 'support',
|
|
14
|
+
}).sort({ lastActivity: -1 }).toArray();
|
|
15
|
+
}
|
|
16
|
+
async getNextSupportMember(company) {
|
|
17
|
+
const members = await this.getSupportMembers(company);
|
|
18
|
+
if (!members.length) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const lastConversation = await ConversationModel.db.findOne({
|
|
22
|
+
operationMode: 'support',
|
|
23
|
+
}, { sort: { lastActivity: -1 } });
|
|
24
|
+
if (!lastConversation?.participants) {
|
|
25
|
+
return members[0];
|
|
26
|
+
}
|
|
27
|
+
const lastAssignedMember = lastConversation.participants.find((participant) => members.includes(participant));
|
|
28
|
+
if (!lastAssignedMember) {
|
|
29
|
+
return members[0];
|
|
30
|
+
}
|
|
31
|
+
const lastIndex = members.indexOf(lastAssignedMember);
|
|
32
|
+
const nextIndex = (lastIndex + 1) % members.length;
|
|
33
|
+
return members[nextIndex];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export default new SupportService();
|
|
37
|
+
//# sourceMappingURL=support.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support.service.js","sourceRoot":"","sources":["../../../src/services/support.service.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAEhE,MAAM,OAAO,cAAc;IAEzB,KAAK,CAAC,iBAAiB,CAAC,OAAe;QAErC,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC;YACjD,OAAO;YACP,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,EAAE;SACnC,CAAC,CAAC,OAAO,EAAE,CAAC;QAEb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1D,CAAC;IAED,KAAK,CAAC,uBAAuB;QAE3B,OAAO,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC;YAC/B,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAE1C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAe;QAExC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAEpB,OAAO,IAAI,CAAC;QAEd,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,OAAO,CAAC;YAC1D,aAAa,EAAE,SAAS;SACzB,EAAE,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,CAAC;YAEpC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QAEpB,CAAC;QAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAC3D,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC/C,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAExB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;QAEpB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAEnD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAE5B,CAAC;CAEF;AAED,eAAe,IAAI,cAAc,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lilaquadrat/studio",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.4.0",
|
|
4
4
|
"description": "classes and tools for STUDIO",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
},
|
|
124
124
|
"dependencies": {
|
|
125
125
|
"@google/genai": "^1.42.0",
|
|
126
|
-
"@lilaquadrat/interfaces": "^1.
|
|
126
|
+
"@lilaquadrat/interfaces": "^1.45.0",
|
|
127
127
|
"@lilaquadrat/storage-sdk": "^0.1.13",
|
|
128
128
|
"@nats-io/jetstream": "^3.2.0",
|
|
129
129
|
"@nats-io/transport-node": "^3.2.0",
|