@fluxmail/provider-outlook 0.6.1 → 0.7.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.
@@ -9,12 +9,12 @@ export interface OutlookProviderOptions {
9
9
  }
10
10
  export declare const OUTLOOK_CAPABILITIES: Capabilities;
11
11
  export declare class OutlookProvider implements EmailProvider {
12
- readonly capabilities: Capabilities;
13
12
  private readonly accountId;
14
13
  private readonly tokenProvider;
15
14
  private readonly fetchImpl;
16
15
  private folderCache;
17
16
  constructor(options: OutlookProviderOptions);
17
+ get capabilities(): Capabilities;
18
18
  private url;
19
19
  private request;
20
20
  testConnection(): Promise<void>;
@@ -24,7 +24,7 @@ export declare class OutlookProvider implements EmailProvider {
24
24
  listLabels(): Promise<Label[]>;
25
25
  private resolveCategoryNames;
26
26
  private resolveFolder;
27
- listMessages(query: EmailQuery, page?: PageOpts): Promise<Page<Message>>;
27
+ listMessages(input: EmailQuery, page?: PageOpts): Promise<Page<Message>>;
28
28
  private rawMessage;
29
29
  getMessage(id: string, options?: GetMessageOpts): Promise<Message>;
30
30
  getThread(threadId: string): Promise<Thread>;
@@ -1 +1 @@
1
- {"version":3,"file":"outlookProvider.d.ts","sourceRoot":"","sources":["../src/outlookProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,MAAM,EAEX,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AAgDxB,MAAM,WAAW,4BAA4B;IAC3C,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,4BAA4B,CAAC;IAC5C,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,eAAO,MAAM,oBAAoB,EAAE,YAKlC,CAAC;AA4HF,qBAAa,eAAgB,YAAW,aAAa;IACnD,QAAQ,CAAC,YAAY,eAAwB;IAE7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,WAAW,CAA8D;gBAErE,OAAO,EAAE,sBAAsB;IAM3C,OAAO,CAAC,GAAG;YASG,OAAO;IAmDf,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAIvB,UAAU;YAWV,cAAc;IA4EtB,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAyBtB,oBAAoB;YAkBpB,aAAa;IAWrB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,QAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAmDpE,UAAU;IAQlB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IActE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclD,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,iBAAiB;YAQX,aAAa;YA8Cb,kBAAkB;IAmB1B,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BhD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBjE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAsB1D,IAAI;YAaJ,0BAA0B;IAelC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmF1D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAkBtD"}
1
+ {"version":3,"file":"outlookProvider.d.ts","sourceRoot":"","sources":["../src/outlookProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,MAAM,EAEX,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AAgDxB,MAAM,WAAW,4BAA4B;IAC3C,cAAc,CAAC,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,4BAA4B,CAAC;IAC5C,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,eAAO,MAAM,oBAAoB,EAAE,YAkBlC,CAAC;AAmJF,qBAAa,eAAgB,YAAW,aAAa;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,WAAW,CAA8D;gBAErE,OAAO,EAAE,sBAAsB;IAM3C,IAAI,YAAY,IAAI,YAAY,CAmB/B;IAED,OAAO,CAAC,GAAG;YASG,OAAO;IAmDf,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;YAIvB,UAAU;YAWV,cAAc;IA4EtB,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAyBtB,oBAAoB;YAkBpB,aAAa;IAWrB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,GAAE,QAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAuGpE,UAAU;IAQlB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IActE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclD,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,iBAAiB;YAQX,aAAa;YA8Cb,kBAAkB;IAmB1B,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BhD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3C,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBjE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAsB1D,IAAI;YAaJ,0BAA0B;IAelC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmF1D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAkBtD"}
@@ -1,4 +1,4 @@
1
- import { EmailError, replySubject, } from '@fluxmail/core';
1
+ import { EmailError, normalizeEmailQuery, replySubject, } from '@fluxmail/core';
2
2
  import { GraphHttpError, isRetryableGraphError, toEmailError } from './errors.js';
3
3
  import { parseGraphAttachment, parseGraphMessage, toGraphRecipients } from './parse.js';
4
4
  import { toGraphQuery } from './query.js';
@@ -44,6 +44,19 @@ export const OUTLOOK_CAPABILITIES = {
44
44
  labels: true,
45
45
  serverThreads: true,
46
46
  serverSearch: 'rich',
47
+ search: {
48
+ filters: ['folder', 'text', 'from', 'to', 'subject', 'read', 'starred', 'hasAttachment', 'after', 'before'],
49
+ folderRoles: {
50
+ inbox: 'available',
51
+ sent: 'available',
52
+ drafts: 'available',
53
+ archive: 'unknown',
54
+ spam: 'available',
55
+ trash: 'available',
56
+ all: 'available',
57
+ },
58
+ nativeQuery: { syntax: 'outlook-kql', availability: 'available' },
59
+ },
47
60
  snippets: true,
48
61
  };
49
62
  function sleep(ms) {
@@ -62,8 +75,12 @@ function bodyFor(draft) {
62
75
  return { contentType: 'HTML', content: draft.body.html };
63
76
  return { contentType: 'Text', content: draft.body.text ?? '' };
64
77
  }
65
- function encodePageToken(url, localFilter) {
66
- const payload = { url, ...(localFilter ? { localFilter } : {}) };
78
+ function encodePageToken(url, localFilter, offset = 0) {
79
+ const payload = {
80
+ url,
81
+ ...(localFilter ? { localFilter } : {}),
82
+ ...(offset ? { offset } : {}),
83
+ };
67
84
  return Buffer.from(JSON.stringify(payload)).toString('base64url');
68
85
  }
69
86
  function decodePageToken(token) {
@@ -84,19 +101,27 @@ function decodePageToken(token) {
84
101
  const url = new URL(payload.url);
85
102
  if (url.origin !== 'https://graph.microsoft.com' || !url.pathname.startsWith('/v1.0/'))
86
103
  throw new Error();
104
+ const offset = payload.offset;
105
+ if (offset !== undefined && (!Number.isInteger(offset) || offset < 0))
106
+ throw new Error();
87
107
  let localFilter;
88
108
  if (payload.localFilter !== undefined) {
89
109
  if (!payload.localFilter || typeof payload.localFilter !== 'object' || Array.isArray(payload.localFilter)) {
90
110
  throw new Error();
91
111
  }
92
112
  const entries = Object.entries(payload.localFilter);
93
- const booleanKeys = new Set(['unreadOnly', 'starredOnly', 'hasAttachment', 'allMailScope']);
94
- if (entries.some(([key, value]) => !booleanKeys.has(key) || value !== true)) {
113
+ const booleanKeys = new Set(['read', 'starred', 'hasAttachment', 'allMailScope']);
114
+ const dateKeys = new Set(['after', 'before']);
115
+ if (entries.some(([key, value]) => (!booleanKeys.has(key) || typeof value !== 'boolean') && (!dateKeys.has(key) || typeof value !== 'string'))) {
95
116
  throw new Error();
96
117
  }
97
118
  localFilter = payload.localFilter;
98
119
  }
99
- return { url: url.toString(), ...(localFilter ? { localFilter } : {}) };
120
+ return {
121
+ url: payload.url,
122
+ ...(localFilter ? { localFilter } : {}),
123
+ ...(typeof offset === 'number' && offset > 0 ? { offset } : {}),
124
+ };
100
125
  }
101
126
  catch {
102
127
  throw new EmailError('invalid_request', 'Invalid Microsoft Graph page token');
@@ -104,9 +129,11 @@ function decodePageToken(token) {
104
129
  }
105
130
  function localMessageFilter(query, allMailScope = false) {
106
131
  const filter = {
107
- ...(query.unreadOnly ? { unreadOnly: true } : {}),
108
- ...(query.starredOnly ? { starredOnly: true } : {}),
109
- ...(query.hasAttachment ? { hasAttachment: true } : {}),
132
+ ...(query.read !== undefined ? { read: query.read } : {}),
133
+ ...(query.starred !== undefined ? { starred: query.starred } : {}),
134
+ ...(query.hasAttachment !== undefined ? { hasAttachment: query.hasAttachment } : {}),
135
+ ...(query.after ? { after: query.after } : {}),
136
+ ...(query.before ? { before: query.before } : {}),
110
137
  ...(allMailScope ? { allMailScope: true } : {}),
111
138
  };
112
139
  return Object.keys(filter).length ? filter : undefined;
@@ -114,11 +141,14 @@ function localMessageFilter(query, allMailScope = false) {
114
141
  function matchesLocalMessageFilter(message, filter, allMailExcludedFolderIds) {
115
142
  if (!filter)
116
143
  return true;
117
- if (filter.unreadOnly && message.isRead !== false)
144
+ if (filter.read !== undefined && message.isRead !== filter.read)
118
145
  return false;
119
- if (filter.starredOnly && message.flag?.flagStatus !== 'flagged')
146
+ if (filter.starred !== undefined && (message.flag?.flagStatus === 'flagged') !== filter.starred)
120
147
  return false;
121
- if (filter.hasAttachment && message.hasAttachments !== true)
148
+ const receivedAt = message.receivedDateTime ?? message.sentDateTime ?? message.createdDateTime;
149
+ if (filter.after && (!receivedAt || receivedAt < `${filter.after}T00:00:00.000Z`))
150
+ return false;
151
+ if (filter.before && (!receivedAt || receivedAt >= `${filter.before}T00:00:00.000Z`))
122
152
  return false;
123
153
  if (filter.allMailScope && message.parentFolderId && allMailExcludedFolderIds.has(message.parentFolderId))
124
154
  return false;
@@ -138,7 +168,6 @@ function graphAttachment(input) {
138
168
  };
139
169
  }
140
170
  export class OutlookProvider {
141
- capabilities = OUTLOOK_CAPABILITIES;
142
171
  accountId;
143
172
  tokenProvider;
144
173
  fetchImpl;
@@ -148,6 +177,26 @@ export class OutlookProvider {
148
177
  this.tokenProvider = options.tokenProvider;
149
178
  this.fetchImpl = options.fetch ?? globalThis.fetch;
150
179
  }
180
+ get capabilities() {
181
+ const snapshot = this.folderCache?.snapshot;
182
+ return {
183
+ ...OUTLOOK_CAPABILITIES,
184
+ search: {
185
+ ...OUTLOOK_CAPABILITIES.search,
186
+ folderRoles: snapshot
187
+ ? {
188
+ inbox: snapshot.byRole.has('inbox') ? 'available' : 'unavailable',
189
+ sent: snapshot.byRole.has('sent') ? 'available' : 'unavailable',
190
+ drafts: snapshot.byRole.has('drafts') ? 'available' : 'unavailable',
191
+ archive: snapshot.byRole.has('archive') ? 'available' : 'unavailable',
192
+ spam: snapshot.byRole.has('spam') ? 'available' : 'unavailable',
193
+ trash: snapshot.byRole.has('trash') ? 'available' : 'unavailable',
194
+ all: 'available',
195
+ }
196
+ : OUTLOOK_CAPABILITIES.search.folderRoles,
197
+ },
198
+ };
199
+ }
151
200
  url(pathOrUrl) {
152
201
  if (!/^https?:/i.test(pathOrUrl))
153
202
  return `${GRAPH_ROOT}${pathOrUrl.startsWith('/') ? '' : '/'}${pathOrUrl}`;
@@ -155,7 +204,7 @@ export class OutlookProvider {
155
204
  if (url.origin !== 'https://graph.microsoft.com' || !url.pathname.startsWith('/v1.0/')) {
156
205
  throw new EmailError('invalid_request', 'Microsoft Graph returned an invalid continuation URL');
157
206
  }
158
- return url.toString();
207
+ return pathOrUrl;
159
208
  }
160
209
  async request(pathOrUrl, init = {}, options = {}) {
161
210
  const url = this.url(pathOrUrl);
@@ -334,11 +383,18 @@ export class OutlookProvider {
334
383
  throw new EmailError('not_found', `No Outlook folder named "${value}"`);
335
384
  return match;
336
385
  }
337
- async listMessages(query, page = {}) {
386
+ async listMessages(input, page = {}) {
387
+ const normalized = normalizeEmailQuery(input);
388
+ if (!normalized.success) {
389
+ throw new EmailError('invalid_request', normalized.diagnostics.map((item) => item.message).join(' '), {
390
+ diagnostics: normalized.diagnostics,
391
+ });
392
+ }
393
+ const query = normalized.query;
338
394
  const resolvedFolder = query.folder ? await this.resolveFolder(query.folder) : undefined;
339
395
  const starredFolder = resolvedFolder?.role === 'starred';
340
396
  const folder = resolvedFolder?.role === 'all' || starredFolder ? undefined : resolvedFolder;
341
- const normalizedQuery = { ...query, ...(starredFolder ? { starredOnly: true } : {}), folder: undefined };
397
+ const normalizedQuery = { ...query, ...(starredFolder ? { starred: true } : {}), folder: undefined };
342
398
  const graphQuery = toGraphQuery(normalizedQuery);
343
399
  const folders = await this.folderSnapshot();
344
400
  const allMailScope = !folder;
@@ -346,10 +402,12 @@ export class OutlookProvider {
346
402
  const allMailFilter = excludedRootFolderIds.map((id) => `parentFolderId ne '${escapeOData(id)}'`).join(' and ');
347
403
  let requestUrl;
348
404
  let localFilter;
405
+ let candidateOffset = 0;
349
406
  if (page.pageToken) {
350
407
  const decoded = decodePageToken(page.pageToken);
351
408
  requestUrl = decoded.url;
352
409
  localFilter = decoded.localFilter;
410
+ candidateOffset = decoded.offset ?? 0;
353
411
  }
354
412
  else {
355
413
  const base = folder ? `/me/mailFolders/${encodeURIComponent(folder.id)}/messages` : '/me/messages';
@@ -359,32 +417,75 @@ export class OutlookProvider {
359
417
  });
360
418
  if (graphQuery.search)
361
419
  params.set('$search', graphQuery.search);
362
- if (graphQuery.search) {
363
- localFilter = localMessageFilter(normalizedQuery, allMailScope);
364
- }
365
- else {
420
+ if (!graphQuery.search) {
366
421
  const filter = [graphQuery.filter, allMailFilter].filter(Boolean).join(' and ');
367
422
  if (filter)
368
423
  params.set('$filter', filter);
369
- if (allMailScope)
370
- localFilter = { allMailScope: true };
371
424
  }
425
+ localFilter = localMessageFilter(normalizedQuery, allMailScope);
372
426
  requestUrl = `${base}?${params}`;
373
427
  }
374
- const response = await this.request(requestUrl);
375
- const items = (response.value ?? [])
376
- .filter((raw) => matchesLocalMessageFilter(raw, localFilter, folders.allMailExcludedFolderIds))
377
- .map((raw) => parseGraphMessage(raw, {
378
- accountId: this.accountId,
379
- ...(raw.parentFolderId && folders.byId.get(raw.parentFolderId)
380
- ? { folder: folders.byId.get(raw.parentFolderId) }
381
- : {}),
382
- }));
428
+ const pageSize = Math.min(Math.max(page.pageSize ?? DEFAULT_PAGE_SIZE, 1), MAX_PAGE_SIZE);
429
+ const items = [];
430
+ let inspectedCandidates = 0;
431
+ let nextPageToken;
432
+ do {
433
+ const response = await this.request(requestUrl);
434
+ const candidates = response.value ?? [];
435
+ if (candidateOffset > candidates.length) {
436
+ throw new EmailError('invalid_request', 'Invalid Microsoft Graph page token');
437
+ }
438
+ let processedCandidates = 0;
439
+ for (const raw of candidates.slice(candidateOffset)) {
440
+ if (inspectedCandidates >= 1_000)
441
+ break;
442
+ inspectedCandidates += 1;
443
+ processedCandidates += 1;
444
+ if (!matchesLocalMessageFilter(raw, localFilter, folders.allMailExcludedFolderIds))
445
+ continue;
446
+ if (localFilter?.hasAttachment !== undefined) {
447
+ if (!raw.id)
448
+ continue;
449
+ const attachments = await this.collection(`/me/messages/${encodeURIComponent(raw.id)}/attachments?$select=${ATTACHMENT_METADATA_SELECT}`);
450
+ const hasAttachment = attachments.some((attachment) => attachment.isInline !== true);
451
+ if (hasAttachment !== localFilter.hasAttachment)
452
+ continue;
453
+ }
454
+ items.push(parseGraphMessage(raw, {
455
+ accountId: this.accountId,
456
+ ...(raw.parentFolderId && folders.byId.get(raw.parentFolderId)
457
+ ? { folder: folders.byId.get(raw.parentFolderId) }
458
+ : {}),
459
+ }));
460
+ if (items.length === pageSize)
461
+ break;
462
+ }
463
+ const next = response['@odata.nextLink'];
464
+ const consumedOffset = candidateOffset + processedCandidates;
465
+ if (items.length === pageSize || inspectedCandidates >= 1_000) {
466
+ nextPageToken =
467
+ consumedOffset < candidates.length
468
+ ? encodePageToken(this.url(requestUrl), localFilter, consumedOffset)
469
+ : next
470
+ ? encodePageToken(next, localFilter)
471
+ : undefined;
472
+ break;
473
+ }
474
+ if (!next)
475
+ break;
476
+ requestUrl = next;
477
+ candidateOffset = 0;
478
+ } while (inspectedCandidates < 1_000);
479
+ const providerLimited = Boolean(graphQuery.search) && items.length < pageSize && inspectedCandidates >= 1_000 && !nextPageToken;
383
480
  return {
384
481
  items,
385
- ...(response['@odata.nextLink']
386
- ? { nextPageToken: encodePageToken(response['@odata.nextLink'], localFilter) }
387
- : {}),
482
+ ...(nextPageToken ? { nextPageToken } : {}),
483
+ ...(localFilter ? { inspectedCandidates } : {}),
484
+ ...(items.length < pageSize && inspectedCandidates >= 1_000 && nextPageToken
485
+ ? { incomplete: true, incompleteReason: 'scan_limit' }
486
+ : providerLimited
487
+ ? { incomplete: true, incompleteReason: 'provider_limit' }
488
+ : {}),
388
489
  };
389
490
  }
390
491
  async rawMessage(id, includeHeaders = false) {
@@ -1 +1 @@
1
- {"version":3,"file":"outlookProvider.js","sourceRoot":"","sources":["../src/outlookProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outlookProvider.js","sourceRoot":"","sources":["../src/outlookProvider.ts"],"names":[],"mappings":"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"}
package/dist/query.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type EmailQuery } from '@fluxmail/core';
2
2
  /** Translate Fluxmail's structured query into Graph KQL and OData filters. */
3
- export declare function toGraphQuery(q: EmailQuery): {
3
+ export declare function toGraphQuery(input: EmailQuery): {
4
4
  search?: string;
5
5
  filter?: string;
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAgB7D,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBhF"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoBlF,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBpF"}
package/dist/query.js CHANGED
@@ -1,26 +1,27 @@
1
- import { EmailError } from '@fluxmail/core';
1
+ import { EmailError, normalizeEmailQuery } from '@fluxmail/core';
2
2
  function quoteKqlClause(value) {
3
3
  return `"${value.replaceAll('\\', '\\\\').replaceAll('"', '\\"')}"`;
4
4
  }
5
5
  function quoteKqlValue(value) {
6
6
  return `"${value.replaceAll('"', '""')}"`;
7
7
  }
8
- function dateOnly(value, field) {
9
- const date = new Date(value);
10
- if (Number.isNaN(date.valueOf()))
11
- throw new EmailError('invalid_request', `${field} must be a valid ISO date`);
12
- return date.toISOString().slice(0, 10);
8
+ function requireNormalized(query) {
9
+ const normalized = normalizeEmailQuery(query);
10
+ if (!normalized.success) {
11
+ throw new EmailError('invalid_request', normalized.diagnostics.map((item) => item.message).join(' '), {
12
+ diagnostics: normalized.diagnostics,
13
+ });
14
+ }
15
+ return normalized.query;
13
16
  }
14
17
  /** Translate Fluxmail's structured query into Graph KQL and OData filters. */
15
- export function toGraphQuery(q) {
16
- if (q.rawProviderQuery && q.text) {
17
- throw new EmailError('invalid_request', 'rawProviderQuery cannot be combined with text');
18
- }
18
+ export function toGraphQuery(input) {
19
+ const q = requireNormalized(input);
19
20
  const kql = [];
20
21
  if (q.rawProviderQuery)
21
22
  kql.push(q.rawProviderQuery);
22
23
  else if (q.text)
23
- kql.push(q.text);
24
+ kql.push(...q.text.split(' ').map(quoteKqlValue));
24
25
  if (q.from)
25
26
  kql.push(`from:${quoteKqlValue(q.from)}`);
26
27
  if (q.to)
@@ -28,15 +29,16 @@ export function toGraphQuery(q) {
28
29
  if (q.subject)
29
30
  kql.push(`subject:${quoteKqlValue(q.subject)}`);
30
31
  if (q.after)
31
- kql.push(`received>=${dateOnly(q.after, 'after')}`);
32
+ kql.push(`received>=${q.after}`);
32
33
  if (q.before)
33
- kql.push(`received<${dateOnly(q.before, 'before')}`);
34
+ kql.push(`received<${q.before}`);
34
35
  const filter = [];
35
- if (q.unreadOnly)
36
- filter.push('isRead eq false');
37
- if (q.starredOnly)
38
- filter.push("flag/flagStatus eq 'flagged'");
39
- if (q.hasAttachment)
36
+ if (q.read !== undefined)
37
+ filter.push(`isRead eq ${q.read}`);
38
+ if (q.starred !== undefined) {
39
+ filter.push(q.starred ? "flag/flagStatus eq 'flagged'" : "flag/flagStatus ne 'flagged'");
40
+ }
41
+ if (q.hasAttachment === true)
40
42
  filter.push('hasAttachments eq true');
41
43
  return {
42
44
  ...(kql.length ? { search: quoteKqlClause(kql.join(' AND ')) } : {}),
package/dist/query.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,gBAAgB,CAAC;AAE7D,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;AACtE,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,KAAa;IAC5C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,GAAG,KAAK,2BAA2B,CAAC,CAAC;IAC/G,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,CAAa;IACxC,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,+CAA+C,CAAC,CAAC;IAC3F,CAAC;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC,CAAC,gBAAgB;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;SAChD,IAAI,CAAC,CAAC,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,CAAC,IAAI;QAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,CAAC,EAAE;QAAE,GAAG,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,CAAC,OAAO;QAAE,GAAG,CAAC,IAAI,CAAC,WAAW,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,KAAK;QAAE,GAAG,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,CAAC,UAAU;QAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,WAAW;QAAE,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,aAAa;QAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAE3D,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluxmail/provider-outlook",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Microsoft Graph adapter for the Fluxmail unified email API",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "repository": {
@@ -25,7 +25,7 @@
25
25
  "access": "public"
26
26
  },
27
27
  "dependencies": {
28
- "@fluxmail/core": "0.6.1"
28
+ "@fluxmail/core": "0.7.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "^22.15.0"