255 lines
12 KiB
Dart
255 lines
12 KiB
Dart
import 'package:jmap_dart_client/jmap/core/account/account.dart';
|
|
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
|
import 'package:jmap_dart_client/jmap/core/capability/core_capability.dart';
|
|
import 'package:jmap_dart_client/jmap/core/capability/default_capability.dart';
|
|
import 'package:jmap_dart_client/jmap/core/capability/mail_capability.dart';
|
|
import 'package:jmap_dart_client/jmap/core/capability/mdn_capability.dart';
|
|
import 'package:jmap_dart_client/jmap/core/capability/submission_capability.dart';
|
|
import 'package:jmap_dart_client/jmap/core/capability/vacation_capability.dart';
|
|
import 'package:jmap_dart_client/jmap/core/capability/websocket_capability.dart';
|
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
|
import 'package:jmap_dart_client/jmap/core/sort/collation_identifier.dart';
|
|
import 'package:jmap_dart_client/jmap/core/state.dart';
|
|
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
|
|
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
|
import 'package:scribe/scribe/ai/presentation/model/ai_capability.dart';
|
|
import 'package:scribe/scribe/ai/presentation/utils/ai_scribe_constants.dart';
|
|
|
|
import 'account_fixtures.dart';
|
|
|
|
class SessionFixtures {
|
|
static final aliceSession = Session(
|
|
{
|
|
CapabilityIdentifier.jmapSubmission: SubmissionCapability(
|
|
maxDelayedSend: UnsignedInt(0),
|
|
submissionExtensions: {}
|
|
),
|
|
CapabilityIdentifier.jmapCore: CoreCapability(
|
|
maxSizeUpload: UnsignedInt(20971520),
|
|
maxConcurrentUpload: UnsignedInt(4),
|
|
maxSizeRequest: UnsignedInt(10000000),
|
|
maxConcurrentRequests: UnsignedInt(4),
|
|
maxCallsInRequest: UnsignedInt(16),
|
|
maxObjectsInGet: UnsignedInt(500),
|
|
maxObjectsInSet: UnsignedInt(500),
|
|
collationAlgorithms: {CollationIdentifier("i;unicode-casemap")}
|
|
),
|
|
CapabilityIdentifier.jmapMail: MailCapability(
|
|
maxMailboxesPerEmail: UnsignedInt(10000000),
|
|
maxSizeAttachmentsPerEmail: UnsignedInt(20000000),
|
|
emailQuerySortOptions: {"receivedAt", "sentAt", "size", "from", "to", "subject"},
|
|
mayCreateTopLevelMailbox: true
|
|
),
|
|
CapabilityIdentifier.jmapWebSocket: WebSocketCapability(
|
|
supportsPush: true,
|
|
url: Uri.parse('ws://domain.com/jmap/ws')
|
|
),
|
|
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:quota')): DefaultCapability(<String, dynamic>{}),
|
|
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:shares')): DefaultCapability(<String, dynamic>{}),
|
|
CapabilityIdentifier.jmapVacationResponse: VacationCapability(),
|
|
CapabilityIdentifier.jmapMdn: MdnCapability(),
|
|
},
|
|
{
|
|
AccountFixtures.aliceAccountId: Account(
|
|
AccountName('alice@domain.tld'),
|
|
true,
|
|
false,
|
|
{
|
|
CapabilityIdentifier.jmapSubmission: SubmissionCapability(
|
|
maxDelayedSend: UnsignedInt(0),
|
|
submissionExtensions: {}
|
|
),
|
|
CapabilityIdentifier.jmapWebSocket: WebSocketCapability(
|
|
supportsPush: true,
|
|
url: Uri.parse('ws://domain.com/jmap/ws')
|
|
),
|
|
CapabilityIdentifier.jmapCore: CoreCapability(
|
|
maxSizeUpload: UnsignedInt(20971520),
|
|
maxConcurrentUpload: UnsignedInt(4),
|
|
maxSizeRequest: UnsignedInt(10000000),
|
|
maxConcurrentRequests: UnsignedInt(4),
|
|
maxCallsInRequest: UnsignedInt(16),
|
|
maxObjectsInGet: UnsignedInt(500),
|
|
maxObjectsInSet: UnsignedInt(500),
|
|
collationAlgorithms: {CollationIdentifier("i;unicode-casemap")}
|
|
),
|
|
CapabilityIdentifier.jmapMail: MailCapability(
|
|
maxMailboxesPerEmail: UnsignedInt(10000000),
|
|
maxSizeAttachmentsPerEmail: UnsignedInt(20000000),
|
|
emailQuerySortOptions: {"receivedAt", "sentAt", "size", "from", "to", "subject"},
|
|
mayCreateTopLevelMailbox: true
|
|
),
|
|
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:quota')): DefaultCapability(<String, dynamic>{}),
|
|
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:shares')): DefaultCapability(<String, dynamic>{}),
|
|
CapabilityIdentifier.jmapVacationResponse: VacationCapability(),
|
|
CapabilityIdentifier.jmapMdn: MdnCapability()
|
|
}
|
|
)
|
|
},
|
|
{
|
|
CapabilityIdentifier.jmapSubmission: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapWebSocket: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapCore: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapMail: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:quota')): AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier(Uri.parse('urn:apache:james:params:jmap:mail:shares')): AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapVacationResponse: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapMdn: AccountFixtures.aliceAccountId,
|
|
},
|
|
UserName('alice@domain.tld'),
|
|
Uri.parse('http://domain.com/jmap'),
|
|
Uri.parse('http://domain.com/download/{accountId}/{blobId}/?type={type}&name={name}'),
|
|
Uri.parse('http://domain.com/upload/{accountId}'),
|
|
Uri.parse('http://domain.com/eventSource?types={types}&closeAfter={closeafter}&ping={ping}'),
|
|
State('2c9f1b12-b35a-43e6-9af2-0106fb53a943')
|
|
);
|
|
|
|
static getAliceSessionWithMaxObjectsInSet(int maxObjectsInSet) => Session(
|
|
{
|
|
CapabilityIdentifier.jmapSubmission: SubmissionCapability(
|
|
maxDelayedSend: UnsignedInt(0), submissionExtensions: {}),
|
|
CapabilityIdentifier.jmapCore: CoreCapability(
|
|
maxSizeUpload: UnsignedInt(20971520),
|
|
maxConcurrentUpload: UnsignedInt(4),
|
|
maxSizeRequest: UnsignedInt(10000000),
|
|
maxConcurrentRequests: UnsignedInt(4),
|
|
maxCallsInRequest: UnsignedInt(16),
|
|
maxObjectsInGet: UnsignedInt(500),
|
|
maxObjectsInSet: UnsignedInt(maxObjectsInSet),
|
|
collationAlgorithms: {CollationIdentifier("i;unicode-casemap")}),
|
|
CapabilityIdentifier.jmapMail: MailCapability(
|
|
maxMailboxesPerEmail: UnsignedInt(10000000),
|
|
maxSizeAttachmentsPerEmail: UnsignedInt(20000000),
|
|
emailQuerySortOptions: {
|
|
"receivedAt",
|
|
"sentAt",
|
|
"size",
|
|
"from",
|
|
"to",
|
|
"subject"
|
|
},
|
|
mayCreateTopLevelMailbox: true),
|
|
CapabilityIdentifier.jmapWebSocket: WebSocketCapability(
|
|
supportsPush: true, url: Uri.parse('ws://domain.com/jmap/ws')),
|
|
CapabilityIdentifier(
|
|
Uri.parse('urn:apache:james:params:jmap:mail:quota')):
|
|
DefaultCapability(<String, dynamic>{}),
|
|
CapabilityIdentifier(
|
|
Uri.parse('urn:apache:james:params:jmap:mail:shares')):
|
|
DefaultCapability(<String, dynamic>{}),
|
|
CapabilityIdentifier.jmapVacationResponse: VacationCapability(),
|
|
CapabilityIdentifier.jmapMdn: MdnCapability(),
|
|
},
|
|
{
|
|
AccountFixtures.aliceAccountId:
|
|
Account(AccountName('alice@domain.tld'), true, false, {
|
|
CapabilityIdentifier.jmapSubmission: SubmissionCapability(
|
|
maxDelayedSend: UnsignedInt(0), submissionExtensions: {}),
|
|
CapabilityIdentifier.jmapWebSocket: WebSocketCapability(
|
|
supportsPush: true, url: Uri.parse('ws://domain.com/jmap/ws')),
|
|
CapabilityIdentifier.jmapCore: CoreCapability(
|
|
maxSizeUpload: UnsignedInt(20971520),
|
|
maxConcurrentUpload: UnsignedInt(4),
|
|
maxSizeRequest: UnsignedInt(10000000),
|
|
maxConcurrentRequests: UnsignedInt(4),
|
|
maxCallsInRequest: UnsignedInt(16),
|
|
maxObjectsInGet: UnsignedInt(500),
|
|
maxObjectsInSet: UnsignedInt(maxObjectsInSet),
|
|
collationAlgorithms: {
|
|
CollationIdentifier("i;unicode-casemap")
|
|
}),
|
|
CapabilityIdentifier.jmapMail: MailCapability(
|
|
maxMailboxesPerEmail: UnsignedInt(10000000),
|
|
maxSizeAttachmentsPerEmail: UnsignedInt(20000000),
|
|
emailQuerySortOptions: {
|
|
"receivedAt",
|
|
"sentAt",
|
|
"size",
|
|
"from",
|
|
"to",
|
|
"subject"
|
|
},
|
|
mayCreateTopLevelMailbox: true),
|
|
CapabilityIdentifier(
|
|
Uri.parse('urn:apache:james:params:jmap:mail:quota')):
|
|
DefaultCapability(<String, dynamic>{}),
|
|
CapabilityIdentifier(
|
|
Uri.parse('urn:apache:james:params:jmap:mail:shares')):
|
|
DefaultCapability(<String, dynamic>{}),
|
|
CapabilityIdentifier.jmapVacationResponse: VacationCapability(),
|
|
CapabilityIdentifier.jmapMdn: MdnCapability()
|
|
})
|
|
},
|
|
{
|
|
CapabilityIdentifier.jmapSubmission: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapWebSocket: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapCore: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapMail: AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier(
|
|
Uri.parse('urn:apache:james:params:jmap:mail:quota')):
|
|
AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier(
|
|
Uri.parse('urn:apache:james:params:jmap:mail:shares')):
|
|
AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapVacationResponse:
|
|
AccountFixtures.aliceAccountId,
|
|
CapabilityIdentifier.jmapMdn: AccountFixtures.aliceAccountId,
|
|
},
|
|
UserName('alice@domain.tld'),
|
|
Uri.parse('http://domain.com/jmap'),
|
|
Uri.parse(
|
|
'http://domain.com/download/{accountId}/{blobId}/?type={type}&name={name}'),
|
|
Uri.parse('http://domain.com/upload/{accountId}'),
|
|
Uri.parse(
|
|
'http://domain.com/eventSource?types={types}&closeAfter={closeafter}&ping={ping}'),
|
|
State('2c9f1b12-b35a-43e6-9af2-0106fb53a943'),
|
|
);
|
|
|
|
static final aliceSessionWithAICapability = Session(
|
|
{
|
|
AiScribeConstants.aiCapability: AICapability(),
|
|
},
|
|
{
|
|
AccountFixtures.aliceAccountId: Account(
|
|
AccountName('alice@domain.tld'),
|
|
true,
|
|
false,
|
|
{
|
|
AiScribeConstants.aiCapability: AICapability(),
|
|
},
|
|
)
|
|
},
|
|
{
|
|
AiScribeConstants.aiCapability: AccountFixtures.aliceAccountId,
|
|
},
|
|
UserName('alice@domain.tld'),
|
|
Uri.parse('http://domain.com/jmap'),
|
|
Uri.parse(
|
|
'http://domain.com/download/{accountId}/{blobId}/?type={type}&name={name}'),
|
|
Uri.parse('http://domain.com/upload/{accountId}'),
|
|
Uri.parse(
|
|
'http://domain.com/eventSource?types={types}&closeAfter={closeafter}&ping={ping}'),
|
|
State('2c9f1b12-b35a-43e6-9af2-0106fb53a943'),
|
|
);
|
|
|
|
static final aliceSessionWithoutAICapability = Session(
|
|
{},
|
|
{
|
|
AccountFixtures.aliceAccountId: Account(
|
|
AccountName('alice@domain.tld'),
|
|
true,
|
|
false,
|
|
{},
|
|
)
|
|
},
|
|
{},
|
|
UserName('alice@domain.tld'),
|
|
Uri.parse('http://domain.com/jmap'),
|
|
Uri.parse(
|
|
'http://domain.com/download/{accountId}/{blobId}/?type={type}&name={name}'),
|
|
Uri.parse('http://domain.com/upload/{accountId}'),
|
|
Uri.parse(
|
|
'http://domain.com/eventSource?types={types}&closeAfter={closeafter}&ping={ping}'),
|
|
State('2c9f1b12-b35a-43e6-9af2-0106fb53a943'),
|
|
);
|
|
} |