@rapidmx/restapi 0.1.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/LICENSE +382 -0
- package/README.md +50 -0
- package/dist/lib/blob/BlobStore.js +6 -0
- package/dist/lib/blob/BlobStore.js.map +1 -0
- package/dist/lib/blob/LocalFsBlobStore.js +101 -0
- package/dist/lib/blob/LocalFsBlobStore.js.map +1 -0
- package/dist/lib/blob/index.js +7 -0
- package/dist/lib/blob/index.js.map +1 -0
- package/dist/lib/index.js +12 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/jobs/AttachmentExtractionJob.js +124 -0
- package/dist/lib/jobs/AttachmentExtractionJob.js.map +1 -0
- package/dist/lib/jobs/CalendarReminderJob.js +132 -0
- package/dist/lib/jobs/CalendarReminderJob.js.map +1 -0
- package/dist/lib/jobs/EasDeviceStateCleanupJob.js +101 -0
- package/dist/lib/jobs/EasDeviceStateCleanupJob.js.map +1 -0
- package/dist/lib/jobs/ExternalShareExpirationJob.js +117 -0
- package/dist/lib/jobs/ExternalShareExpirationJob.js.map +1 -0
- package/dist/lib/jobs/MailboxQuotaRecalcJob.js +163 -0
- package/dist/lib/jobs/MailboxQuotaRecalcJob.js.map +1 -0
- package/dist/lib/jobs/MeetingSchedulingJob.js +106 -0
- package/dist/lib/jobs/MeetingSchedulingJob.js.map +1 -0
- package/dist/lib/jobs/QuarantineRetentionJob.js +97 -0
- package/dist/lib/jobs/QuarantineRetentionJob.js.map +1 -0
- package/dist/lib/jobs/ScanQueueJob.js +223 -0
- package/dist/lib/jobs/ScanQueueJob.js.map +1 -0
- package/dist/lib/jobs/SearchIndexJob.js +146 -0
- package/dist/lib/jobs/SearchIndexJob.js.map +1 -0
- package/dist/lib/jobs/index.js +10 -0
- package/dist/lib/jobs/index.js.map +1 -0
- package/dist/lib/jobs/mongo/AttachmentExtractionJobMongo.js +14 -0
- package/dist/lib/jobs/mongo/AttachmentExtractionJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/CalendarReminderJobMongo.js +13 -0
- package/dist/lib/jobs/mongo/CalendarReminderJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/EasDeviceStateCleanupJobMongo.js +13 -0
- package/dist/lib/jobs/mongo/EasDeviceStateCleanupJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/ExternalShareExpirationJobMongo.js +13 -0
- package/dist/lib/jobs/mongo/ExternalShareExpirationJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/MailboxQuotaRecalcJobMongo.js +15 -0
- package/dist/lib/jobs/mongo/MailboxQuotaRecalcJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/MeetingSchedulingJobMongo.js +13 -0
- package/dist/lib/jobs/mongo/MeetingSchedulingJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/QuarantineRetentionJobMongo.js +13 -0
- package/dist/lib/jobs/mongo/QuarantineRetentionJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/ScanQueueJobMongo.js +18 -0
- package/dist/lib/jobs/mongo/ScanQueueJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/SearchIndexJobMongo.js +14 -0
- package/dist/lib/jobs/mongo/SearchIndexJobMongo.js.map +1 -0
- package/dist/lib/jobs/mongo/index.js +10 -0
- package/dist/lib/jobs/mongo/index.js.map +1 -0
- package/dist/lib/jobs/mongo.js +2 -0
- package/dist/lib/jobs/mongo.js.map +1 -0
- package/dist/lib/jobs/sql/AttachmentExtractionJobSQL.js +14 -0
- package/dist/lib/jobs/sql/AttachmentExtractionJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/CalendarReminderJobSQL.js +13 -0
- package/dist/lib/jobs/sql/CalendarReminderJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/EasDeviceStateCleanupJobSQL.js +13 -0
- package/dist/lib/jobs/sql/EasDeviceStateCleanupJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/ExternalShareExpirationJobSQL.js +13 -0
- package/dist/lib/jobs/sql/ExternalShareExpirationJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/MailboxQuotaRecalcJobSQL.js +15 -0
- package/dist/lib/jobs/sql/MailboxQuotaRecalcJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/MeetingSchedulingJobSQL.js +13 -0
- package/dist/lib/jobs/sql/MeetingSchedulingJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/QuarantineRetentionJobSQL.js +13 -0
- package/dist/lib/jobs/sql/QuarantineRetentionJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/ScanQueueJobSQL.js +18 -0
- package/dist/lib/jobs/sql/ScanQueueJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/SearchIndexJobSQL.js +14 -0
- package/dist/lib/jobs/sql/SearchIndexJobSQL.js.map +1 -0
- package/dist/lib/jobs/sql/index.js +10 -0
- package/dist/lib/jobs/sql/index.js.map +1 -0
- package/dist/lib/jobs/sql.js +2 -0
- package/dist/lib/jobs/sql.js.map +1 -0
- package/dist/lib/models/index.js +2 -0
- package/dist/lib/models/index.js.map +1 -0
- package/dist/lib/models/mongo/AttachmentMongo.js +129 -0
- package/dist/lib/models/mongo/AttachmentMongo.js.map +1 -0
- package/dist/lib/models/mongo/CalendarEventMongo.js +172 -0
- package/dist/lib/models/mongo/CalendarEventMongo.js.map +1 -0
- package/dist/lib/models/mongo/CalendarShareLinkMongo.js +85 -0
- package/dist/lib/models/mongo/CalendarShareLinkMongo.js.map +1 -0
- package/dist/lib/models/mongo/ContactListMongo.js +60 -0
- package/dist/lib/models/mongo/ContactListMongo.js.map +1 -0
- package/dist/lib/models/mongo/ContactMongo.js +148 -0
- package/dist/lib/models/mongo/ContactMongo.js.map +1 -0
- package/dist/lib/models/mongo/DeviceSyncStateMongo.js +97 -0
- package/dist/lib/models/mongo/DeviceSyncStateMongo.js.map +1 -0
- package/dist/lib/models/mongo/FolderMongo.js +102 -0
- package/dist/lib/models/mongo/FolderMongo.js.map +1 -0
- package/dist/lib/models/mongo/IngestQueueEntryMongo.js +93 -0
- package/dist/lib/models/mongo/IngestQueueEntryMongo.js.map +1 -0
- package/dist/lib/models/mongo/MailboxMongo.js +105 -0
- package/dist/lib/models/mongo/MailboxMongo.js.map +1 -0
- package/dist/lib/models/mongo/MessageMongo.js +180 -0
- package/dist/lib/models/mongo/MessageMongo.js.map +1 -0
- package/dist/lib/models/mongo/NoteMongo.js +83 -0
- package/dist/lib/models/mongo/NoteMongo.js.map +1 -0
- package/dist/lib/models/mongo/QuarantineEntryMongo.js +99 -0
- package/dist/lib/models/mongo/QuarantineEntryMongo.js.map +1 -0
- package/dist/lib/models/mongo/ScanResultMongo.js +112 -0
- package/dist/lib/models/mongo/ScanResultMongo.js.map +1 -0
- package/dist/lib/models/mongo/SearchIndexStateMongo.js +83 -0
- package/dist/lib/models/mongo/SearchIndexStateMongo.js.map +1 -0
- package/dist/lib/models/mongo/TaskMongo.js +105 -0
- package/dist/lib/models/mongo/TaskMongo.js.map +1 -0
- package/dist/lib/models/mongo/index.js +16 -0
- package/dist/lib/models/mongo/index.js.map +1 -0
- package/dist/lib/models/mongo.js +2 -0
- package/dist/lib/models/mongo.js.map +1 -0
- package/dist/lib/models/sql/AttachmentSQL.js +129 -0
- package/dist/lib/models/sql/AttachmentSQL.js.map +1 -0
- package/dist/lib/models/sql/CalendarEventSQL.js +176 -0
- package/dist/lib/models/sql/CalendarEventSQL.js.map +1 -0
- package/dist/lib/models/sql/CalendarShareLinkSQL.js +85 -0
- package/dist/lib/models/sql/CalendarShareLinkSQL.js.map +1 -0
- package/dist/lib/models/sql/ContactListSQL.js +60 -0
- package/dist/lib/models/sql/ContactListSQL.js.map +1 -0
- package/dist/lib/models/sql/ContactSQL.js +148 -0
- package/dist/lib/models/sql/ContactSQL.js.map +1 -0
- package/dist/lib/models/sql/DeviceSyncStateSQL.js +97 -0
- package/dist/lib/models/sql/DeviceSyncStateSQL.js.map +1 -0
- package/dist/lib/models/sql/FolderSQL.js +106 -0
- package/dist/lib/models/sql/FolderSQL.js.map +1 -0
- package/dist/lib/models/sql/IngestQueueEntrySQL.js +97 -0
- package/dist/lib/models/sql/IngestQueueEntrySQL.js.map +1 -0
- package/dist/lib/models/sql/MailboxSQL.js +105 -0
- package/dist/lib/models/sql/MailboxSQL.js.map +1 -0
- package/dist/lib/models/sql/MessageSQL.js +184 -0
- package/dist/lib/models/sql/MessageSQL.js.map +1 -0
- package/dist/lib/models/sql/NoteSQL.js +83 -0
- package/dist/lib/models/sql/NoteSQL.js.map +1 -0
- package/dist/lib/models/sql/QuarantineEntrySQL.js +103 -0
- package/dist/lib/models/sql/QuarantineEntrySQL.js.map +1 -0
- package/dist/lib/models/sql/ScanResultSQL.js +116 -0
- package/dist/lib/models/sql/ScanResultSQL.js.map +1 -0
- package/dist/lib/models/sql/SearchIndexStateSQL.js +83 -0
- package/dist/lib/models/sql/SearchIndexStateSQL.js.map +1 -0
- package/dist/lib/models/sql/TaskSQL.js +109 -0
- package/dist/lib/models/sql/TaskSQL.js.map +1 -0
- package/dist/lib/models/sql/index.js +16 -0
- package/dist/lib/models/sql/index.js.map +1 -0
- package/dist/lib/models/sql.js +2 -0
- package/dist/lib/models/sql.js.map +1 -0
- package/dist/lib/models/types.js +108 -0
- package/dist/lib/models/types.js.map +1 -0
- package/dist/lib/mongo.js +8 -0
- package/dist/lib/mongo.js.map +1 -0
- package/dist/lib/push/MailPushRoute.js +42 -0
- package/dist/lib/push/MailPushRoute.js.map +1 -0
- package/dist/lib/push/index.js +6 -0
- package/dist/lib/push/index.js.map +1 -0
- package/dist/lib/routes/BaseAttachmentRoute.js +142 -0
- package/dist/lib/routes/BaseAttachmentRoute.js.map +1 -0
- package/dist/lib/routes/BaseCalendarShareLinkRoute.js +123 -0
- package/dist/lib/routes/BaseCalendarShareLinkRoute.js.map +1 -0
- package/dist/lib/routes/BaseFolderRoute.js +192 -0
- package/dist/lib/routes/BaseFolderRoute.js.map +1 -0
- package/dist/lib/routes/BaseMailIngestRoute.js +179 -0
- package/dist/lib/routes/BaseMailIngestRoute.js.map +1 -0
- package/dist/lib/routes/BaseMailboxRoute.js +187 -0
- package/dist/lib/routes/BaseMailboxRoute.js.map +1 -0
- package/dist/lib/routes/BaseMessageRoute.js +142 -0
- package/dist/lib/routes/BaseMessageRoute.js.map +1 -0
- package/dist/lib/routes/BaseScopedChildRoute.js +348 -0
- package/dist/lib/routes/BaseScopedChildRoute.js.map +1 -0
- package/dist/lib/routes/BaseSearchRoute.js +91 -0
- package/dist/lib/routes/BaseSearchRoute.js.map +1 -0
- package/dist/lib/routes/index.js +13 -0
- package/dist/lib/routes/index.js.map +1 -0
- package/dist/lib/routes/mongo/AttachmentRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/AttachmentRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/CalendarEventRouteMongo.js +27 -0
- package/dist/lib/routes/mongo/CalendarEventRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/CalendarShareLinkRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/CalendarShareLinkRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/ContactListRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/ContactListRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/ContactRouteMongo.js +27 -0
- package/dist/lib/routes/mongo/ContactRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/FolderRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/FolderRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/IngestQueueRouteMongo.js +33 -0
- package/dist/lib/routes/mongo/IngestQueueRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/MailIngestRouteMongo.js +14 -0
- package/dist/lib/routes/mongo/MailIngestRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/MailboxRouteMongo.js +39 -0
- package/dist/lib/routes/mongo/MailboxRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/MessageRouteMongo.js +27 -0
- package/dist/lib/routes/mongo/MessageRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/NoteRouteMongo.js +26 -0
- package/dist/lib/routes/mongo/NoteRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/QuarantineRouteMongo.js +35 -0
- package/dist/lib/routes/mongo/QuarantineRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/SearchRouteMongo.js +13 -0
- package/dist/lib/routes/mongo/SearchRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/TaskRouteMongo.js +27 -0
- package/dist/lib/routes/mongo/TaskRouteMongo.js.map +1 -0
- package/dist/lib/routes/mongo/index.js +15 -0
- package/dist/lib/routes/mongo/index.js.map +1 -0
- package/dist/lib/routes/mongo.js +2 -0
- package/dist/lib/routes/mongo.js.map +1 -0
- package/dist/lib/routes/sql/AttachmentRouteSQL.js +26 -0
- package/dist/lib/routes/sql/AttachmentRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/CalendarEventRouteSQL.js +27 -0
- package/dist/lib/routes/sql/CalendarEventRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/CalendarShareLinkRouteSQL.js +26 -0
- package/dist/lib/routes/sql/CalendarShareLinkRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/ContactListRouteSQL.js +26 -0
- package/dist/lib/routes/sql/ContactListRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/ContactRouteSQL.js +27 -0
- package/dist/lib/routes/sql/ContactRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/FolderRouteSQL.js +26 -0
- package/dist/lib/routes/sql/FolderRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/IngestQueueRouteSQL.js +29 -0
- package/dist/lib/routes/sql/IngestQueueRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/MailIngestRouteSQL.js +35 -0
- package/dist/lib/routes/sql/MailIngestRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/MailboxRouteSQL.js +64 -0
- package/dist/lib/routes/sql/MailboxRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/MessageRouteSQL.js +27 -0
- package/dist/lib/routes/sql/MessageRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/NoteRouteSQL.js +26 -0
- package/dist/lib/routes/sql/NoteRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/QuarantineRouteSQL.js +29 -0
- package/dist/lib/routes/sql/QuarantineRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/SearchRouteSQL.js +13 -0
- package/dist/lib/routes/sql/SearchRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/TaskRouteSQL.js +27 -0
- package/dist/lib/routes/sql/TaskRouteSQL.js.map +1 -0
- package/dist/lib/routes/sql/index.js +15 -0
- package/dist/lib/routes/sql/index.js.map +1 -0
- package/dist/lib/routes/sql.js +2 -0
- package/dist/lib/routes/sql.js.map +1 -0
- package/dist/lib/scan/AvScanProvider.js +2 -0
- package/dist/lib/scan/AvScanProvider.js.map +1 -0
- package/dist/lib/scan/ClamAvScanProvider.js +112 -0
- package/dist/lib/scan/ClamAvScanProvider.js.map +1 -0
- package/dist/lib/scan/RspamdSpamScanProvider.js +100 -0
- package/dist/lib/scan/RspamdSpamScanProvider.js.map +1 -0
- package/dist/lib/scan/ScanPipeline.js +118 -0
- package/dist/lib/scan/ScanPipeline.js.map +1 -0
- package/dist/lib/scan/SpamScanProvider.js +2 -0
- package/dist/lib/scan/SpamScanProvider.js.map +1 -0
- package/dist/lib/scan/index.js +10 -0
- package/dist/lib/scan/index.js.map +1 -0
- package/dist/lib/search/MongoTextSearchProvider.js +116 -0
- package/dist/lib/search/MongoTextSearchProvider.js.map +1 -0
- package/dist/lib/search/OpenSearchProvider.js +156 -0
- package/dist/lib/search/OpenSearchProvider.js.map +1 -0
- package/dist/lib/search/PostgresFullTextSearchProvider.js +139 -0
- package/dist/lib/search/PostgresFullTextSearchProvider.js.map +1 -0
- package/dist/lib/search/SearchProvider.js +6 -0
- package/dist/lib/search/SearchProvider.js.map +1 -0
- package/dist/lib/search/extraction/DocxTextExtractor.js +27 -0
- package/dist/lib/search/extraction/DocxTextExtractor.js.map +1 -0
- package/dist/lib/search/extraction/ExtractorRegistry.js +82 -0
- package/dist/lib/search/extraction/ExtractorRegistry.js.map +1 -0
- package/dist/lib/search/extraction/HtmlTextExtractor.js +20 -0
- package/dist/lib/search/extraction/HtmlTextExtractor.js.map +1 -0
- package/dist/lib/search/extraction/PdfTextExtractor.js +22 -0
- package/dist/lib/search/extraction/PdfTextExtractor.js.map +1 -0
- package/dist/lib/search/extraction/PlainTextExtractor.js +14 -0
- package/dist/lib/search/extraction/PlainTextExtractor.js.map +1 -0
- package/dist/lib/search/extraction/TextExtractor.js +6 -0
- package/dist/lib/search/extraction/TextExtractor.js.map +1 -0
- package/dist/lib/search/index.js +15 -0
- package/dist/lib/search/index.js.map +1 -0
- package/dist/lib/sql.js +8 -0
- package/dist/lib/sql.js.map +1 -0
- package/dist/lib/transport/MTAIngestAdapter.js +30 -0
- package/dist/lib/transport/MTAIngestAdapter.js.map +1 -0
- package/dist/lib/transport/MailTransport.js +6 -0
- package/dist/lib/transport/MailTransport.js.map +1 -0
- package/dist/lib/transport/PostfixSendmailTransport.js +61 -0
- package/dist/lib/transport/PostfixSendmailTransport.js.map +1 -0
- package/dist/lib/transport/index.js +8 -0
- package/dist/lib/transport/index.js.map +1 -0
- package/dist/lib/util/FolderUtils.js +50 -0
- package/dist/lib/util/FolderUtils.js.map +1 -0
- package/dist/lib/util/MailSendUtils.js +36 -0
- package/dist/lib/util/MailSendUtils.js.map +1 -0
- package/dist/lib/util/MailboxScopeUtils.js +23 -0
- package/dist/lib/util/MailboxScopeUtils.js.map +1 -0
- package/dist/lib/util/OptionalDeps.js +23 -0
- package/dist/lib/util/OptionalDeps.js.map +1 -0
- package/dist/lib/util/RecoverableRepoUtils.js +42 -0
- package/dist/lib/util/RecoverableRepoUtils.js.map +1 -0
- package/dist/lib/util/index.js +17 -0
- package/dist/lib/util/index.js.map +1 -0
- package/dist/types/blob/BlobStore.d.ts +54 -0
- package/dist/types/blob/LocalFsBlobStore.d.ts +23 -0
- package/dist/types/blob/index.d.ts +2 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/jobs/AttachmentExtractionJob.d.ts +34 -0
- package/dist/types/jobs/CalendarReminderJob.d.ts +37 -0
- package/dist/types/jobs/EasDeviceStateCleanupJob.d.ts +26 -0
- package/dist/types/jobs/ExternalShareExpirationJob.d.ts +34 -0
- package/dist/types/jobs/MailboxQuotaRecalcJob.d.ts +44 -0
- package/dist/types/jobs/MeetingSchedulingJob.d.ts +32 -0
- package/dist/types/jobs/QuarantineRetentionJob.d.ts +27 -0
- package/dist/types/jobs/ScanQueueJob.d.ts +41 -0
- package/dist/types/jobs/SearchIndexJob.d.ts +37 -0
- package/dist/types/jobs/index.d.ts +9 -0
- package/dist/types/jobs/mongo/AttachmentExtractionJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/CalendarReminderJobMongo.d.ts +5 -0
- package/dist/types/jobs/mongo/EasDeviceStateCleanupJobMongo.d.ts +5 -0
- package/dist/types/jobs/mongo/ExternalShareExpirationJobMongo.d.ts +5 -0
- package/dist/types/jobs/mongo/MailboxQuotaRecalcJobMongo.d.ts +7 -0
- package/dist/types/jobs/mongo/MeetingSchedulingJobMongo.d.ts +5 -0
- package/dist/types/jobs/mongo/QuarantineRetentionJobMongo.d.ts +5 -0
- package/dist/types/jobs/mongo/ScanQueueJobMongo.d.ts +10 -0
- package/dist/types/jobs/mongo/SearchIndexJobMongo.d.ts +6 -0
- package/dist/types/jobs/mongo/index.d.ts +9 -0
- package/dist/types/jobs/mongo.d.ts +1 -0
- package/dist/types/jobs/sql/AttachmentExtractionJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/CalendarReminderJobSQL.d.ts +5 -0
- package/dist/types/jobs/sql/EasDeviceStateCleanupJobSQL.d.ts +5 -0
- package/dist/types/jobs/sql/ExternalShareExpirationJobSQL.d.ts +5 -0
- package/dist/types/jobs/sql/MailboxQuotaRecalcJobSQL.d.ts +7 -0
- package/dist/types/jobs/sql/MeetingSchedulingJobSQL.d.ts +5 -0
- package/dist/types/jobs/sql/QuarantineRetentionJobSQL.d.ts +5 -0
- package/dist/types/jobs/sql/ScanQueueJobSQL.d.ts +10 -0
- package/dist/types/jobs/sql/SearchIndexJobSQL.d.ts +6 -0
- package/dist/types/jobs/sql/index.d.ts +9 -0
- package/dist/types/jobs/sql.d.ts +1 -0
- package/dist/types/models/index.d.ts +1 -0
- package/dist/types/models/mongo/AttachmentMongo.d.ts +22 -0
- package/dist/types/models/mongo/CalendarEventMongo.d.ts +28 -0
- package/dist/types/models/mongo/CalendarShareLinkMongo.d.ts +16 -0
- package/dist/types/models/mongo/ContactListMongo.d.ts +13 -0
- package/dist/types/models/mongo/ContactMongo.d.ts +25 -0
- package/dist/types/models/mongo/DeviceSyncStateMongo.d.ts +18 -0
- package/dist/types/models/mongo/FolderMongo.d.ts +18 -0
- package/dist/types/models/mongo/IngestQueueEntryMongo.d.ts +17 -0
- package/dist/types/models/mongo/MailboxMongo.d.ts +18 -0
- package/dist/types/models/mongo/MessageMongo.d.ts +29 -0
- package/dist/types/models/mongo/NoteMongo.d.ts +16 -0
- package/dist/types/models/mongo/QuarantineEntryMongo.d.ts +18 -0
- package/dist/types/models/mongo/ScanResultMongo.d.ts +23 -0
- package/dist/types/models/mongo/SearchIndexStateMongo.d.ts +16 -0
- package/dist/types/models/mongo/TaskMongo.d.ts +19 -0
- package/dist/types/models/mongo/index.d.ts +15 -0
- package/dist/types/models/mongo.d.ts +1 -0
- package/dist/types/models/sql/AttachmentSQL.d.ts +22 -0
- package/dist/types/models/sql/CalendarEventSQL.d.ts +28 -0
- package/dist/types/models/sql/CalendarShareLinkSQL.d.ts +16 -0
- package/dist/types/models/sql/ContactListSQL.d.ts +13 -0
- package/dist/types/models/sql/ContactSQL.d.ts +25 -0
- package/dist/types/models/sql/DeviceSyncStateSQL.d.ts +18 -0
- package/dist/types/models/sql/FolderSQL.d.ts +18 -0
- package/dist/types/models/sql/IngestQueueEntrySQL.d.ts +17 -0
- package/dist/types/models/sql/MailboxSQL.d.ts +18 -0
- package/dist/types/models/sql/MessageSQL.d.ts +29 -0
- package/dist/types/models/sql/NoteSQL.d.ts +16 -0
- package/dist/types/models/sql/QuarantineEntrySQL.d.ts +18 -0
- package/dist/types/models/sql/ScanResultSQL.d.ts +23 -0
- package/dist/types/models/sql/SearchIndexStateSQL.d.ts +16 -0
- package/dist/types/models/sql/TaskSQL.d.ts +19 -0
- package/dist/types/models/sql/index.d.ts +15 -0
- package/dist/types/models/sql.d.ts +1 -0
- package/dist/types/models/types.d.ts +541 -0
- package/dist/types/mongo.d.ts +3 -0
- package/dist/types/push/MailPushRoute.d.ts +37 -0
- package/dist/types/push/index.d.ts +1 -0
- package/dist/types/routes/BaseAttachmentRoute.d.ts +24 -0
- package/dist/types/routes/BaseCalendarShareLinkRoute.d.ts +35 -0
- package/dist/types/routes/BaseFolderRoute.d.ts +58 -0
- package/dist/types/routes/BaseMailIngestRoute.d.ts +47 -0
- package/dist/types/routes/BaseMailboxRoute.d.ts +60 -0
- package/dist/types/routes/BaseMessageRoute.d.ts +27 -0
- package/dist/types/routes/BaseScopedChildRoute.d.ts +61 -0
- package/dist/types/routes/BaseSearchRoute.d.ts +23 -0
- package/dist/types/routes/index.d.ts +8 -0
- package/dist/types/routes/mongo/AttachmentRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/CalendarEventRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/CalendarShareLinkRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/ContactListRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/ContactRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/FolderRouteMongo.d.ts +5 -0
- package/dist/types/routes/mongo/IngestQueueRouteMongo.d.ts +13 -0
- package/dist/types/routes/mongo/MailIngestRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/MailboxRouteMongo.d.ts +8 -0
- package/dist/types/routes/mongo/MessageRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/NoteRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/QuarantineRouteMongo.d.ts +15 -0
- package/dist/types/routes/mongo/SearchRouteMongo.d.ts +5 -0
- package/dist/types/routes/mongo/TaskRouteMongo.d.ts +6 -0
- package/dist/types/routes/mongo/index.d.ts +14 -0
- package/dist/types/routes/mongo.d.ts +1 -0
- package/dist/types/routes/sql/AttachmentRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/CalendarEventRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/CalendarShareLinkRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/ContactListRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/ContactRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/FolderRouteSQL.d.ts +5 -0
- package/dist/types/routes/sql/IngestQueueRouteSQL.d.ts +9 -0
- package/dist/types/routes/sql/MailIngestRouteSQL.d.ts +23 -0
- package/dist/types/routes/sql/MailboxRouteSQL.d.ts +22 -0
- package/dist/types/routes/sql/MessageRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/NoteRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/QuarantineRouteSQL.d.ts +9 -0
- package/dist/types/routes/sql/SearchRouteSQL.d.ts +5 -0
- package/dist/types/routes/sql/TaskRouteSQL.d.ts +6 -0
- package/dist/types/routes/sql/index.d.ts +14 -0
- package/dist/types/routes/sql.d.ts +1 -0
- package/dist/types/scan/AvScanProvider.d.ts +22 -0
- package/dist/types/scan/ClamAvScanProvider.d.ts +17 -0
- package/dist/types/scan/RspamdSpamScanProvider.d.ts +16 -0
- package/dist/types/scan/ScanPipeline.d.ts +53 -0
- package/dist/types/scan/SpamScanProvider.d.ts +29 -0
- package/dist/types/scan/index.d.ts +5 -0
- package/dist/types/search/MongoTextSearchProvider.d.ts +22 -0
- package/dist/types/search/OpenSearchProvider.d.ts +24 -0
- package/dist/types/search/PostgresFullTextSearchProvider.d.ts +21 -0
- package/dist/types/search/SearchProvider.d.ts +62 -0
- package/dist/types/search/extraction/DocxTextExtractor.d.ts +14 -0
- package/dist/types/search/extraction/ExtractorRegistry.d.ts +19 -0
- package/dist/types/search/extraction/HtmlTextExtractor.d.ts +11 -0
- package/dist/types/search/extraction/PdfTextExtractor.d.ts +10 -0
- package/dist/types/search/extraction/PlainTextExtractor.d.ts +10 -0
- package/dist/types/search/extraction/TextExtractor.d.ts +17 -0
- package/dist/types/search/index.d.ts +10 -0
- package/dist/types/sql.d.ts +3 -0
- package/dist/types/transport/MTAIngestAdapter.d.ts +25 -0
- package/dist/types/transport/MailTransport.d.ts +29 -0
- package/dist/types/transport/PostfixSendmailTransport.d.ts +15 -0
- package/dist/types/transport/index.d.ts +3 -0
- package/dist/types/util/FolderUtils.d.ts +15 -0
- package/dist/types/util/MailSendUtils.d.ts +19 -0
- package/dist/types/util/MailboxScopeUtils.d.ts +19 -0
- package/dist/types/util/OptionalDeps.d.ts +9 -0
- package/dist/types/util/RecoverableRepoUtils.d.ts +24 -0
- package/dist/types/util/index.d.ts +12 -0
- package/package.json +122 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
11
|
+
// Copyright (C) 2026 Jean-Philippe Steinmetz. All rights reserved.
|
|
12
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
13
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
14
|
+
import { BaseEntity, DocDecorators, ModelDecorators, PersistenceDecorators } from "@rapidrest/service-core";
|
|
15
|
+
import { ObjectDecorators } from "@rapidrest/core";
|
|
16
|
+
const { Description } = DocDecorators;
|
|
17
|
+
const { DataStore, Protect } = ModelDecorators;
|
|
18
|
+
const { Nullable } = ObjectDecorators;
|
|
19
|
+
const { Column, Entity, Index } = PersistenceDecorators;
|
|
20
|
+
/**
|
|
21
|
+
* Implementation of the `Attachment` interface for storage in a SQL database. If MongoDB is desired, please use
|
|
22
|
+
* `models.mongo.AttachmentMongo` instead.
|
|
23
|
+
*
|
|
24
|
+
* @author Jean-Philippe Steinmetz
|
|
25
|
+
*/
|
|
26
|
+
let AttachmentSQL = class AttachmentSQL extends BaseEntity {
|
|
27
|
+
constructor(other) {
|
|
28
|
+
super(other);
|
|
29
|
+
this.messageUid = "";
|
|
30
|
+
this.folderUid = "";
|
|
31
|
+
this.mailboxUid = "";
|
|
32
|
+
this.filename = "";
|
|
33
|
+
this.mimeType = "";
|
|
34
|
+
this.sizeBytes = 0;
|
|
35
|
+
this.blobKey = "";
|
|
36
|
+
this.isInline = false;
|
|
37
|
+
if (other) {
|
|
38
|
+
this.messageUid = other.messageUid !== undefined ? other.messageUid : this.messageUid;
|
|
39
|
+
this.folderUid = other.folderUid !== undefined ? other.folderUid : this.folderUid;
|
|
40
|
+
this.mailboxUid = other.mailboxUid !== undefined ? other.mailboxUid : this.mailboxUid;
|
|
41
|
+
this.filename = other.filename !== undefined ? other.filename : this.filename;
|
|
42
|
+
this.mimeType = other.mimeType !== undefined ? other.mimeType : this.mimeType;
|
|
43
|
+
this.sizeBytes = other.sizeBytes !== undefined ? other.sizeBytes : this.sizeBytes;
|
|
44
|
+
this.blobKey = other.blobKey !== undefined ? other.blobKey : this.blobKey;
|
|
45
|
+
this.contentId = "contentId" in other ? other.contentId : this.contentId;
|
|
46
|
+
this.isInline = other.isInline !== undefined ? other.isInline : this.isInline;
|
|
47
|
+
this.extractedTextBlobKey =
|
|
48
|
+
"extractedTextBlobKey" in other ? other.extractedTextBlobKey : this.extractedTextBlobKey;
|
|
49
|
+
this.scanResultUid = "scanResultUid" in other ? other.scanResultUid : this.scanResultUid;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
__decorate([
|
|
54
|
+
Column(),
|
|
55
|
+
Description("The unique identifier of the `Message` this attachment belongs to."),
|
|
56
|
+
__metadata("design:type", String)
|
|
57
|
+
], AttachmentSQL.prototype, "messageUid", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
Column(),
|
|
60
|
+
Description("The unique identifier of the `Folder` the owning `Message` resides in."),
|
|
61
|
+
__metadata("design:type", String)
|
|
62
|
+
], AttachmentSQL.prototype, "folderUid", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
Column(),
|
|
65
|
+
Description("The unique identifier of the `Mailbox` this attachment belongs to."),
|
|
66
|
+
__metadata("design:type", String)
|
|
67
|
+
], AttachmentSQL.prototype, "mailboxUid", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
Column(),
|
|
70
|
+
Description("The filename of the attachment."),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], AttachmentSQL.prototype, "filename", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
Column(),
|
|
75
|
+
Description("The MIME type of the attachment."),
|
|
76
|
+
__metadata("design:type", String)
|
|
77
|
+
], AttachmentSQL.prototype, "mimeType", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
Column(),
|
|
80
|
+
Description("The size, in bytes, of the attachment's content."),
|
|
81
|
+
__metadata("design:type", Number)
|
|
82
|
+
], AttachmentSQL.prototype, "sizeBytes", void 0);
|
|
83
|
+
__decorate([
|
|
84
|
+
Column(),
|
|
85
|
+
Description("The key under which the attachment's binary content is stored in the `BlobStore`."),
|
|
86
|
+
__metadata("design:type", String)
|
|
87
|
+
], AttachmentSQL.prototype, "blobKey", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
Column({ nullable: true }),
|
|
90
|
+
Description("The MIME `Content-ID`, present when this attachment is referenced inline by the message's HTML body."),
|
|
91
|
+
Nullable,
|
|
92
|
+
__metadata("design:type", String)
|
|
93
|
+
], AttachmentSQL.prototype, "contentId", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
Column(),
|
|
96
|
+
Description("`true` if this attachment is displayed inline in the message body rather than listed separately."),
|
|
97
|
+
__metadata("design:type", Boolean)
|
|
98
|
+
], AttachmentSQL.prototype, "isInline", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
Column({ nullable: true }),
|
|
101
|
+
Description("The key under which this attachment's extracted plain text is stored in the `BlobStore`, once extracted."),
|
|
102
|
+
Nullable,
|
|
103
|
+
__metadata("design:type", String)
|
|
104
|
+
], AttachmentSQL.prototype, "extractedTextBlobKey", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
Column({ nullable: true }),
|
|
107
|
+
Description("The unique identifier of this attachment's `ScanResult`, once scanning has completed."),
|
|
108
|
+
Nullable,
|
|
109
|
+
__metadata("design:type", String)
|
|
110
|
+
], AttachmentSQL.prototype, "scanResultUid", void 0);
|
|
111
|
+
AttachmentSQL = __decorate([
|
|
112
|
+
DataStore("sql"),
|
|
113
|
+
Entity(),
|
|
114
|
+
Description("Defines a single file attached to a `Message`. The binary content is stored in the configured " +
|
|
115
|
+
"`BlobStore`, referenced by `blobKey`."),
|
|
116
|
+
Index("attachment_message", ["messageUid"]),
|
|
117
|
+
Index("attachment_folder", ["folderUid"]),
|
|
118
|
+
Index("attachment_mailbox", ["mailboxUid"]),
|
|
119
|
+
Protect({
|
|
120
|
+
uid: "Attachment",
|
|
121
|
+
records: [
|
|
122
|
+
{ userOrRoleId: "anonymous", actions: [] },
|
|
123
|
+
{ userOrRoleId: ".*", actions: [] },
|
|
124
|
+
],
|
|
125
|
+
}, false),
|
|
126
|
+
__metadata("design:paramtypes", [Object])
|
|
127
|
+
], AttachmentSQL);
|
|
128
|
+
export { AttachmentSQL };
|
|
129
|
+
//# sourceMappingURL=AttachmentSQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentSQL.js","sourceRoot":"","sources":["../../../../src/models/sql/AttachmentSQL.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
11
|
+
// Copyright (C) 2026 Jean-Philippe Steinmetz. All rights reserved.
|
|
12
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
13
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
14
|
+
import { DocDecorators, ModelDecorators, PersistenceDecorators, RecoverableBaseEntity, } from "@rapidrest/service-core";
|
|
15
|
+
import { ObjectDecorators } from "@rapidrest/core";
|
|
16
|
+
import { BusyStatus, CalendarEventStatus, RecipientType, } from "../types.js";
|
|
17
|
+
const { Description } = DocDecorators;
|
|
18
|
+
const { DataStore, Protect } = ModelDecorators;
|
|
19
|
+
const { Nullable } = ObjectDecorators;
|
|
20
|
+
const { Column, Entity, Index } = PersistenceDecorators;
|
|
21
|
+
/**
|
|
22
|
+
* Implementation of the `CalendarEvent` interface for storage in a SQL database. If MongoDB is desired, please
|
|
23
|
+
* use `models.mongo.CalendarEventMongo` instead.
|
|
24
|
+
*
|
|
25
|
+
* @author Jean-Philippe Steinmetz
|
|
26
|
+
*/
|
|
27
|
+
let CalendarEventSQL = class CalendarEventSQL extends RecoverableBaseEntity {
|
|
28
|
+
constructor(other) {
|
|
29
|
+
super(other);
|
|
30
|
+
this.folderUid = "";
|
|
31
|
+
this.mailboxUid = "";
|
|
32
|
+
this.title = "";
|
|
33
|
+
this.startDate = new Date();
|
|
34
|
+
this.endDate = new Date();
|
|
35
|
+
this.allDay = false;
|
|
36
|
+
this.timezone = "";
|
|
37
|
+
this.organizer = { address: "", type: RecipientType.TO };
|
|
38
|
+
this.attendees = [];
|
|
39
|
+
// `type: "varchar"` is required on every enum-typed column: TypeScript's `emitDecoratorMetadata` reflects
|
|
40
|
+
// a string enum's design type as the enum object itself, not a primitive constructor, which TypeORM/
|
|
41
|
+
// better-sqlite3 cannot resolve into a column type on its own (it would otherwise fail at
|
|
42
|
+
// `DataSource.initialize()` with "Data type 'undefined' ... is not supported").
|
|
43
|
+
this.status = CalendarEventStatus.CONFIRMED;
|
|
44
|
+
this.busyStatus = BusyStatus.BUSY;
|
|
45
|
+
this.icalUid = "";
|
|
46
|
+
this.sequence = 0;
|
|
47
|
+
if (other) {
|
|
48
|
+
this.folderUid = other.folderUid !== undefined ? other.folderUid : this.folderUid;
|
|
49
|
+
this.mailboxUid = other.mailboxUid !== undefined ? other.mailboxUid : this.mailboxUid;
|
|
50
|
+
this.title = other.title !== undefined ? other.title : this.title;
|
|
51
|
+
this.location = "location" in other ? other.location : this.location;
|
|
52
|
+
this.startDate = other.startDate !== undefined ? other.startDate : this.startDate;
|
|
53
|
+
this.endDate = other.endDate !== undefined ? other.endDate : this.endDate;
|
|
54
|
+
this.allDay = other.allDay !== undefined ? other.allDay : this.allDay;
|
|
55
|
+
this.timezone = other.timezone !== undefined ? other.timezone : this.timezone;
|
|
56
|
+
this.organizer = other.organizer !== undefined ? other.organizer : this.organizer;
|
|
57
|
+
this.attendees = other.attendees !== undefined ? other.attendees : this.attendees;
|
|
58
|
+
this.recurrenceRule = "recurrenceRule" in other ? other.recurrenceRule : this.recurrenceRule;
|
|
59
|
+
this.recurrenceId = "recurrenceId" in other ? other.recurrenceId : this.recurrenceId;
|
|
60
|
+
this.status = other.status !== undefined ? other.status : this.status;
|
|
61
|
+
this.busyStatus = other.busyStatus !== undefined ? other.busyStatus : this.busyStatus;
|
|
62
|
+
this.reminderMinutesBeforeStart =
|
|
63
|
+
"reminderMinutesBeforeStart" in other
|
|
64
|
+
? other.reminderMinutesBeforeStart
|
|
65
|
+
: this.reminderMinutesBeforeStart;
|
|
66
|
+
this.icalUid = other.icalUid !== undefined ? other.icalUid : this.icalUid;
|
|
67
|
+
this.sequence = other.sequence !== undefined ? other.sequence : this.sequence;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
__decorate([
|
|
72
|
+
Column(),
|
|
73
|
+
Description("The unique identifier of the `Folder` (of type `CALENDAR`) this event resides in."),
|
|
74
|
+
__metadata("design:type", String)
|
|
75
|
+
], CalendarEventSQL.prototype, "folderUid", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
Column(),
|
|
78
|
+
Description("The unique identifier of the `Mailbox` this event belongs to."),
|
|
79
|
+
__metadata("design:type", String)
|
|
80
|
+
], CalendarEventSQL.prototype, "mailboxUid", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
Column(),
|
|
83
|
+
Description("The title of the event."),
|
|
84
|
+
__metadata("design:type", String)
|
|
85
|
+
], CalendarEventSQL.prototype, "title", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
Column({ nullable: true }),
|
|
88
|
+
Description("The location of the event."),
|
|
89
|
+
Nullable,
|
|
90
|
+
__metadata("design:type", String)
|
|
91
|
+
], CalendarEventSQL.prototype, "location", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
Column(),
|
|
94
|
+
Description("The date and time the event starts."),
|
|
95
|
+
__metadata("design:type", Date)
|
|
96
|
+
], CalendarEventSQL.prototype, "startDate", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
Column(),
|
|
99
|
+
Description("The date and time the event ends."),
|
|
100
|
+
__metadata("design:type", Date)
|
|
101
|
+
], CalendarEventSQL.prototype, "endDate", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
Column(),
|
|
104
|
+
Description("`true` if the event spans the entire day rather than a specific time range."),
|
|
105
|
+
__metadata("design:type", Boolean)
|
|
106
|
+
], CalendarEventSQL.prototype, "allDay", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
Column(),
|
|
109
|
+
Description("The IANA timezone identifier the event's start/end times were authored in."),
|
|
110
|
+
__metadata("design:type", String)
|
|
111
|
+
], CalendarEventSQL.prototype, "timezone", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
Column({ type: "simple-json" }),
|
|
114
|
+
Description("The organizer of the event."),
|
|
115
|
+
__metadata("design:type", Object)
|
|
116
|
+
], CalendarEventSQL.prototype, "organizer", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
Column({ type: "simple-json" }),
|
|
119
|
+
Description("The list of attendees invited to the event."),
|
|
120
|
+
__metadata("design:type", Array)
|
|
121
|
+
], CalendarEventSQL.prototype, "attendees", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
Column({ type: "simple-json", nullable: true }),
|
|
124
|
+
Description("The recurrence definition for the event, if it repeats."),
|
|
125
|
+
Nullable,
|
|
126
|
+
__metadata("design:type", Object)
|
|
127
|
+
], CalendarEventSQL.prototype, "recurrenceRule", void 0);
|
|
128
|
+
__decorate([
|
|
129
|
+
Column({ nullable: true }),
|
|
130
|
+
Description("For a single occurrence of a recurring event that has been individually modified, its original start date."),
|
|
131
|
+
Nullable,
|
|
132
|
+
__metadata("design:type", Date)
|
|
133
|
+
], CalendarEventSQL.prototype, "recurrenceId", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
Column({ type: "varchar" }),
|
|
136
|
+
Description("The scheduling status of the event."),
|
|
137
|
+
__metadata("design:type", String)
|
|
138
|
+
], CalendarEventSQL.prototype, "status", void 0);
|
|
139
|
+
__decorate([
|
|
140
|
+
Column({ type: "varchar" }),
|
|
141
|
+
Description("The free/busy status the event should be shown as."),
|
|
142
|
+
__metadata("design:type", String)
|
|
143
|
+
], CalendarEventSQL.prototype, "busyStatus", void 0);
|
|
144
|
+
__decorate([
|
|
145
|
+
Column({ nullable: true }),
|
|
146
|
+
Description("The number of minutes before `startDate` that a reminder should be dispatched, if any."),
|
|
147
|
+
Nullable,
|
|
148
|
+
__metadata("design:type", Number)
|
|
149
|
+
], CalendarEventSQL.prototype, "reminderMinutesBeforeStart", void 0);
|
|
150
|
+
__decorate([
|
|
151
|
+
Column(),
|
|
152
|
+
Description("A stable identifier (RFC 5545 `UID`) for this event, shared across all clients/protocols and iTIP messages."),
|
|
153
|
+
__metadata("design:type", String)
|
|
154
|
+
], CalendarEventSQL.prototype, "icalUid", void 0);
|
|
155
|
+
__decorate([
|
|
156
|
+
Column(),
|
|
157
|
+
Description("The iTIP revision counter (RFC 5546 `SEQUENCE`), incremented on every scheduling-relevant change."),
|
|
158
|
+
__metadata("design:type", Number)
|
|
159
|
+
], CalendarEventSQL.prototype, "sequence", void 0);
|
|
160
|
+
CalendarEventSQL = __decorate([
|
|
161
|
+
DataStore("sql"),
|
|
162
|
+
Entity(),
|
|
163
|
+
Description("Defines a single calendar event/meeting stored in a `Folder` of type `CALENDAR`."),
|
|
164
|
+
Index("calevent_folder", ["folderUid"]),
|
|
165
|
+
Index("calevent_ical_uid", ["icalUid"]),
|
|
166
|
+
Protect({
|
|
167
|
+
uid: "CalendarEvent",
|
|
168
|
+
records: [
|
|
169
|
+
{ userOrRoleId: "anonymous", actions: [] },
|
|
170
|
+
{ userOrRoleId: ".*", actions: [] },
|
|
171
|
+
],
|
|
172
|
+
}, false),
|
|
173
|
+
__metadata("design:paramtypes", [Object])
|
|
174
|
+
], CalendarEventSQL);
|
|
175
|
+
export { CalendarEventSQL };
|
|
176
|
+
//# sourceMappingURL=CalendarEventSQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarEventSQL.js","sourceRoot":"","sources":["../../../../src/models/sql/CalendarEventSQL.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
11
|
+
// Copyright (C) 2026 Jean-Philippe Steinmetz. All rights reserved.
|
|
12
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
13
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
14
|
+
import { BaseEntity, DocDecorators, ModelDecorators, PersistenceDecorators } from "@rapidrest/service-core";
|
|
15
|
+
import { ObjectDecorators } from "@rapidrest/core";
|
|
16
|
+
const { Description } = DocDecorators;
|
|
17
|
+
const { DataStore, Protect } = ModelDecorators;
|
|
18
|
+
const { Nullable } = ObjectDecorators;
|
|
19
|
+
const { Column, Entity, Index } = PersistenceDecorators;
|
|
20
|
+
/**
|
|
21
|
+
* Implementation of the `CalendarShareLink` interface for storage in a SQL database. If MongoDB is desired,
|
|
22
|
+
* please use `models.mongo.CalendarShareLinkMongo` instead.
|
|
23
|
+
*
|
|
24
|
+
* @author Jean-Philippe Steinmetz
|
|
25
|
+
*/
|
|
26
|
+
let CalendarShareLinkSQL = class CalendarShareLinkSQL extends BaseEntity {
|
|
27
|
+
constructor(other) {
|
|
28
|
+
super(other);
|
|
29
|
+
this.token = "";
|
|
30
|
+
this.folderUid = "";
|
|
31
|
+
this.permittedActions = [];
|
|
32
|
+
this.createdByUserUid = "";
|
|
33
|
+
if (other) {
|
|
34
|
+
this.token = other.token !== undefined ? other.token : this.token;
|
|
35
|
+
this.folderUid = other.folderUid !== undefined ? other.folderUid : this.folderUid;
|
|
36
|
+
this.permittedActions = other.permittedActions !== undefined ? other.permittedActions : this.permittedActions;
|
|
37
|
+
this.expiresAt = "expiresAt" in other ? other.expiresAt : this.expiresAt;
|
|
38
|
+
this.createdByUserUid = other.createdByUserUid !== undefined ? other.createdByUserUid : this.createdByUserUid;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
__decorate([
|
|
43
|
+
Column(),
|
|
44
|
+
Description("The unique, unguessable token embedded in the shared URL and used as the ACL `userOrRoleId`."),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], CalendarShareLinkSQL.prototype, "token", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
Column(),
|
|
49
|
+
Description("The unique identifier of the `Folder` (of type `CALENDAR`) being shared."),
|
|
50
|
+
__metadata("design:type", String)
|
|
51
|
+
], CalendarShareLinkSQL.prototype, "folderUid", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
Column({ type: "simple-json" }),
|
|
54
|
+
Description("The actions (see `ACLAction`) granted to holders of this link, e.g. `[\"freebusy\"]` or `[\"read\"]`."),
|
|
55
|
+
__metadata("design:type", Array)
|
|
56
|
+
], CalendarShareLinkSQL.prototype, "permittedActions", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
Column({ nullable: true }),
|
|
59
|
+
Description("The date/time after which this link is no longer valid."),
|
|
60
|
+
Nullable,
|
|
61
|
+
__metadata("design:type", Date)
|
|
62
|
+
], CalendarShareLinkSQL.prototype, "expiresAt", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
Column(),
|
|
65
|
+
Description("The unique identifier of the `User` that created this share link."),
|
|
66
|
+
__metadata("design:type", String)
|
|
67
|
+
], CalendarShareLinkSQL.prototype, "createdByUserUid", void 0);
|
|
68
|
+
CalendarShareLinkSQL = __decorate([
|
|
69
|
+
DataStore("sql"),
|
|
70
|
+
Entity(),
|
|
71
|
+
Description("Supports anonymous, unauthenticated external access to a `CalendarEvent` folder's free/busy information " +
|
|
72
|
+
"(or broader access, per `permittedActions`) via a shareable link."),
|
|
73
|
+
Index("calsharelink_token", ["token"], { unique: true }),
|
|
74
|
+
Index("calsharelink_folder", ["folderUid"]),
|
|
75
|
+
Protect({
|
|
76
|
+
uid: "CalendarShareLink",
|
|
77
|
+
records: [
|
|
78
|
+
{ userOrRoleId: "anonymous", actions: [] },
|
|
79
|
+
{ userOrRoleId: ".*", actions: [] },
|
|
80
|
+
],
|
|
81
|
+
}, false),
|
|
82
|
+
__metadata("design:paramtypes", [Object])
|
|
83
|
+
], CalendarShareLinkSQL);
|
|
84
|
+
export { CalendarShareLinkSQL };
|
|
85
|
+
//# sourceMappingURL=CalendarShareLinkSQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarShareLinkSQL.js","sourceRoot":"","sources":["../../../../src/models/sql/CalendarShareLinkSQL.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
11
|
+
// Copyright (C) 2026 Jean-Philippe Steinmetz. All rights reserved.
|
|
12
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
13
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
14
|
+
import { BaseEntity, DocDecorators, ModelDecorators, PersistenceDecorators } from "@rapidrest/service-core";
|
|
15
|
+
const { Description } = DocDecorators;
|
|
16
|
+
const { DataStore, Protect } = ModelDecorators;
|
|
17
|
+
const { Column, Entity, Index } = PersistenceDecorators;
|
|
18
|
+
/**
|
|
19
|
+
* Implementation of the `ContactList` interface for storage in a SQL database. If MongoDB is desired, please use
|
|
20
|
+
* `models.mongo.ContactListMongo` instead.
|
|
21
|
+
*
|
|
22
|
+
* @author Jean-Philippe Steinmetz
|
|
23
|
+
*/
|
|
24
|
+
let ContactListSQL = class ContactListSQL extends BaseEntity {
|
|
25
|
+
constructor(other) {
|
|
26
|
+
super(other);
|
|
27
|
+
this.mailboxUid = "";
|
|
28
|
+
this.name = "";
|
|
29
|
+
if (other) {
|
|
30
|
+
this.mailboxUid = other.mailboxUid !== undefined ? other.mailboxUid : this.mailboxUid;
|
|
31
|
+
this.name = other.name !== undefined ? other.name : this.name;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
__decorate([
|
|
36
|
+
Column(),
|
|
37
|
+
Description("The unique identifier of the `Mailbox` this contact list belongs to."),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], ContactListSQL.prototype, "mailboxUid", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
Column(),
|
|
42
|
+
Description("The display name of the contact list."),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], ContactListSQL.prototype, "name", void 0);
|
|
45
|
+
ContactListSQL = __decorate([
|
|
46
|
+
DataStore("sql"),
|
|
47
|
+
Entity(),
|
|
48
|
+
Description("Defines a named grouping (address book / distribution list) of `Contact` records within a `Mailbox`."),
|
|
49
|
+
Index("contactlist_mailbox", ["mailboxUid"]),
|
|
50
|
+
Protect({
|
|
51
|
+
uid: "ContactList",
|
|
52
|
+
records: [
|
|
53
|
+
{ userOrRoleId: "anonymous", actions: [] },
|
|
54
|
+
{ userOrRoleId: ".*", actions: [] },
|
|
55
|
+
],
|
|
56
|
+
}, false),
|
|
57
|
+
__metadata("design:paramtypes", [Object])
|
|
58
|
+
], ContactListSQL);
|
|
59
|
+
export { ContactListSQL };
|
|
60
|
+
//# sourceMappingURL=ContactListSQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactListSQL.js","sourceRoot":"","sources":["../../../../src/models/sql/ContactListSQL.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+EAA+E;AAC/E,mEAAmE;AACnE,mCAAmC;AACnC,+EAA+E;AAC/E,OAAO,EAAa,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEvH,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;AACtC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;AAC/C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC;AAExD;;;;;GAKG;AAeI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;IAS1C,YAAY,KAA+B;QACvC,KAAK,CAAC,KAAK,CAAC,CAAC;QAPV,eAAU,GAAW,EAAE,CAAC;QAIxB,SAAI,GAAW,EAAE,CAAC;QAKrB,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YACtF,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,CAAC;IACL,CAAC;CACJ,CAAA;AAdU;IAFN,MAAM,EAAE;IACR,WAAW,CAAC,sEAAsE,CAAC;;kDACrD;AAIxB;IAFN,MAAM,EAAE;IACR,WAAW,CAAC,uCAAuC,CAAC;;4CAC5B;AAPhB,cAAc;IAd1B,SAAS,CAAC,KAAK,CAAC;IAChB,MAAM,EAAE;IACR,WAAW,CAAC,sGAAsG,CAAC;IACnH,KAAK,CAAC,qBAAqB,EAAE,CAAC,YAAY,CAAC,CAAC;IAC5C,OAAO,CACJ;QACI,GAAG,EAAE,aAAa;QAClB,OAAO,EAAE;YACL,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;YAC1C,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;SACtC;KACJ,EACD,KAAK,CACR;;GACY,cAAc,CAiB1B"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
11
|
+
// Copyright (C) 2026 Jean-Philippe Steinmetz. All rights reserved.
|
|
12
|
+
// SPDX-License-Identifier: MPL-2.0
|
|
13
|
+
///////////////////////////////////////////////////////////////////////////////
|
|
14
|
+
import { DocDecorators, ModelDecorators, PersistenceDecorators, RecoverableBaseEntity, } from "@rapidrest/service-core";
|
|
15
|
+
import { ObjectDecorators } from "@rapidrest/core";
|
|
16
|
+
const { Description } = DocDecorators;
|
|
17
|
+
const { DataStore, Protect } = ModelDecorators;
|
|
18
|
+
const { Nullable } = ObjectDecorators;
|
|
19
|
+
const { Column, Entity, Index } = PersistenceDecorators;
|
|
20
|
+
/**
|
|
21
|
+
* Implementation of the `Contact` interface for storage in a SQL database. If MongoDB is desired, please use
|
|
22
|
+
* `models.mongo.ContactMongo` instead.
|
|
23
|
+
*
|
|
24
|
+
* @author Jean-Philippe Steinmetz
|
|
25
|
+
*/
|
|
26
|
+
let ContactSQL = class ContactSQL extends RecoverableBaseEntity {
|
|
27
|
+
constructor(other) {
|
|
28
|
+
super(other);
|
|
29
|
+
this.mailboxUid = "";
|
|
30
|
+
this.folderUid = "";
|
|
31
|
+
this.displayName = "";
|
|
32
|
+
this.emails = [];
|
|
33
|
+
this.phones = [];
|
|
34
|
+
this.addresses = [];
|
|
35
|
+
if (other) {
|
|
36
|
+
this.mailboxUid = other.mailboxUid !== undefined ? other.mailboxUid : this.mailboxUid;
|
|
37
|
+
this.folderUid = other.folderUid !== undefined ? other.folderUid : this.folderUid;
|
|
38
|
+
this.contactListUid = "contactListUid" in other ? other.contactListUid : this.contactListUid;
|
|
39
|
+
this.displayName = other.displayName !== undefined ? other.displayName : this.displayName;
|
|
40
|
+
this.givenName = "givenName" in other ? other.givenName : this.givenName;
|
|
41
|
+
this.surname = "surname" in other ? other.surname : this.surname;
|
|
42
|
+
this.emails = other.emails !== undefined ? other.emails : this.emails;
|
|
43
|
+
this.phones = other.phones !== undefined ? other.phones : this.phones;
|
|
44
|
+
this.addresses = other.addresses !== undefined ? other.addresses : this.addresses;
|
|
45
|
+
this.company = "company" in other ? other.company : this.company;
|
|
46
|
+
this.jobTitle = "jobTitle" in other ? other.jobTitle : this.jobTitle;
|
|
47
|
+
this.notes = "notes" in other ? other.notes : this.notes;
|
|
48
|
+
this.photoBlobKey = "photoBlobKey" in other ? other.photoBlobKey : this.photoBlobKey;
|
|
49
|
+
this.sourceUid = "sourceUid" in other ? other.sourceUid : this.sourceUid;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
__decorate([
|
|
54
|
+
Column(),
|
|
55
|
+
Description("The unique identifier of the `Mailbox` this contact belongs to."),
|
|
56
|
+
__metadata("design:type", String)
|
|
57
|
+
], ContactSQL.prototype, "mailboxUid", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
Column(),
|
|
60
|
+
Description("The unique identifier of the `Folder` (of type `CONTACTS`) this contact resides in."),
|
|
61
|
+
__metadata("design:type", String)
|
|
62
|
+
], ContactSQL.prototype, "folderUid", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
Column({ nullable: true }),
|
|
65
|
+
Description("The unique identifier of the `ContactList` this contact is a member of, if any."),
|
|
66
|
+
Nullable,
|
|
67
|
+
__metadata("design:type", String)
|
|
68
|
+
], ContactSQL.prototype, "contactListUid", void 0);
|
|
69
|
+
__decorate([
|
|
70
|
+
Column(),
|
|
71
|
+
Description("The display name of the contact."),
|
|
72
|
+
__metadata("design:type", String)
|
|
73
|
+
], ContactSQL.prototype, "displayName", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
Column({ nullable: true }),
|
|
76
|
+
Description("The contact's given name (aka: first name)."),
|
|
77
|
+
Nullable,
|
|
78
|
+
__metadata("design:type", String)
|
|
79
|
+
], ContactSQL.prototype, "givenName", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
Column({ nullable: true }),
|
|
82
|
+
Description("The contact's family surname (or last name)."),
|
|
83
|
+
Nullable,
|
|
84
|
+
__metadata("design:type", String)
|
|
85
|
+
], ContactSQL.prototype, "surname", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
Column({ type: "simple-json" }),
|
|
88
|
+
Description("The contact's email addresses."),
|
|
89
|
+
__metadata("design:type", Array)
|
|
90
|
+
], ContactSQL.prototype, "emails", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
Column({ type: "simple-json" }),
|
|
93
|
+
Description("The contact's phone numbers."),
|
|
94
|
+
__metadata("design:type", Array)
|
|
95
|
+
], ContactSQL.prototype, "phones", void 0);
|
|
96
|
+
__decorate([
|
|
97
|
+
Column({ type: "simple-json" }),
|
|
98
|
+
Description("The contact's postal addresses."),
|
|
99
|
+
__metadata("design:type", Array)
|
|
100
|
+
], ContactSQL.prototype, "addresses", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
Column({ nullable: true }),
|
|
103
|
+
Description("The name of the company the contact works for."),
|
|
104
|
+
Nullable,
|
|
105
|
+
__metadata("design:type", String)
|
|
106
|
+
], ContactSQL.prototype, "company", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
Column({ nullable: true }),
|
|
109
|
+
Description("The contact's job title."),
|
|
110
|
+
Nullable,
|
|
111
|
+
__metadata("design:type", String)
|
|
112
|
+
], ContactSQL.prototype, "jobTitle", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
Column({ nullable: true }),
|
|
115
|
+
Description("Free-form notes about the contact."),
|
|
116
|
+
Nullable,
|
|
117
|
+
__metadata("design:type", String)
|
|
118
|
+
], ContactSQL.prototype, "notes", void 0);
|
|
119
|
+
__decorate([
|
|
120
|
+
Column({ nullable: true }),
|
|
121
|
+
Description("The key under which the contact's photo is stored in the `BlobStore`, if one has been set."),
|
|
122
|
+
Nullable,
|
|
123
|
+
__metadata("design:type", String)
|
|
124
|
+
], ContactSQL.prototype, "photoBlobKey", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
Column({ nullable: true }),
|
|
127
|
+
Description("The unique identifier of an external directory entry (e.g. GAL) this contact was sourced from, if any."),
|
|
128
|
+
Nullable,
|
|
129
|
+
__metadata("design:type", String)
|
|
130
|
+
], ContactSQL.prototype, "sourceUid", void 0);
|
|
131
|
+
ContactSQL = __decorate([
|
|
132
|
+
DataStore("sql"),
|
|
133
|
+
Entity(),
|
|
134
|
+
Description("Defines a single address book entry. Contacts are also the source of truth for MAPI NSPI and EAS GAL " +
|
|
135
|
+
"(Global Address List) lookups against a mailbox's own address book."),
|
|
136
|
+
Index("contact_mailbox", ["mailboxUid"]),
|
|
137
|
+
Index("contact_folder", ["folderUid"]),
|
|
138
|
+
Protect({
|
|
139
|
+
uid: "Contact",
|
|
140
|
+
records: [
|
|
141
|
+
{ userOrRoleId: "anonymous", actions: [] },
|
|
142
|
+
{ userOrRoleId: ".*", actions: [] },
|
|
143
|
+
],
|
|
144
|
+
}, false),
|
|
145
|
+
__metadata("design:paramtypes", [Object])
|
|
146
|
+
], ContactSQL);
|
|
147
|
+
export { ContactSQL };
|
|
148
|
+
//# sourceMappingURL=ContactSQL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContactSQL.js","sourceRoot":"","sources":["../../../../src/models/sql/ContactSQL.ts"],"names":[],"mappings":"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"}
|