@mcp-z/mcp-outlook 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +165 -0
- package/bin/server.js +5 -0
- package/dist/cjs/constants.d.cts +10 -0
- package/dist/cjs/constants.d.ts +10 -0
- package/dist/cjs/constants.js +35 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/email/composition/outlook-message-builder.d.cts +36 -0
- package/dist/cjs/email/composition/outlook-message-builder.d.ts +36 -0
- package/dist/cjs/email/composition/outlook-message-builder.js +56 -0
- package/dist/cjs/email/composition/outlook-message-builder.js.map +1 -0
- package/dist/cjs/email/messages/messages.d.cts +7 -0
- package/dist/cjs/email/messages/messages.d.ts +7 -0
- package/dist/cjs/email/messages/messages.js +61 -0
- package/dist/cjs/email/messages/messages.js.map +1 -0
- package/dist/cjs/email/parsing/header-parsing.d.cts +18 -0
- package/dist/cjs/email/parsing/header-parsing.d.ts +18 -0
- package/dist/cjs/email/parsing/header-parsing.js +42 -0
- package/dist/cjs/email/parsing/header-parsing.js.map +1 -0
- package/dist/cjs/email/parsing/message-extraction.d.cts +4 -0
- package/dist/cjs/email/parsing/message-extraction.d.ts +4 -0
- package/dist/cjs/email/parsing/message-extraction.js +192 -0
- package/dist/cjs/email/parsing/message-extraction.js.map +1 -0
- package/dist/cjs/email/parsing/message-mapping.d.cts +21 -0
- package/dist/cjs/email/parsing/message-mapping.d.ts +21 -0
- package/dist/cjs/email/parsing/message-mapping.js +47 -0
- package/dist/cjs/email/parsing/message-mapping.js.map +1 -0
- package/dist/cjs/email/querying/execute-query.d.cts +20 -0
- package/dist/cjs/email/querying/execute-query.d.ts +20 -0
- package/dist/cjs/email/querying/execute-query.js +268 -0
- package/dist/cjs/email/querying/execute-query.js.map +1 -0
- package/dist/cjs/email/querying/query-builder.d.cts +32 -0
- package/dist/cjs/email/querying/query-builder.d.ts +32 -0
- package/dist/cjs/email/querying/query-builder.js +528 -0
- package/dist/cjs/email/querying/query-builder.js.map +1 -0
- package/dist/cjs/email/querying/search-execution.d.cts +24 -0
- package/dist/cjs/email/querying/search-execution.d.ts +24 -0
- package/dist/cjs/email/querying/search-execution.js +261 -0
- package/dist/cjs/email/querying/search-execution.js.map +1 -0
- package/dist/cjs/index.d.cts +8 -0
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.js +314 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/lib/create-store.d.cts +2 -0
- package/dist/cjs/lib/create-store.d.ts +2 -0
- package/dist/cjs/lib/create-store.js +166 -0
- package/dist/cjs/lib/create-store.js.map +1 -0
- package/dist/cjs/lib/messages-to-row.d.cts +39 -0
- package/dist/cjs/lib/messages-to-row.d.ts +39 -0
- package/dist/cjs/lib/messages-to-row.js +177 -0
- package/dist/cjs/lib/messages-to-row.js.map +1 -0
- package/dist/cjs/lib/outlook/index.d.cts +7 -0
- package/dist/cjs/lib/outlook/index.d.ts +7 -0
- package/dist/cjs/lib/outlook/index.js +56 -0
- package/dist/cjs/lib/outlook/index.js.map +1 -0
- package/dist/cjs/lib/outlook/types.d.cts +22 -0
- package/dist/cjs/lib/outlook/types.d.ts +22 -0
- package/dist/cjs/lib/outlook/types.js +6 -0
- package/dist/cjs/lib/outlook/types.js.map +1 -0
- package/dist/cjs/mcp/index.d.cts +3 -0
- package/dist/cjs/mcp/index.d.ts +3 -0
- package/dist/cjs/mcp/index.js +66 -0
- package/dist/cjs/mcp/index.js.map +1 -0
- package/dist/cjs/mcp/prompts/draft-email.d.cts +30 -0
- package/dist/cjs/mcp/prompts/draft-email.d.ts +30 -0
- package/dist/cjs/mcp/prompts/draft-email.js +184 -0
- package/dist/cjs/mcp/prompts/draft-email.js.map +1 -0
- package/dist/cjs/mcp/prompts/index.d.cts +2 -0
- package/dist/cjs/mcp/prompts/index.d.ts +2 -0
- package/dist/cjs/mcp/prompts/index.js +26 -0
- package/dist/cjs/mcp/prompts/index.js.map +1 -0
- package/dist/cjs/mcp/prompts/query-syntax.d.cts +19 -0
- package/dist/cjs/mcp/prompts/query-syntax.d.ts +19 -0
- package/dist/cjs/mcp/prompts/query-syntax.js +169 -0
- package/dist/cjs/mcp/prompts/query-syntax.js.map +1 -0
- package/dist/cjs/mcp/resources/email.d.cts +11 -0
- package/dist/cjs/mcp/resources/email.d.ts +11 -0
- package/dist/cjs/mcp/resources/email.js +233 -0
- package/dist/cjs/mcp/resources/email.js.map +1 -0
- package/dist/cjs/mcp/resources/index.d.cts +1 -0
- package/dist/cjs/mcp/resources/index.d.ts +1 -0
- package/dist/cjs/mcp/resources/index.js +17 -0
- package/dist/cjs/mcp/resources/index.js.map +1 -0
- package/dist/cjs/mcp/tools/categories-list.d.cts +96 -0
- package/dist/cjs/mcp/tools/categories-list.d.ts +96 -0
- package/dist/cjs/mcp/tools/categories-list.js +252 -0
- package/dist/cjs/mcp/tools/categories-list.js.map +1 -0
- package/dist/cjs/mcp/tools/index.d.cts +11 -0
- package/dist/cjs/mcp/tools/index.d.ts +11 -0
- package/dist/cjs/mcp/tools/index.js +62 -0
- package/dist/cjs/mcp/tools/index.js.map +1 -0
- package/dist/cjs/mcp/tools/label-add.d.cts +44 -0
- package/dist/cjs/mcp/tools/label-add.d.ts +44 -0
- package/dist/cjs/mcp/tools/label-add.js +249 -0
- package/dist/cjs/mcp/tools/label-add.js.map +1 -0
- package/dist/cjs/mcp/tools/label-delete.d.cts +54 -0
- package/dist/cjs/mcp/tools/label-delete.d.ts +54 -0
- package/dist/cjs/mcp/tools/label-delete.js +497 -0
- package/dist/cjs/mcp/tools/label-delete.js.map +1 -0
- package/dist/cjs/mcp/tools/labels-list.d.cts +96 -0
- package/dist/cjs/mcp/tools/labels-list.d.ts +96 -0
- package/dist/cjs/mcp/tools/labels-list.js +252 -0
- package/dist/cjs/mcp/tools/labels-list.js.map +1 -0
- package/dist/cjs/mcp/tools/message-get.d.cts +110 -0
- package/dist/cjs/mcp/tools/message-get.d.ts +110 -0
- package/dist/cjs/mcp/tools/message-get.js +289 -0
- package/dist/cjs/mcp/tools/message-get.js.map +1 -0
- package/dist/cjs/mcp/tools/message-mark-read.d.cts +42 -0
- package/dist/cjs/mcp/tools/message-mark-read.d.ts +42 -0
- package/dist/cjs/mcp/tools/message-mark-read.js +254 -0
- package/dist/cjs/mcp/tools/message-mark-read.js.map +1 -0
- package/dist/cjs/mcp/tools/message-move-to-trash.d.cts +54 -0
- package/dist/cjs/mcp/tools/message-move-to-trash.d.ts +54 -0
- package/dist/cjs/mcp/tools/message-move-to-trash.js +460 -0
- package/dist/cjs/mcp/tools/message-move-to-trash.js.map +1 -0
- package/dist/cjs/mcp/tools/message-respond.d.cts +52 -0
- package/dist/cjs/mcp/tools/message-respond.d.ts +52 -0
- package/dist/cjs/mcp/tools/message-respond.js +263 -0
- package/dist/cjs/mcp/tools/message-respond.js.map +1 -0
- package/dist/cjs/mcp/tools/message-search.d.cts +138 -0
- package/dist/cjs/mcp/tools/message-search.d.ts +138 -0
- package/dist/cjs/mcp/tools/message-search.js +408 -0
- package/dist/cjs/mcp/tools/message-search.js.map +1 -0
- package/dist/cjs/mcp/tools/message-send.d.cts +66 -0
- package/dist/cjs/mcp/tools/message-send.d.ts +66 -0
- package/dist/cjs/mcp/tools/message-send.js +298 -0
- package/dist/cjs/mcp/tools/message-send.js.map +1 -0
- package/dist/cjs/mcp/tools/messages-export-csv.d.cts +72 -0
- package/dist/cjs/mcp/tools/messages-export-csv.d.ts +72 -0
- package/dist/cjs/mcp/tools/messages-export-csv.js +540 -0
- package/dist/cjs/mcp/tools/messages-export-csv.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/schemas/index.d.cts +2 -0
- package/dist/cjs/schemas/index.d.ts +2 -0
- package/dist/cjs/schemas/index.js +20 -0
- package/dist/cjs/schemas/index.js.map +1 -0
- package/dist/cjs/schemas/outlook-query-schema.d.cts +53 -0
- package/dist/cjs/schemas/outlook-query-schema.d.ts +53 -0
- package/dist/cjs/schemas/outlook-query-schema.js +115 -0
- package/dist/cjs/schemas/outlook-query-schema.js.map +1 -0
- package/dist/cjs/schemas/outlook-validation.d.cts +428 -0
- package/dist/cjs/schemas/outlook-validation.d.ts +428 -0
- package/dist/cjs/schemas/outlook-validation.js +420 -0
- package/dist/cjs/schemas/outlook-validation.js.map +1 -0
- package/dist/cjs/setup/config.d.cts +50 -0
- package/dist/cjs/setup/config.d.ts +50 -0
- package/dist/cjs/setup/config.js +217 -0
- package/dist/cjs/setup/config.js.map +1 -0
- package/dist/cjs/setup/http.d.cts +8 -0
- package/dist/cjs/setup/http.d.ts +8 -0
- package/dist/cjs/setup/http.js +267 -0
- package/dist/cjs/setup/http.js.map +1 -0
- package/dist/cjs/setup/index.d.cts +5 -0
- package/dist/cjs/setup/index.d.ts +5 -0
- package/dist/cjs/setup/index.js +46 -0
- package/dist/cjs/setup/index.js.map +1 -0
- package/dist/cjs/setup/oauth-microsoft.d.cts +43 -0
- package/dist/cjs/setup/oauth-microsoft.d.ts +43 -0
- package/dist/cjs/setup/oauth-microsoft.js +366 -0
- package/dist/cjs/setup/oauth-microsoft.js.map +1 -0
- package/dist/cjs/setup/runtime.d.cts +11 -0
- package/dist/cjs/setup/runtime.d.ts +11 -0
- package/dist/cjs/setup/runtime.js +489 -0
- package/dist/cjs/setup/runtime.js.map +1 -0
- package/dist/cjs/setup/stdio.d.cts +7 -0
- package/dist/cjs/setup/stdio.d.ts +7 -0
- package/dist/cjs/setup/stdio.js +239 -0
- package/dist/cjs/setup/stdio.js.map +1 -0
- package/dist/cjs/types.d.cts +54 -0
- package/dist/cjs/types.d.ts +54 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/constants.d.ts +10 -0
- package/dist/esm/constants.js +13 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/email/composition/outlook-message-builder.d.ts +36 -0
- package/dist/esm/email/composition/outlook-message-builder.js +46 -0
- package/dist/esm/email/composition/outlook-message-builder.js.map +1 -0
- package/dist/esm/email/messages/messages.d.ts +7 -0
- package/dist/esm/email/messages/messages.js +42 -0
- package/dist/esm/email/messages/messages.js.map +1 -0
- package/dist/esm/email/parsing/header-parsing.d.ts +18 -0
- package/dist/esm/email/parsing/header-parsing.js +18 -0
- package/dist/esm/email/parsing/header-parsing.js.map +1 -0
- package/dist/esm/email/parsing/message-extraction.d.ts +4 -0
- package/dist/esm/email/parsing/message-extraction.js +26 -0
- package/dist/esm/email/parsing/message-extraction.js.map +1 -0
- package/dist/esm/email/parsing/message-mapping.d.ts +21 -0
- package/dist/esm/email/parsing/message-mapping.js +35 -0
- package/dist/esm/email/parsing/message-mapping.js.map +1 -0
- package/dist/esm/email/querying/execute-query.d.ts +20 -0
- package/dist/esm/email/querying/execute-query.js +48 -0
- package/dist/esm/email/querying/execute-query.js.map +1 -0
- package/dist/esm/email/querying/query-builder.d.ts +32 -0
- package/dist/esm/email/querying/query-builder.js +424 -0
- package/dist/esm/email/querying/query-builder.js.map +1 -0
- package/dist/esm/email/querying/search-execution.d.ts +24 -0
- package/dist/esm/email/querying/search-execution.js +96 -0
- package/dist/esm/email/querying/search-execution.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +34 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lib/create-store.d.ts +2 -0
- package/dist/esm/lib/create-store.js +6 -0
- package/dist/esm/lib/create-store.js.map +1 -0
- package/dist/esm/lib/messages-to-row.d.ts +39 -0
- package/dist/esm/lib/messages-to-row.js +141 -0
- package/dist/esm/lib/messages-to-row.js.map +1 -0
- package/dist/esm/lib/outlook/index.d.ts +7 -0
- package/dist/esm/lib/outlook/index.js +7 -0
- package/dist/esm/lib/outlook/index.js.map +1 -0
- package/dist/esm/lib/outlook/types.d.ts +22 -0
- package/dist/esm/lib/outlook/types.js +2 -0
- package/dist/esm/lib/outlook/types.js.map +1 -0
- package/dist/esm/mcp/index.d.ts +3 -0
- package/dist/esm/mcp/index.js +6 -0
- package/dist/esm/mcp/index.js.map +1 -0
- package/dist/esm/mcp/prompts/draft-email.d.ts +30 -0
- package/dist/esm/mcp/prompts/draft-email.js +37 -0
- package/dist/esm/mcp/prompts/draft-email.js.map +1 -0
- package/dist/esm/mcp/prompts/index.d.ts +2 -0
- package/dist/esm/mcp/prompts/index.js +2 -0
- package/dist/esm/mcp/prompts/index.js.map +1 -0
- package/dist/esm/mcp/prompts/query-syntax.d.ts +19 -0
- package/dist/esm/mcp/prompts/query-syntax.js +75 -0
- package/dist/esm/mcp/prompts/query-syntax.js.map +1 -0
- package/dist/esm/mcp/resources/email.d.ts +11 -0
- package/dist/esm/mcp/resources/email.js +69 -0
- package/dist/esm/mcp/resources/email.js.map +1 -0
- package/dist/esm/mcp/resources/index.d.ts +1 -0
- package/dist/esm/mcp/resources/index.js +1 -0
- package/dist/esm/mcp/resources/index.js.map +1 -0
- package/dist/esm/mcp/tools/categories-list.d.ts +96 -0
- package/dist/esm/mcp/tools/categories-list.js +78 -0
- package/dist/esm/mcp/tools/categories-list.js.map +1 -0
- package/dist/esm/mcp/tools/index.d.ts +11 -0
- package/dist/esm/mcp/tools/index.js +11 -0
- package/dist/esm/mcp/tools/index.js.map +1 -0
- package/dist/esm/mcp/tools/label-add.d.ts +44 -0
- package/dist/esm/mcp/tools/label-add.js +75 -0
- package/dist/esm/mcp/tools/label-add.js.map +1 -0
- package/dist/esm/mcp/tools/label-delete.d.ts +54 -0
- package/dist/esm/mcp/tools/label-delete.js +166 -0
- package/dist/esm/mcp/tools/label-delete.js.map +1 -0
- package/dist/esm/mcp/tools/labels-list.d.ts +96 -0
- package/dist/esm/mcp/tools/labels-list.js +78 -0
- package/dist/esm/mcp/tools/labels-list.js.map +1 -0
- package/dist/esm/mcp/tools/message-get.d.ts +110 -0
- package/dist/esm/mcp/tools/message-get.js +117 -0
- package/dist/esm/mcp/tools/message-get.js.map +1 -0
- package/dist/esm/mcp/tools/message-mark-read.d.ts +42 -0
- package/dist/esm/mcp/tools/message-mark-read.js +80 -0
- package/dist/esm/mcp/tools/message-mark-read.js.map +1 -0
- package/dist/esm/mcp/tools/message-move-to-trash.d.ts +54 -0
- package/dist/esm/mcp/tools/message-move-to-trash.js +177 -0
- package/dist/esm/mcp/tools/message-move-to-trash.js.map +1 -0
- package/dist/esm/mcp/tools/message-respond.d.ts +52 -0
- package/dist/esm/mcp/tools/message-respond.js +89 -0
- package/dist/esm/mcp/tools/message-respond.js.map +1 -0
- package/dist/esm/mcp/tools/message-search.d.ts +138 -0
- package/dist/esm/mcp/tools/message-search.js +184 -0
- package/dist/esm/mcp/tools/message-search.js.map +1 -0
- package/dist/esm/mcp/tools/message-send.d.ts +66 -0
- package/dist/esm/mcp/tools/message-send.js +111 -0
- package/dist/esm/mcp/tools/message-send.js.map +1 -0
- package/dist/esm/mcp/tools/messages-export-csv.d.ts +72 -0
- package/dist/esm/mcp/tools/messages-export-csv.js +273 -0
- package/dist/esm/mcp/tools/messages-export-csv.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/schemas/index.d.ts +2 -0
- package/dist/esm/schemas/index.js +2 -0
- package/dist/esm/schemas/index.js.map +1 -0
- package/dist/esm/schemas/outlook-query-schema.d.ts +53 -0
- package/dist/esm/schemas/outlook-query-schema.js +63 -0
- package/dist/esm/schemas/outlook-query-schema.js.map +1 -0
- package/dist/esm/schemas/outlook-validation.d.ts +428 -0
- package/dist/esm/schemas/outlook-validation.js +388 -0
- package/dist/esm/schemas/outlook-validation.js.map +1 -0
- package/dist/esm/setup/config.d.ts +50 -0
- package/dist/esm/setup/config.js +180 -0
- package/dist/esm/setup/config.js.map +1 -0
- package/dist/esm/setup/http.d.ts +8 -0
- package/dist/esm/setup/http.js +61 -0
- package/dist/esm/setup/http.js.map +1 -0
- package/dist/esm/setup/index.d.ts +5 -0
- package/dist/esm/setup/index.js +5 -0
- package/dist/esm/setup/index.js.map +1 -0
- package/dist/esm/setup/oauth-microsoft.d.ts +43 -0
- package/dist/esm/setup/oauth-microsoft.js +169 -0
- package/dist/esm/setup/oauth-microsoft.js.map +1 -0
- package/dist/esm/setup/runtime.d.ts +11 -0
- package/dist/esm/setup/runtime.js +115 -0
- package/dist/esm/setup/runtime.js.map +1 -0
- package/dist/esm/setup/stdio.d.ts +7 -0
- package/dist/esm/setup/stdio.js +38 -0
- package/dist/esm/setup/stdio.js.map +1 -0
- package/dist/esm/types.d.ts +54 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +111 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "fetchOutlookMessage", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return fetchOutlookMessage;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _messagemapping = require("./message-mapping.js");
|
|
12
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
13
|
+
try {
|
|
14
|
+
var info = gen[key](arg);
|
|
15
|
+
var value = info.value;
|
|
16
|
+
} catch (error) {
|
|
17
|
+
reject(error);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (info.done) {
|
|
21
|
+
resolve(value);
|
|
22
|
+
} else {
|
|
23
|
+
Promise.resolve(value).then(_next, _throw);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function _async_to_generator(fn) {
|
|
27
|
+
return function() {
|
|
28
|
+
var self = this, args = arguments;
|
|
29
|
+
return new Promise(function(resolve, reject) {
|
|
30
|
+
var gen = fn.apply(self, args);
|
|
31
|
+
function _next(value) {
|
|
32
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
33
|
+
}
|
|
34
|
+
function _throw(err) {
|
|
35
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
36
|
+
}
|
|
37
|
+
_next(undefined);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function _ts_generator(thisArg, body) {
|
|
42
|
+
var f, y, t, _ = {
|
|
43
|
+
label: 0,
|
|
44
|
+
sent: function() {
|
|
45
|
+
if (t[0] & 1) throw t[1];
|
|
46
|
+
return t[1];
|
|
47
|
+
},
|
|
48
|
+
trys: [],
|
|
49
|
+
ops: []
|
|
50
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
51
|
+
return d(g, "next", {
|
|
52
|
+
value: verb(0)
|
|
53
|
+
}), d(g, "throw", {
|
|
54
|
+
value: verb(1)
|
|
55
|
+
}), d(g, "return", {
|
|
56
|
+
value: verb(2)
|
|
57
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
58
|
+
value: function() {
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
}), g;
|
|
62
|
+
function verb(n) {
|
|
63
|
+
return function(v) {
|
|
64
|
+
return step([
|
|
65
|
+
n,
|
|
66
|
+
v
|
|
67
|
+
]);
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function step(op) {
|
|
71
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
72
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
73
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
74
|
+
if (y = 0, t) op = [
|
|
75
|
+
op[0] & 2,
|
|
76
|
+
t.value
|
|
77
|
+
];
|
|
78
|
+
switch(op[0]){
|
|
79
|
+
case 0:
|
|
80
|
+
case 1:
|
|
81
|
+
t = op;
|
|
82
|
+
break;
|
|
83
|
+
case 4:
|
|
84
|
+
_.label++;
|
|
85
|
+
return {
|
|
86
|
+
value: op[1],
|
|
87
|
+
done: false
|
|
88
|
+
};
|
|
89
|
+
case 5:
|
|
90
|
+
_.label++;
|
|
91
|
+
y = op[1];
|
|
92
|
+
op = [
|
|
93
|
+
0
|
|
94
|
+
];
|
|
95
|
+
continue;
|
|
96
|
+
case 7:
|
|
97
|
+
op = _.ops.pop();
|
|
98
|
+
_.trys.pop();
|
|
99
|
+
continue;
|
|
100
|
+
default:
|
|
101
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
102
|
+
_ = 0;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
106
|
+
_.label = op[1];
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
110
|
+
_.label = t[1];
|
|
111
|
+
t = op;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
if (t && _.label < t[2]) {
|
|
115
|
+
_.label = t[2];
|
|
116
|
+
_.ops.push(op);
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
if (t[2]) _.ops.pop();
|
|
120
|
+
_.trys.pop();
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
op = body.call(thisArg, _);
|
|
124
|
+
} catch (e) {
|
|
125
|
+
op = [
|
|
126
|
+
6,
|
|
127
|
+
e
|
|
128
|
+
];
|
|
129
|
+
y = 0;
|
|
130
|
+
} finally{
|
|
131
|
+
f = t = 0;
|
|
132
|
+
}
|
|
133
|
+
if (op[0] & 5) throw op[1];
|
|
134
|
+
return {
|
|
135
|
+
value: op[0] ? op[1] : void 0,
|
|
136
|
+
done: true
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function fetchOutlookMessage(graph, id) {
|
|
141
|
+
return _async_to_generator(function() {
|
|
142
|
+
var selectFields, data, e, status;
|
|
143
|
+
return _ts_generator(this, function(_state) {
|
|
144
|
+
switch(_state.label){
|
|
145
|
+
case 0:
|
|
146
|
+
if (!id) throw new Error('fetchOutlookMessage: id required');
|
|
147
|
+
selectFields = [
|
|
148
|
+
'id',
|
|
149
|
+
'conversationId',
|
|
150
|
+
'receivedDateTime',
|
|
151
|
+
'subject',
|
|
152
|
+
'from',
|
|
153
|
+
'toRecipients',
|
|
154
|
+
'ccRecipients',
|
|
155
|
+
'bccRecipients',
|
|
156
|
+
'bodyPreview',
|
|
157
|
+
'categories',
|
|
158
|
+
'body'
|
|
159
|
+
];
|
|
160
|
+
_state.label = 1;
|
|
161
|
+
case 1:
|
|
162
|
+
_state.trys.push([
|
|
163
|
+
1,
|
|
164
|
+
3,
|
|
165
|
+
,
|
|
166
|
+
4
|
|
167
|
+
]);
|
|
168
|
+
return [
|
|
169
|
+
4,
|
|
170
|
+
graph.api("/me/messages/".concat(encodeURIComponent(id))).select(selectFields.join(',')).get()
|
|
171
|
+
];
|
|
172
|
+
case 2:
|
|
173
|
+
data = _state.sent();
|
|
174
|
+
return [
|
|
175
|
+
2,
|
|
176
|
+
(0, _messagemapping.mapOutlookMessage)(data, {
|
|
177
|
+
preferHtml: true
|
|
178
|
+
})
|
|
179
|
+
];
|
|
180
|
+
case 3:
|
|
181
|
+
e = _state.sent();
|
|
182
|
+
status = (e === null || e === void 0 ? void 0 : e.status) || (e === null || e === void 0 ? void 0 : e.code) || 'unknown';
|
|
183
|
+
throw new Error("outlook.fetchMessage: failed (".concat(status, ")"));
|
|
184
|
+
case 4:
|
|
185
|
+
return [
|
|
186
|
+
2
|
|
187
|
+
];
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
})();
|
|
191
|
+
}
|
|
192
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-outlook/src/email/parsing/message-extraction.ts"],"sourcesContent":["import type { Client } from '@microsoft/microsoft-graph-client';\nimport type { OutlookMessage } from '../../lib/outlook/types.js';\nimport { mapOutlookMessage, type NormalizedMessage } from './message-mapping.js';\n\n/** Fetch a single Outlook message. Throws on non-OK Graph responses. */\nexport async function fetchOutlookMessage(graph: Client, id: string): Promise<NormalizedMessage> {\n if (!id) throw new Error('fetchOutlookMessage: id required');\n const selectFields = ['id', 'conversationId', 'receivedDateTime', 'subject', 'from', 'toRecipients', 'ccRecipients', 'bccRecipients', 'bodyPreview', 'categories', 'body'];\n try {\n const data: unknown = await graph\n .api(`/me/messages/${encodeURIComponent(id)}`)\n .select(selectFields.join(','))\n .get();\n return mapOutlookMessage(data as OutlookMessage, { preferHtml: true });\n } catch (e: unknown) {\n const status = (e as Record<string, unknown>)?.status || (e as Record<string, unknown>)?.code || 'unknown';\n throw new Error(`outlook.fetchMessage: failed (${status})`);\n }\n}\n"],"names":["fetchOutlookMessage","graph","id","selectFields","data","e","status","Error","api","encodeURIComponent","select","join","get","mapOutlookMessage","preferHtml","code"],"mappings":";;;;+BAKsBA;;;eAAAA;;;8BAHoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGnD,SAAeA,oBAAoBC,KAAa,EAAEC,EAAU;;YAE3DC,cAEEC,MAKCC,GACDC;;;;oBATR,IAAI,CAACJ,IAAI,MAAM,IAAIK,MAAM;oBACnBJ;wBAAgB;wBAAM;wBAAkB;wBAAoB;wBAAW;wBAAQ;wBAAgB;wBAAgB;wBAAiB;wBAAe;wBAAc;;;;;;;;;;oBAE3I;;wBAAMF,MACzBO,GAAG,CAAC,AAAC,gBAAsC,OAAvBC,mBAAmBP,MACvCQ,MAAM,CAACP,aAAaQ,IAAI,CAAC,MACzBC,GAAG;;;oBAHAR,OAAgB;oBAItB;;wBAAOS,IAAAA,iCAAiB,EAACT,MAAwB;4BAAEU,YAAY;wBAAK;;;oBAC7DT;oBACDC,SAAS,CAACD,cAAAA,wBAAD,AAACA,EAA+BC,MAAM,MAAKD,cAAAA,wBAAD,AAACA,EAA+BU,IAAI,KAAI;oBACjG,MAAM,IAAIR,MAAM,AAAC,iCAAuC,OAAPD,QAAO;;;;;;;IAE5D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { OutlookMessage } from '../../lib/outlook/types.js';
|
|
2
|
+
export interface NormalizedAddress {
|
|
3
|
+
address?: string | undefined;
|
|
4
|
+
name?: string | undefined;
|
|
5
|
+
}
|
|
6
|
+
export interface NormalizedMessage {
|
|
7
|
+
id: string;
|
|
8
|
+
threadId?: string;
|
|
9
|
+
date?: string;
|
|
10
|
+
subject?: string;
|
|
11
|
+
from?: NormalizedAddress;
|
|
12
|
+
to?: string[];
|
|
13
|
+
cc?: string[];
|
|
14
|
+
bcc?: string[];
|
|
15
|
+
snippet?: string;
|
|
16
|
+
labels?: string[];
|
|
17
|
+
body?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function mapOutlookMessage(msg: OutlookMessage, opts?: {
|
|
20
|
+
preferHtml?: boolean;
|
|
21
|
+
}): NormalizedMessage;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { OutlookMessage } from '../../lib/outlook/types.js';
|
|
2
|
+
export interface NormalizedAddress {
|
|
3
|
+
address?: string | undefined;
|
|
4
|
+
name?: string | undefined;
|
|
5
|
+
}
|
|
6
|
+
export interface NormalizedMessage {
|
|
7
|
+
id: string;
|
|
8
|
+
threadId?: string;
|
|
9
|
+
date?: string;
|
|
10
|
+
subject?: string;
|
|
11
|
+
from?: NormalizedAddress;
|
|
12
|
+
to?: string[];
|
|
13
|
+
cc?: string[];
|
|
14
|
+
bcc?: string[];
|
|
15
|
+
snippet?: string;
|
|
16
|
+
labels?: string[];
|
|
17
|
+
body?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function mapOutlookMessage(msg: OutlookMessage, opts?: {
|
|
20
|
+
preferHtml?: boolean;
|
|
21
|
+
}): NormalizedMessage;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "mapOutlookMessage", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return mapOutlookMessage;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _email = require("@mcp-z/email");
|
|
12
|
+
var _headerparsing = require("./header-parsing.js");
|
|
13
|
+
function mapOutlookMessage(msg) {
|
|
14
|
+
var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
15
|
+
var _ref, _ref1, _msg_id, _toIsoUtc, _msg_toRecipients, _msg_ccRecipients, _msg_bccRecipients;
|
|
16
|
+
var _msg_from, _msg_body, _msg_body1;
|
|
17
|
+
var fromAddr = (_msg_from = msg.from) === null || _msg_from === void 0 ? void 0 : _msg_from.emailAddress;
|
|
18
|
+
var bodyContent = (_ref = (_msg_body = msg.body) === null || _msg_body === void 0 ? void 0 : _msg_body.content) !== null && _ref !== void 0 ? _ref : '';
|
|
19
|
+
var bodyType = String((_ref1 = (_msg_body1 = msg.body) === null || _msg_body1 === void 0 ? void 0 : _msg_body1.contentType) !== null && _ref1 !== void 0 ? _ref1 : '').toLowerCase();
|
|
20
|
+
var body;
|
|
21
|
+
if (bodyContent) {
|
|
22
|
+
if (opts.preferHtml && bodyType === 'html') body = (0, _email.stripHtml)(bodyContent);
|
|
23
|
+
else body = bodyType === 'html' ? (0, _email.stripHtml)(bodyContent) : String(bodyContent);
|
|
24
|
+
}
|
|
25
|
+
var out = {
|
|
26
|
+
id: (_msg_id = msg.id) !== null && _msg_id !== void 0 ? _msg_id : ''
|
|
27
|
+
};
|
|
28
|
+
if (msg.conversationId) out.threadId = String(msg.conversationId);
|
|
29
|
+
if (msg.receivedDateTime) out.date = (_toIsoUtc = (0, _email.normalizeDateToISO)(msg.receivedDateTime)) !== null && _toIsoUtc !== void 0 ? _toIsoUtc : String(msg.receivedDateTime);
|
|
30
|
+
if (msg.subject) out.subject = String(msg.subject);
|
|
31
|
+
var fromObj = fromAddr ? {
|
|
32
|
+
address: fromAddr.address || undefined,
|
|
33
|
+
name: fromAddr.name || undefined
|
|
34
|
+
} : undefined;
|
|
35
|
+
if (fromObj && (fromObj.address || fromObj.name)) out.from = fromObj;
|
|
36
|
+
var toList = (0, _headerparsing.extractEmailsFromRecipients)((_msg_toRecipients = msg.toRecipients) !== null && _msg_toRecipients !== void 0 ? _msg_toRecipients : []);
|
|
37
|
+
if (Array.isArray(toList) && toList.length) out.to = toList;
|
|
38
|
+
var ccList = (0, _headerparsing.extractEmailsFromRecipients)((_msg_ccRecipients = msg.ccRecipients) !== null && _msg_ccRecipients !== void 0 ? _msg_ccRecipients : []);
|
|
39
|
+
if (Array.isArray(ccList) && ccList.length) out.cc = ccList;
|
|
40
|
+
var bccList = (0, _headerparsing.extractEmailsFromRecipients)((_msg_bccRecipients = msg.bccRecipients) !== null && _msg_bccRecipients !== void 0 ? _msg_bccRecipients : []);
|
|
41
|
+
if (Array.isArray(bccList) && bccList.length) out.bcc = bccList;
|
|
42
|
+
if (msg.bodyPreview) out.snippet = String(msg.bodyPreview);
|
|
43
|
+
if (Array.isArray(msg.categories) && msg.categories.length) out.labels = msg.categories.map(String);
|
|
44
|
+
if (body) out.body = body;
|
|
45
|
+
return out;
|
|
46
|
+
}
|
|
47
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-outlook/src/email/parsing/message-mapping.ts"],"sourcesContent":["import { stripHtml, normalizeDateToISO as toIsoUtc } from '@mcp-z/email';\nimport type { OutlookMessage } from '../../lib/outlook/types.js';\nimport { extractEmailsFromRecipients } from './header-parsing.js';\n\nexport interface NormalizedAddress {\n address?: string | undefined;\n name?: string | undefined;\n}\nexport interface NormalizedMessage {\n id: string;\n threadId?: string;\n date?: string;\n subject?: string;\n from?: NormalizedAddress;\n to?: string[];\n cc?: string[];\n bcc?: string[];\n snippet?: string;\n labels?: string[];\n body?: string;\n}\n\nexport function mapOutlookMessage(msg: OutlookMessage, opts: { preferHtml?: boolean } = {}): NormalizedMessage {\n const fromAddr = msg.from?.emailAddress;\n const bodyContent = msg.body?.content ?? '';\n const bodyType = String(msg.body?.contentType ?? '').toLowerCase();\n\n let body: string | undefined;\n if (bodyContent) {\n if (opts.preferHtml && bodyType === 'html') body = stripHtml(bodyContent);\n else body = bodyType === 'html' ? stripHtml(bodyContent) : String(bodyContent);\n }\n\n const out: NormalizedMessage = { id: msg.id ?? '' };\n\n if (msg.conversationId) out.threadId = String(msg.conversationId);\n if (msg.receivedDateTime) out.date = toIsoUtc(msg.receivedDateTime) ?? String(msg.receivedDateTime);\n if (msg.subject) out.subject = String(msg.subject);\n\n const fromObj = fromAddr ? { address: fromAddr.address || undefined, name: fromAddr.name || undefined } : undefined;\n if (fromObj && (fromObj.address || fromObj.name)) out.from = fromObj;\n\n const toList = extractEmailsFromRecipients(msg.toRecipients ?? []);\n if (Array.isArray(toList) && toList.length) out.to = toList;\n\n const ccList = extractEmailsFromRecipients(msg.ccRecipients ?? []);\n if (Array.isArray(ccList) && ccList.length) out.cc = ccList;\n\n const bccList = extractEmailsFromRecipients(msg.bccRecipients ?? []);\n if (Array.isArray(bccList) && bccList.length) out.bcc = bccList;\n\n if (msg.bodyPreview) out.snippet = String(msg.bodyPreview);\n if (Array.isArray(msg.categories) && msg.categories.length) out.labels = msg.categories.map(String);\n if (body) out.body = body;\n\n return out;\n}\n"],"names":["mapOutlookMessage","msg","opts","toIsoUtc","fromAddr","from","emailAddress","bodyContent","body","content","bodyType","String","contentType","toLowerCase","preferHtml","stripHtml","out","id","conversationId","threadId","receivedDateTime","date","subject","fromObj","address","undefined","name","toList","extractEmailsFromRecipients","toRecipients","Array","isArray","length","to","ccList","ccRecipients","cc","bccList","bccRecipients","bcc","bodyPreview","snippet","categories","labels","map"],"mappings":";;;;+BAsBgBA;;;eAAAA;;;qBAtB0C;6BAEd;AAoBrC,SAASA,kBAAkBC,GAAmB;QAAEC,OAAAA,iEAAiC,CAAC;qBAWlDD,SAGAE,WAMMF,mBAGAA,mBAGCA;QAzB3BA,WACGA,WACIA;IAFxB,IAAMG,YAAWH,YAAAA,IAAII,IAAI,cAARJ,gCAAAA,UAAUK,YAAY;IACvC,IAAMC,uBAAcN,YAAAA,IAAIO,IAAI,cAARP,gCAAAA,UAAUQ,OAAO,uCAAI;IACzC,IAAMC,WAAWC,iBAAOV,aAAAA,IAAIO,IAAI,cAARP,iCAAAA,WAAUW,WAAW,yCAAI,IAAIC,WAAW;IAEhE,IAAIL;IACJ,IAAID,aAAa;QACf,IAAIL,KAAKY,UAAU,IAAIJ,aAAa,QAAQF,OAAOO,IAAAA,gBAAS,EAACR;aACxDC,OAAOE,aAAa,SAASK,IAAAA,gBAAS,EAACR,eAAeI,OAAOJ;IACpE;IAEA,IAAMS,MAAyB;QAAEC,EAAE,GAAEhB,UAAAA,IAAIgB,EAAE,cAANhB,qBAAAA,UAAU;IAAG;IAElD,IAAIA,IAAIiB,cAAc,EAAEF,IAAIG,QAAQ,GAAGR,OAAOV,IAAIiB,cAAc;IAChE,IAAIjB,IAAImB,gBAAgB,EAAEJ,IAAIK,IAAI,IAAGlB,YAAAA,IAAAA,yBAAQ,EAACF,IAAImB,gBAAgB,eAA7BjB,uBAAAA,YAAkCQ,OAAOV,IAAImB,gBAAgB;IAClG,IAAInB,IAAIqB,OAAO,EAAEN,IAAIM,OAAO,GAAGX,OAAOV,IAAIqB,OAAO;IAEjD,IAAMC,UAAUnB,WAAW;QAAEoB,SAASpB,SAASoB,OAAO,IAAIC;QAAWC,MAAMtB,SAASsB,IAAI,IAAID;IAAU,IAAIA;IAC1G,IAAIF,WAAYA,CAAAA,QAAQC,OAAO,IAAID,QAAQG,IAAI,AAAD,GAAIV,IAAIX,IAAI,GAAGkB;IAE7D,IAAMI,SAASC,IAAAA,0CAA2B,GAAC3B,oBAAAA,IAAI4B,YAAY,cAAhB5B,+BAAAA,oBAAoB,EAAE;IACjE,IAAI6B,MAAMC,OAAO,CAACJ,WAAWA,OAAOK,MAAM,EAAEhB,IAAIiB,EAAE,GAAGN;IAErD,IAAMO,SAASN,IAAAA,0CAA2B,GAAC3B,oBAAAA,IAAIkC,YAAY,cAAhBlC,+BAAAA,oBAAoB,EAAE;IACjE,IAAI6B,MAAMC,OAAO,CAACG,WAAWA,OAAOF,MAAM,EAAEhB,IAAIoB,EAAE,GAAGF;IAErD,IAAMG,UAAUT,IAAAA,0CAA2B,GAAC3B,qBAAAA,IAAIqC,aAAa,cAAjBrC,gCAAAA,qBAAqB,EAAE;IACnE,IAAI6B,MAAMC,OAAO,CAACM,YAAYA,QAAQL,MAAM,EAAEhB,IAAIuB,GAAG,GAAGF;IAExD,IAAIpC,IAAIuC,WAAW,EAAExB,IAAIyB,OAAO,GAAG9B,OAAOV,IAAIuC,WAAW;IACzD,IAAIV,MAAMC,OAAO,CAAC9B,IAAIyC,UAAU,KAAKzC,IAAIyC,UAAU,CAACV,MAAM,EAAEhB,IAAI2B,MAAM,GAAG1C,IAAIyC,UAAU,CAACE,GAAG,CAACjC;IAC5F,IAAIH,MAAMQ,IAAIR,IAAI,GAAGA;IAErB,OAAOQ;AACT"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ExecutionResult } from '@mcp-z/email';
|
|
2
|
+
import type { Client } from '@microsoft/microsoft-graph-client';
|
|
3
|
+
import type { OutlookQuery as QueryNode } from '../../schemas/outlook-query-schema.js';
|
|
4
|
+
import type { Logger } from '../../types.js';
|
|
5
|
+
export interface ExecuteQueryOptions {
|
|
6
|
+
readonly logger: Logger;
|
|
7
|
+
readonly limit?: number;
|
|
8
|
+
readonly includeBody?: boolean;
|
|
9
|
+
readonly maxPages?: number | null;
|
|
10
|
+
readonly pageSize?: number;
|
|
11
|
+
readonly pageToken?: string;
|
|
12
|
+
readonly timezone?: string;
|
|
13
|
+
readonly abortSignal?: AbortSignal;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Execute an Outlook query with direct, single-attempt execution.
|
|
17
|
+
* No planning, no fallbacks, no retries.
|
|
18
|
+
* Microsoft Graph errors are returned directly to the caller for actionable feedback.
|
|
19
|
+
*/
|
|
20
|
+
export declare function executeQuery<T>(graph: Client, query: QueryNode | undefined, options: ExecuteQueryOptions, transform: (item: unknown) => T): Promise<ExecutionResult<T>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ExecutionResult } from '@mcp-z/email';
|
|
2
|
+
import type { Client } from '@microsoft/microsoft-graph-client';
|
|
3
|
+
import type { OutlookQuery as QueryNode } from '../../schemas/outlook-query-schema.js';
|
|
4
|
+
import type { Logger } from '../../types.js';
|
|
5
|
+
export interface ExecuteQueryOptions {
|
|
6
|
+
readonly logger: Logger;
|
|
7
|
+
readonly limit?: number;
|
|
8
|
+
readonly includeBody?: boolean;
|
|
9
|
+
readonly maxPages?: number | null;
|
|
10
|
+
readonly pageSize?: number;
|
|
11
|
+
readonly pageToken?: string;
|
|
12
|
+
readonly timezone?: string;
|
|
13
|
+
readonly abortSignal?: AbortSignal;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Execute an Outlook query with direct, single-attempt execution.
|
|
17
|
+
* No planning, no fallbacks, no retries.
|
|
18
|
+
* Microsoft Graph errors are returned directly to the caller for actionable feedback.
|
|
19
|
+
*/
|
|
20
|
+
export declare function executeQuery<T>(graph: Client, query: QueryNode | undefined, options: ExecuteQueryOptions, transform: (item: unknown) => T): Promise<ExecutionResult<T>>;
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "executeQuery", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return executeQuery;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _searchexecution = require("./search-execution.js");
|
|
12
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
13
|
+
try {
|
|
14
|
+
var info = gen[key](arg);
|
|
15
|
+
var value = info.value;
|
|
16
|
+
} catch (error) {
|
|
17
|
+
reject(error);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (info.done) {
|
|
21
|
+
resolve(value);
|
|
22
|
+
} else {
|
|
23
|
+
Promise.resolve(value).then(_next, _throw);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function _async_to_generator(fn) {
|
|
27
|
+
return function() {
|
|
28
|
+
var self = this, args = arguments;
|
|
29
|
+
return new Promise(function(resolve, reject) {
|
|
30
|
+
var gen = fn.apply(self, args);
|
|
31
|
+
function _next(value) {
|
|
32
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
33
|
+
}
|
|
34
|
+
function _throw(err) {
|
|
35
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
36
|
+
}
|
|
37
|
+
_next(undefined);
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function _define_property(obj, key, value) {
|
|
42
|
+
if (key in obj) {
|
|
43
|
+
Object.defineProperty(obj, key, {
|
|
44
|
+
value: value,
|
|
45
|
+
enumerable: true,
|
|
46
|
+
configurable: true,
|
|
47
|
+
writable: true
|
|
48
|
+
});
|
|
49
|
+
} else {
|
|
50
|
+
obj[key] = value;
|
|
51
|
+
}
|
|
52
|
+
return obj;
|
|
53
|
+
}
|
|
54
|
+
function _instanceof(left, right) {
|
|
55
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
56
|
+
return !!right[Symbol.hasInstance](left);
|
|
57
|
+
} else {
|
|
58
|
+
return left instanceof right;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function _object_spread(target) {
|
|
62
|
+
for(var i = 1; i < arguments.length; i++){
|
|
63
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
64
|
+
var ownKeys = Object.keys(source);
|
|
65
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
66
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
67
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
ownKeys.forEach(function(key) {
|
|
71
|
+
_define_property(target, key, source[key]);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return target;
|
|
75
|
+
}
|
|
76
|
+
function ownKeys(object, enumerableOnly) {
|
|
77
|
+
var keys = Object.keys(object);
|
|
78
|
+
if (Object.getOwnPropertySymbols) {
|
|
79
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
80
|
+
if (enumerableOnly) {
|
|
81
|
+
symbols = symbols.filter(function(sym) {
|
|
82
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
keys.push.apply(keys, symbols);
|
|
86
|
+
}
|
|
87
|
+
return keys;
|
|
88
|
+
}
|
|
89
|
+
function _object_spread_props(target, source) {
|
|
90
|
+
source = source != null ? source : {};
|
|
91
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
92
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
93
|
+
} else {
|
|
94
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
95
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return target;
|
|
99
|
+
}
|
|
100
|
+
function _ts_generator(thisArg, body) {
|
|
101
|
+
var f, y, t, _ = {
|
|
102
|
+
label: 0,
|
|
103
|
+
sent: function() {
|
|
104
|
+
if (t[0] & 1) throw t[1];
|
|
105
|
+
return t[1];
|
|
106
|
+
},
|
|
107
|
+
trys: [],
|
|
108
|
+
ops: []
|
|
109
|
+
}, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
|
|
110
|
+
return d(g, "next", {
|
|
111
|
+
value: verb(0)
|
|
112
|
+
}), d(g, "throw", {
|
|
113
|
+
value: verb(1)
|
|
114
|
+
}), d(g, "return", {
|
|
115
|
+
value: verb(2)
|
|
116
|
+
}), typeof Symbol === "function" && d(g, Symbol.iterator, {
|
|
117
|
+
value: function() {
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
}), g;
|
|
121
|
+
function verb(n) {
|
|
122
|
+
return function(v) {
|
|
123
|
+
return step([
|
|
124
|
+
n,
|
|
125
|
+
v
|
|
126
|
+
]);
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
function step(op) {
|
|
130
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
131
|
+
while(g && (g = 0, op[0] && (_ = 0)), _)try {
|
|
132
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
133
|
+
if (y = 0, t) op = [
|
|
134
|
+
op[0] & 2,
|
|
135
|
+
t.value
|
|
136
|
+
];
|
|
137
|
+
switch(op[0]){
|
|
138
|
+
case 0:
|
|
139
|
+
case 1:
|
|
140
|
+
t = op;
|
|
141
|
+
break;
|
|
142
|
+
case 4:
|
|
143
|
+
_.label++;
|
|
144
|
+
return {
|
|
145
|
+
value: op[1],
|
|
146
|
+
done: false
|
|
147
|
+
};
|
|
148
|
+
case 5:
|
|
149
|
+
_.label++;
|
|
150
|
+
y = op[1];
|
|
151
|
+
op = [
|
|
152
|
+
0
|
|
153
|
+
];
|
|
154
|
+
continue;
|
|
155
|
+
case 7:
|
|
156
|
+
op = _.ops.pop();
|
|
157
|
+
_.trys.pop();
|
|
158
|
+
continue;
|
|
159
|
+
default:
|
|
160
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
161
|
+
_ = 0;
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
165
|
+
_.label = op[1];
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
169
|
+
_.label = t[1];
|
|
170
|
+
t = op;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
if (t && _.label < t[2]) {
|
|
174
|
+
_.label = t[2];
|
|
175
|
+
_.ops.push(op);
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
if (t[2]) _.ops.pop();
|
|
179
|
+
_.trys.pop();
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
op = body.call(thisArg, _);
|
|
183
|
+
} catch (e) {
|
|
184
|
+
op = [
|
|
185
|
+
6,
|
|
186
|
+
e
|
|
187
|
+
];
|
|
188
|
+
y = 0;
|
|
189
|
+
} finally{
|
|
190
|
+
f = t = 0;
|
|
191
|
+
}
|
|
192
|
+
if (op[0] & 5) throw op[1];
|
|
193
|
+
return {
|
|
194
|
+
value: op[0] ? op[1] : void 0,
|
|
195
|
+
done: true
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function executeQuery(graph, query, options, transform) {
|
|
200
|
+
return _async_to_generator(function() {
|
|
201
|
+
var logger, limit, includeBody, maxPages, pageSize, pageToken, result, transformedResults, error;
|
|
202
|
+
return _ts_generator(this, function(_state) {
|
|
203
|
+
switch(_state.label){
|
|
204
|
+
case 0:
|
|
205
|
+
logger = options.logger, limit = options.limit, includeBody = options.includeBody, maxPages = options.maxPages, pageSize = options.pageSize, pageToken = options.pageToken;
|
|
206
|
+
// Single execution - direct query to Microsoft Graph API
|
|
207
|
+
logger.info('executeQuery: executing direct Outlook query');
|
|
208
|
+
_state.label = 1;
|
|
209
|
+
case 1:
|
|
210
|
+
_state.trys.push([
|
|
211
|
+
1,
|
|
212
|
+
3,
|
|
213
|
+
,
|
|
214
|
+
4
|
|
215
|
+
]);
|
|
216
|
+
return [
|
|
217
|
+
4,
|
|
218
|
+
(0, _searchexecution.searchMessages)(graph, _object_spread_props(_object_spread({}, query !== undefined && {
|
|
219
|
+
query: query
|
|
220
|
+
}), {
|
|
221
|
+
limit: limit !== null && limit !== void 0 ? limit : 50,
|
|
222
|
+
includeBody: includeBody !== null && includeBody !== void 0 ? includeBody : false,
|
|
223
|
+
maxPages: maxPages !== null && maxPages !== void 0 ? maxPages : null,
|
|
224
|
+
pageSize: pageSize !== null && pageSize !== void 0 ? pageSize : 50,
|
|
225
|
+
pageToken: pageToken !== null && pageToken !== void 0 ? pageToken : undefined,
|
|
226
|
+
logger: logger
|
|
227
|
+
}))
|
|
228
|
+
];
|
|
229
|
+
case 2:
|
|
230
|
+
result = _state.sent();
|
|
231
|
+
// Transform directly - if Microsoft Graph returns invalid data, fail loud
|
|
232
|
+
transformedResults = result.messages.map(function(item, index) {
|
|
233
|
+
try {
|
|
234
|
+
return transform(item);
|
|
235
|
+
} catch (transformError) {
|
|
236
|
+
logger.error("Transform function failed for item ".concat(index), {
|
|
237
|
+
itemIndex: index,
|
|
238
|
+
error: _instanceof(transformError, Error) ? transformError.message : String(transformError)
|
|
239
|
+
});
|
|
240
|
+
throw new Error("Transform failed at item ".concat(index, ": ").concat(transformError));
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
logger.info("executeQuery: succeeded with ".concat(transformedResults.length, " results"));
|
|
244
|
+
return [
|
|
245
|
+
2,
|
|
246
|
+
{
|
|
247
|
+
success: true,
|
|
248
|
+
items: transformedResults,
|
|
249
|
+
metadata: {
|
|
250
|
+
nextPageToken: result.nextPageToken,
|
|
251
|
+
totalFetched: result.messages.length
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
];
|
|
255
|
+
case 3:
|
|
256
|
+
error = _state.sent();
|
|
257
|
+
// Re-throw errors directly - no fallback logic
|
|
258
|
+
logger.error('executeQuery: failed', error);
|
|
259
|
+
throw error;
|
|
260
|
+
case 4:
|
|
261
|
+
return [
|
|
262
|
+
2
|
|
263
|
+
];
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
})();
|
|
267
|
+
}
|
|
268
|
+
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-outlook/src/email/querying/execute-query.ts"],"sourcesContent":["import type { ExecutionResult } from '@mcp-z/email';\nimport type { Client } from '@microsoft/microsoft-graph-client';\nimport type { OutlookQuery as QueryNode } from '../../schemas/outlook-query-schema.js';\nimport type { Logger } from '../../types.js';\nimport { searchMessages } from './search-execution.js';\n\nexport interface ExecuteQueryOptions {\n readonly logger: Logger;\n readonly limit?: number;\n readonly includeBody?: boolean;\n readonly maxPages?: number | null;\n readonly pageSize?: number;\n readonly pageToken?: string;\n readonly timezone?: string;\n readonly abortSignal?: AbortSignal;\n}\n\n/**\n * Execute an Outlook query with direct, single-attempt execution.\n * No planning, no fallbacks, no retries.\n * Microsoft Graph errors are returned directly to the caller for actionable feedback.\n */\nexport async function executeQuery<T>(graph: Client, query: QueryNode | undefined, options: ExecuteQueryOptions, transform: (item: unknown) => T): Promise<ExecutionResult<T>> {\n const { logger, limit, includeBody, maxPages, pageSize, pageToken } = options;\n\n // Single execution - direct query to Microsoft Graph API\n logger.info('executeQuery: executing direct Outlook query');\n\n try {\n const result = await searchMessages(graph, {\n ...(query !== undefined && { query }),\n limit: limit ?? 50,\n includeBody: includeBody ?? false,\n maxPages: maxPages ?? null,\n pageSize: pageSize ?? 50,\n pageToken: pageToken ?? undefined,\n logger,\n });\n\n // Transform directly - if Microsoft Graph returns invalid data, fail loud\n const transformedResults = result.messages.map((item, index) => {\n try {\n return transform(item);\n } catch (transformError) {\n logger.error(`Transform function failed for item ${index}`, {\n itemIndex: index,\n error: transformError instanceof Error ? transformError.message : String(transformError),\n });\n throw new Error(`Transform failed at item ${index}: ${transformError}`);\n }\n });\n\n logger.info(`executeQuery: succeeded with ${transformedResults.length} results`);\n\n return {\n success: true,\n items: transformedResults,\n metadata: {\n nextPageToken: result.nextPageToken,\n totalFetched: result.messages.length,\n },\n };\n } catch (error) {\n // Re-throw errors directly - no fallback logic\n logger.error('executeQuery: failed', error as Record<string, unknown>);\n throw error;\n }\n}\n"],"names":["executeQuery","graph","query","options","transform","logger","limit","includeBody","maxPages","pageSize","pageToken","result","transformedResults","error","info","searchMessages","undefined","messages","map","item","index","transformError","itemIndex","Error","message","String","length","success","items","metadata","nextPageToken","totalFetched"],"mappings":";;;;+BAsBsBA;;;eAAAA;;;+BAlBS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBxB,SAAeA,aAAgBC,KAAa,EAAEC,KAA4B,EAAEC,OAA4B,EAAEC,SAA+B;;YACtIC,QAAQC,OAAOC,aAAaC,UAAUC,UAAUC,WAMhDC,QAWAC,oBAsBCC;;;;oBAvCDR,SAA8DF,QAA9DE,QAAQC,QAAsDH,QAAtDG,OAAOC,cAA+CJ,QAA/CI,aAAaC,WAAkCL,QAAlCK,UAAUC,WAAwBN,QAAxBM,UAAUC,YAAcP,QAAdO;oBAExD,yDAAyD;oBACzDL,OAAOS,IAAI,CAAC;;;;;;;;;oBAGK;;wBAAMC,IAAAA,+BAAc,EAACd,OAAO,wCACrCC,UAAUc,aAAa;4BAAEd,OAAAA;wBAAM;4BACnCI,KAAK,EAAEA,kBAAAA,mBAAAA,QAAS;4BAChBC,WAAW,EAAEA,wBAAAA,yBAAAA,cAAe;4BAC5BC,QAAQ,EAAEA,qBAAAA,sBAAAA,WAAY;4BACtBC,QAAQ,EAAEA,qBAAAA,sBAAAA,WAAY;4BACtBC,SAAS,EAAEA,sBAAAA,uBAAAA,YAAaM;4BACxBX,QAAAA;;;;oBAPIM,SAAS;oBAUf,0EAA0E;oBACpEC,qBAAqBD,OAAOM,QAAQ,CAACC,GAAG,CAAC,SAACC,MAAMC;wBACpD,IAAI;4BACF,OAAOhB,UAAUe;wBACnB,EAAE,OAAOE,gBAAgB;4BACvBhB,OAAOQ,KAAK,CAAC,AAAC,sCAA2C,OAANO,QAAS;gCAC1DE,WAAWF;gCACXP,OAAOQ,AAAc,YAAdA,gBAA0BE,SAAQF,eAAeG,OAAO,GAAGC,OAAOJ;4BAC3E;4BACA,MAAM,IAAIE,MAAM,AAAC,4BAAqCF,OAAVD,OAAM,MAAmB,OAAfC;wBACxD;oBACF;oBAEAhB,OAAOS,IAAI,CAAC,AAAC,gCAAyD,OAA1BF,mBAAmBc,MAAM,EAAC;oBAEtE;;wBAAO;4BACLC,SAAS;4BACTC,OAAOhB;4BACPiB,UAAU;gCACRC,eAAenB,OAAOmB,aAAa;gCACnCC,cAAcpB,OAAOM,QAAQ,CAACS,MAAM;4BACtC;wBACF;;;oBACOb;oBACP,+CAA+C;oBAC/CR,OAAOQ,KAAK,CAAC,wBAAwBA;oBACrC,MAAMA;;;;;;;IAEV"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { OutlookQuery as QueryNode } from '../../schemas/outlook-query-schema.js';
|
|
2
|
+
export interface ODataFilterResult {
|
|
3
|
+
search: string | null;
|
|
4
|
+
filter: string | null;
|
|
5
|
+
requireBodyClientFilter: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function toGraphFilter(query: QueryNode): ODataFilterResult;
|
|
8
|
+
export declare function toOutlookFilter(parsed: QueryNode, _options?: {
|
|
9
|
+
includeBodyContent?: boolean;
|
|
10
|
+
useCaseInsensitiveWrap?: boolean;
|
|
11
|
+
}): {
|
|
12
|
+
filter: string;
|
|
13
|
+
search: string;
|
|
14
|
+
requireBodyClientFilter: boolean;
|
|
15
|
+
filters: ExtractedFilters;
|
|
16
|
+
};
|
|
17
|
+
interface ExtractedFilters {
|
|
18
|
+
subjectIncludes: string[];
|
|
19
|
+
bodyIncludes: string[];
|
|
20
|
+
textIncludes: string[];
|
|
21
|
+
fromIncludes: string[];
|
|
22
|
+
toIncludes: string[];
|
|
23
|
+
ccIncludes: string[];
|
|
24
|
+
bccIncludes: string[];
|
|
25
|
+
categoriesIncludes: string[];
|
|
26
|
+
labelIncludes: string[];
|
|
27
|
+
hasAttachment?: boolean;
|
|
28
|
+
since?: string;
|
|
29
|
+
before?: string;
|
|
30
|
+
}
|
|
31
|
+
export declare function extractOutlookFilters(parsed: QueryNode): ExtractedFilters;
|
|
32
|
+
export {};
|