@xemahq/biomes-platform-ms365 0.3.0 → 0.4.1
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/contributions/microsoft.connector-adapter.contribution.json +3 -2
- package/dist/connector-adapters/index.d.ts +3 -0
- package/dist/connector-adapters/index.d.ts.map +1 -1
- package/dist/connector-adapters/index.js +18 -12
- package/dist/connector-adapters/index.js.map +1 -1
- package/dist/graph/graph-client.d.ts +6 -2
- package/dist/graph/graph-client.d.ts.map +1 -1
- package/dist/graph/graph-client.js +19 -3
- package/dist/graph/graph-client.js.map +1 -1
- package/dist/graph/graph-types.d.ts +4 -0
- package/dist/graph/graph-types.d.ts.map +1 -1
- package/dist/graph/message-fetch.d.ts +48 -0
- package/dist/graph/message-fetch.d.ts.map +1 -0
- package/dist/graph/message-fetch.js +161 -0
- package/dist/graph/message-fetch.js.map +1 -0
- package/dist/graph/message-normalizer.d.ts.map +1 -1
- package/dist/graph/message-normalizer.js +9 -39
- package/dist/graph/message-normalizer.js.map +1 -1
- package/dist/graph/message-parts.d.ts +16 -0
- package/dist/graph/message-parts.d.ts.map +1 -0
- package/dist/graph/message-parts.js +49 -0
- package/dist/graph/message-parts.js.map +1 -0
- package/package.json +3 -3
- package/xema-biome.json +2 -2
|
@@ -51,13 +51,14 @@
|
|
|
51
51
|
{
|
|
52
52
|
"connectorKey": "MICROSOFT_GRAPH",
|
|
53
53
|
"displayName": "Microsoft 365 (Outlook Mail)",
|
|
54
|
-
"description": "Read Outlook mail via Microsoft Graph OAuth.",
|
|
54
|
+
"description": "Read Outlook mail via Microsoft Graph OAuth; consent also covers sending.",
|
|
55
55
|
"iconName": "Mail",
|
|
56
56
|
"providerKey": "microsoft",
|
|
57
57
|
"scopes": [
|
|
58
58
|
"offline_access",
|
|
59
59
|
"https://graph.microsoft.com/Mail.Read",
|
|
60
|
-
"https://graph.microsoft.com/User.Read"
|
|
60
|
+
"https://graph.microsoft.com/User.Read",
|
|
61
|
+
"https://graph.microsoft.com/Mail.Send"
|
|
61
62
|
],
|
|
62
63
|
"connectionCredentialKind": "oauth_user",
|
|
63
64
|
"adapterKind": "mail"
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type ConnectorAdapterModule } from '@xemahq/biome-sdk/adapter';
|
|
2
2
|
import { type ConnectorDescriptor, type ProviderDescriptor } from '@xemahq/kernel-contracts/connector';
|
|
3
|
+
export declare const MS365_FETCH_MESSAGE_CAPABILITY_REF: import("@xemahq/kernel-contracts/capability").CapabilityRef;
|
|
4
|
+
export declare const microsoftGraphFetchMessageAction: import("@xemahq/biome-sdk/adapter").OutboundActionHandler;
|
|
3
5
|
export declare const microsoftGraphProvider: ConnectorAdapterModule;
|
|
4
6
|
declare const connectorAdapters: readonly ConnectorAdapterModule[];
|
|
5
7
|
export default connectorAdapters;
|
|
@@ -8,4 +10,5 @@ export declare const connectorDescriptors: readonly ConnectorDescriptor[];
|
|
|
8
10
|
export { parseMessageResourcePath, drainMessageDelta, establishInboxSubscription, renewIfDue, resolveValidationHandshake, getMailboxAddress, } from '../graph/subscription-lifecycle.js';
|
|
9
11
|
export { GraphClient } from '../graph/graph-client.js';
|
|
10
12
|
export { buildMailEnvelope } from '../graph/mail-envelope.js';
|
|
13
|
+
export { DEFAULT_ATTACHMENT_SIZE_LIMIT, fetchGraphMessage, makeFetchMessageAction, MS365_FETCH_MESSAGE_ACTION, resolveMailbox, type FetchedMailAttachment, type FetchedMailMessage, type GraphMessageReader, } from '../graph/message-fetch.js';
|
|
11
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connector-adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,sBAAsB,EAG5B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connector-adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,sBAAsB,EAG5B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAQL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAExB,MAAM,oCAAoC,CAAC;AAiH5C,eAAO,MAAM,kCAAkC,6DAG9C,CAAC;AAOF,eAAO,MAAM,gCAAgC,2DAE5C,CAAC;AA8KF,eAAO,MAAM,sBAAsB,EAAE,sBAkCnC,CAAC;AAEH,QAAA,MAAM,iBAAiB,EAAE,SAAS,sBAAsB,EAA6B,CAAC;AACtF,eAAe,iBAAiB,CAAC;AAuBjC,eAAO,MAAM,kBAAkB,EAAE,kBAoDhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAgB9D,CAAC;AAsDF,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,0BAA0B,EAC1B,UAAU,EACV,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,EACL,6BAA6B,EAC7B,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { adapterError, defineConnectorAdapter, err, } from '@xemahq/biome-sdk/adapter';
|
|
2
|
+
import { buildConnectorCapabilityRef } from '@xemahq/kernel-contracts/capability';
|
|
2
3
|
import { CredentialFieldTransform, CredentialFieldType, CredentialKind, ConnectorOnboardingKind, MICROSOFT_OAUTH_ENDPOINTS, ProviderAppAuthKind, ProviderOrigin, } from '@xemahq/kernel-contracts/connector';
|
|
4
|
+
import { GraphClient } from '../graph/graph-client.js';
|
|
3
5
|
import { buildMailEnvelope, MAIL_EVENT } from '../graph/mail-envelope.js';
|
|
6
|
+
import { makeFetchMessageAction, MS365_FETCH_MESSAGE_ACTION, } from '../graph/message-fetch.js';
|
|
4
7
|
import { verifyClientState } from '../graph/subscription-lifecycle.js';
|
|
5
8
|
const PROVIDER_SLUG = 'microsoft_graph';
|
|
9
|
+
const MICROSOFT_GRAPH_SCOPES = [
|
|
10
|
+
'offline_access',
|
|
11
|
+
'https://graph.microsoft.com/Mail.Read',
|
|
12
|
+
'https://graph.microsoft.com/User.Read',
|
|
13
|
+
'https://graph.microsoft.com/Mail.Send',
|
|
14
|
+
];
|
|
15
|
+
export const MS365_FETCH_MESSAGE_CAPABILITY_REF = buildConnectorCapabilityRef('microsoft-graph', MS365_FETCH_MESSAGE_ACTION);
|
|
16
|
+
export const microsoftGraphFetchMessageAction = makeFetchMessageAction((accessToken) => new GraphClient({ accessToken }));
|
|
6
17
|
const microsoftGraphVerifier = {
|
|
7
18
|
signatureHeader: 'x-ms-graph-client-state',
|
|
8
19
|
algorithm: 'none',
|
|
@@ -90,14 +101,12 @@ export const microsoftGraphProvider = defineConnectorAdapter({
|
|
|
90
101
|
clientIdEnvVar: 'MS365_OAUTH_CLIENT_ID',
|
|
91
102
|
clientSecretEnvVar: 'MS365_OAUTH_CLIENT_SECRET',
|
|
92
103
|
...MICROSOFT_OAUTH_ENDPOINTS,
|
|
93
|
-
scopes: [
|
|
94
|
-
'offline_access',
|
|
95
|
-
'https://graph.microsoft.com/Mail.Read',
|
|
96
|
-
'https://graph.microsoft.com/User.Read',
|
|
97
|
-
],
|
|
104
|
+
scopes: [...MICROSOFT_GRAPH_SCOPES],
|
|
98
105
|
},
|
|
99
106
|
resources: {},
|
|
100
|
-
actions: {
|
|
107
|
+
actions: {
|
|
108
|
+
[MS365_FETCH_MESSAGE_ACTION]: microsoftGraphFetchMessageAction,
|
|
109
|
+
},
|
|
101
110
|
onboarding: microsoftGraphOnboarding,
|
|
102
111
|
});
|
|
103
112
|
const connectorAdapters = [microsoftGraphProvider];
|
|
@@ -153,14 +162,10 @@ export const connectorDescriptors = [
|
|
|
153
162
|
{
|
|
154
163
|
connectorKey: 'MICROSOFT_GRAPH',
|
|
155
164
|
displayName: 'Microsoft 365 (Outlook Mail)',
|
|
156
|
-
description: 'Read Outlook mail via Microsoft Graph OAuth.',
|
|
165
|
+
description: 'Read Outlook mail via Microsoft Graph OAuth; consent also covers sending.',
|
|
157
166
|
iconName: 'Mail',
|
|
158
167
|
providerKey: MICROSOFT_PROVIDER_KEY,
|
|
159
|
-
scopes: [
|
|
160
|
-
'offline_access',
|
|
161
|
-
'https://graph.microsoft.com/Mail.Read',
|
|
162
|
-
'https://graph.microsoft.com/User.Read',
|
|
163
|
-
],
|
|
168
|
+
scopes: [...MICROSOFT_GRAPH_SCOPES],
|
|
164
169
|
connectionCredentialKind: CredentialKind.OAuthUser,
|
|
165
170
|
adapterKind: 'mail',
|
|
166
171
|
},
|
|
@@ -199,4 +204,5 @@ function embeddedMessage(notification) {
|
|
|
199
204
|
export { parseMessageResourcePath, drainMessageDelta, establishInboxSubscription, renewIfDue, resolveValidationHandshake, getMailboxAddress, } from '../graph/subscription-lifecycle.js';
|
|
200
205
|
export { GraphClient } from '../graph/graph-client.js';
|
|
201
206
|
export { buildMailEnvelope } from '../graph/mail-envelope.js';
|
|
207
|
+
export { DEFAULT_ATTACHMENT_SIZE_LIMIT, fetchGraphMessage, makeFetchMessageAction, MS365_FETCH_MESSAGE_ACTION, resolveMailbox, } from '../graph/message-fetch.js';
|
|
202
208
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connector-adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,GAAG,GAMJ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,cAAc,GAIf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAyBvE,MAAM,aAAa,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connector-adapters/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Result } from '@xemahq/biome-sdk/adapter';
|
|
2
2
|
import { GraphChangeType } from './graph-types.js';
|
|
3
|
-
import type { GraphMessageDeltaPage, GraphMessageResource, GraphSubscription, GraphUser } from './graph-types.js';
|
|
3
|
+
import type { GraphAttachmentCollection, GraphFileAttachment, GraphMessageDeltaPage, GraphMessageResource, GraphSubscription, GraphUser } from './graph-types.js';
|
|
4
4
|
export declare const MAX_SUBSCRIPTION_LIFETIME_MS: number;
|
|
5
5
|
export declare const SUBSCRIPTION_RENEWAL_SKEW_MS: number;
|
|
6
6
|
export interface GraphClientConfig {
|
|
@@ -17,7 +17,11 @@ export declare class GraphClient {
|
|
|
17
17
|
private readonly baseUrl;
|
|
18
18
|
private readonly accessToken;
|
|
19
19
|
constructor(config: GraphClientConfig);
|
|
20
|
-
getMessage(userId: string, messageId: string
|
|
20
|
+
getMessage(userId: string, messageId: string, options?: {
|
|
21
|
+
readonly expandAttachments?: boolean;
|
|
22
|
+
}): Promise<Result<GraphMessageResource>>;
|
|
23
|
+
listAttachments(userId: string, messageId: string): Promise<Result<GraphAttachmentCollection>>;
|
|
24
|
+
getAttachment(userId: string, messageId: string, attachmentId: string): Promise<Result<GraphFileAttachment>>;
|
|
21
25
|
getMe(): Promise<Result<GraphUser>>;
|
|
22
26
|
createSubscription(input: CreateSubscriptionInput): Promise<Result<GraphSubscription>>;
|
|
23
27
|
renewSubscription(subscriptionId: string): Promise<Result<GraphSubscription>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-client.d.ts","sourceRoot":"","sources":["../../src/graph/graph-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACV,MAAM,kBAAkB,CAAC;AA4B1B,eAAO,MAAM,4BAA4B,QAAoB,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAqB,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IAEtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAOD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,MAAM,EAAE,iBAAiB;IAiB/B,UAAU,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"graph-client.d.ts","sourceRoot":"","sources":["../../src/graph/graph-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EACV,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,SAAS,EACV,MAAM,kBAAkB,CAAC;AA4B1B,eAAO,MAAM,4BAA4B,QAAoB,CAAC;AAC9D,eAAO,MAAM,4BAA4B,QAAqB,CAAC;AAE/D,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IAEtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAOD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,MAAM,EAAE,iBAAiB;IAiB/B,UAAU,CACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO,GACrD,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAoClC,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAyBvC,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAyBjC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAanC,kBAAkB,CACtB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAqB/B,iBAAiB,CACrB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAkB/B,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IA0BjE,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAe3B,WAAW;YAQX,mBAAmB;IAqBjC,OAAO,CAAC,gBAAgB;YAQV,aAAa;YAwBb,cAAc;CAoB7B"}
|
|
@@ -14,13 +14,29 @@ export class GraphClient {
|
|
|
14
14
|
this.accessToken = config.accessToken;
|
|
15
15
|
this.baseUrl = (config.baseUrl ?? GRAPH_BASE_URL).replace(/\/+$/, '');
|
|
16
16
|
}
|
|
17
|
-
async getMessage(userId, messageId) {
|
|
17
|
+
async getMessage(userId, messageId, options = {}) {
|
|
18
18
|
if (!userId || !messageId) {
|
|
19
19
|
return err(adapterError('malformed-payload', 'getMessage requires userId and messageId'));
|
|
20
20
|
}
|
|
21
21
|
const select = '$select=id,conversationId,internetMessageId,subject,receivedDateTime,sentDateTime,from,sender,toRecipients,ccRecipients,bccRecipients,body,bodyPreview,categories,hasAttachments,internetMessageHeaders';
|
|
22
|
-
const expand = '
|
|
23
|
-
const path = `users/${encodeURIComponent(userId)}/messages/${encodeURIComponent(messageId)}?${select}
|
|
22
|
+
const expand = options.expandAttachments === false ? '' : '&$expand=attachments';
|
|
23
|
+
const path = `users/${encodeURIComponent(userId)}/messages/${encodeURIComponent(messageId)}?${select}${expand}`;
|
|
24
|
+
return this.requestJson('GET', path);
|
|
25
|
+
}
|
|
26
|
+
async listAttachments(userId, messageId) {
|
|
27
|
+
if (!userId || !messageId) {
|
|
28
|
+
return err(adapterError('malformed-payload', 'listAttachments requires userId and messageId'));
|
|
29
|
+
}
|
|
30
|
+
const path = `users/${encodeURIComponent(userId)}/messages/${encodeURIComponent(messageId)}` +
|
|
31
|
+
'/attachments?$select=id,name,contentType,size,isInline,contentId';
|
|
32
|
+
return this.requestJson('GET', path);
|
|
33
|
+
}
|
|
34
|
+
async getAttachment(userId, messageId, attachmentId) {
|
|
35
|
+
if (!userId || !messageId || !attachmentId) {
|
|
36
|
+
return err(adapterError('malformed-payload', 'getAttachment requires userId, messageId and attachmentId'));
|
|
37
|
+
}
|
|
38
|
+
const path = `users/${encodeURIComponent(userId)}/messages/${encodeURIComponent(messageId)}` +
|
|
39
|
+
`/attachments/${encodeURIComponent(attachmentId)}`;
|
|
24
40
|
return this.requestJson('GET', path);
|
|
25
41
|
}
|
|
26
42
|
async getMe() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-client.js","sourceRoot":"","sources":["../../src/graph/graph-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-client.js","sourceRoot":"","sources":["../../src/graph/graph-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,10 @@ export interface GraphFileAttachment {
|
|
|
38
38
|
readonly size?: number;
|
|
39
39
|
readonly contentId?: string;
|
|
40
40
|
readonly isInline?: boolean;
|
|
41
|
+
readonly contentBytes?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface GraphAttachmentCollection {
|
|
44
|
+
readonly value: readonly GraphFileAttachment[];
|
|
41
45
|
}
|
|
42
46
|
export interface GraphMessageResource {
|
|
43
47
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-types.d.ts","sourceRoot":"","sources":["../../src/graph/graph-types.ts"],"names":[],"mappings":"AAqBA,oBAAY,eAAe;IACzB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAGD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACjD,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE;QACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAGD,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAE5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"graph-types.d.ts","sourceRoot":"","sources":["../../src/graph/graph-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type OutboundActionHandler, type Result } from '@xemahq/biome-sdk/adapter';
|
|
2
|
+
import type { GraphAttachmentCollection, GraphFileAttachment, GraphMessageResource } from './graph-types.js';
|
|
3
|
+
export { DEFAULT_ATTACHMENT_SIZE_LIMIT } from './message-parts.js';
|
|
4
|
+
export declare const MS365_FETCH_MESSAGE_ACTION = "fetch-message";
|
|
5
|
+
export interface FetchedMailAttachment {
|
|
6
|
+
readonly attachmentId: string;
|
|
7
|
+
readonly filename: string;
|
|
8
|
+
readonly contentType: string;
|
|
9
|
+
readonly size: number;
|
|
10
|
+
readonly contentId?: string;
|
|
11
|
+
readonly base64?: string;
|
|
12
|
+
readonly skipped?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface FetchedMailMessage {
|
|
15
|
+
readonly mailbox: string;
|
|
16
|
+
readonly messageId: string;
|
|
17
|
+
readonly threadId?: string;
|
|
18
|
+
readonly from: string;
|
|
19
|
+
readonly to: readonly string[];
|
|
20
|
+
readonly cc?: readonly string[];
|
|
21
|
+
readonly bcc?: readonly string[];
|
|
22
|
+
readonly subject: string;
|
|
23
|
+
readonly receivedAt: string;
|
|
24
|
+
readonly bodyText?: string;
|
|
25
|
+
readonly bodyHtml?: string;
|
|
26
|
+
readonly headers?: Record<string, string>;
|
|
27
|
+
readonly labels?: readonly string[];
|
|
28
|
+
readonly snippet?: string;
|
|
29
|
+
readonly attachments: readonly FetchedMailAttachment[];
|
|
30
|
+
}
|
|
31
|
+
export interface GraphMessageReader {
|
|
32
|
+
getMessage(userId: string, messageId: string, options?: {
|
|
33
|
+
readonly expandAttachments?: boolean;
|
|
34
|
+
}): Promise<Result<GraphMessageResource>>;
|
|
35
|
+
listAttachments(userId: string, messageId: string): Promise<Result<GraphAttachmentCollection>>;
|
|
36
|
+
getAttachment(userId: string, messageId: string, attachmentId: string): Promise<Result<GraphFileAttachment>>;
|
|
37
|
+
}
|
|
38
|
+
export type GraphMessageReaderFactory = (accessToken: string) => GraphMessageReader;
|
|
39
|
+
export interface FetchMessageOptions {
|
|
40
|
+
readonly mailbox: string;
|
|
41
|
+
readonly messageId: string;
|
|
42
|
+
readonly includeAttachments: boolean;
|
|
43
|
+
readonly attachmentSizeLimit: number;
|
|
44
|
+
}
|
|
45
|
+
export declare function fetchGraphMessage(client: GraphMessageReader, options: FetchMessageOptions): Promise<Result<FetchedMailMessage>>;
|
|
46
|
+
export declare function resolveMailbox(params: Readonly<Record<string, unknown>>, hints: Readonly<Record<string, string>>): string | undefined;
|
|
47
|
+
export declare function makeFetchMessageAction(factory: GraphMessageReaderFactory): OutboundActionHandler;
|
|
48
|
+
//# sourceMappingURL=message-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-fetch.d.ts","sourceRoot":"","sources":["../../src/graph/message-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { adapterError, err, ok, } from '@xemahq/biome-sdk/adapter';
|
|
2
|
+
import { normalizeGraphMessage } from './message-normalizer.js';
|
|
3
|
+
import { clampAttachmentSizeLimit, collectAttachmentParts, nonEmpty, optional, optionalArray, } from './message-parts.js';
|
|
4
|
+
export { DEFAULT_ATTACHMENT_SIZE_LIMIT } from './message-parts.js';
|
|
5
|
+
export const MS365_FETCH_MESSAGE_ACTION = 'fetch-message';
|
|
6
|
+
const MAILBOX_HINT_KEY = 'mailboxUserId';
|
|
7
|
+
const BODY_CONTENT_TYPE_HTML = 'html';
|
|
8
|
+
function readBody(message, messageId) {
|
|
9
|
+
const body = message.body;
|
|
10
|
+
const content = body && typeof body === 'object' && typeof body.content === 'string'
|
|
11
|
+
? body.content
|
|
12
|
+
: undefined;
|
|
13
|
+
if (content === undefined) {
|
|
14
|
+
return err(adapterError('upstream-unavailable', `graph fetch-message: message ${messageId} came back with no body.content — ` +
|
|
15
|
+
'refusing to return a body-less message'));
|
|
16
|
+
}
|
|
17
|
+
return ok((body?.contentType ?? '').toLowerCase() === BODY_CONTENT_TYPE_HTML
|
|
18
|
+
? { bodyHtml: content }
|
|
19
|
+
: { bodyText: content });
|
|
20
|
+
}
|
|
21
|
+
async function materializeAttachments(client, options, message) {
|
|
22
|
+
if (message.hasAttachments === false) {
|
|
23
|
+
return ok([]);
|
|
24
|
+
}
|
|
25
|
+
const listed = await client.listAttachments(options.mailbox, options.messageId);
|
|
26
|
+
if (!listed.ok) {
|
|
27
|
+
return err(listed.error);
|
|
28
|
+
}
|
|
29
|
+
const out = [];
|
|
30
|
+
for (const part of collectAttachmentParts(listed.value.value)) {
|
|
31
|
+
const meta = {
|
|
32
|
+
attachmentId: part.attachmentId,
|
|
33
|
+
filename: part.filename,
|
|
34
|
+
contentType: part.contentType,
|
|
35
|
+
size: part.size,
|
|
36
|
+
...optional('contentId', part.contentId),
|
|
37
|
+
};
|
|
38
|
+
if (!options.includeAttachments) {
|
|
39
|
+
out.push(meta);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (part.size > options.attachmentSizeLimit) {
|
|
43
|
+
out.push({ ...meta, skipped: true });
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const fetched = await client.getAttachment(options.mailbox, options.messageId, part.attachmentId);
|
|
47
|
+
if (!fetched.ok) {
|
|
48
|
+
return err(fetched.error);
|
|
49
|
+
}
|
|
50
|
+
const bytes = fetched.value.contentBytes;
|
|
51
|
+
if (typeof bytes !== 'string') {
|
|
52
|
+
return err(adapterError('upstream-unavailable', `graph fetch-message: the attachment GET for "${part.filename}" ` +
|
|
53
|
+
`(attachment ${part.attachmentId}) of message ${options.messageId} returned no contentBytes`));
|
|
54
|
+
}
|
|
55
|
+
out.push({ ...meta, base64: bytes });
|
|
56
|
+
}
|
|
57
|
+
return ok(out);
|
|
58
|
+
}
|
|
59
|
+
export async function fetchGraphMessage(client, options) {
|
|
60
|
+
const fetched = await client.getMessage(options.mailbox, options.messageId, {
|
|
61
|
+
expandAttachments: false,
|
|
62
|
+
});
|
|
63
|
+
if (!fetched.ok) {
|
|
64
|
+
return err(fetched.error);
|
|
65
|
+
}
|
|
66
|
+
const message = fetched.value;
|
|
67
|
+
const canonical = normalizeGraphMessage(message);
|
|
68
|
+
if (!canonical.ok) {
|
|
69
|
+
return err(canonical.error);
|
|
70
|
+
}
|
|
71
|
+
const body = readBody(message, options.messageId);
|
|
72
|
+
if (!body.ok) {
|
|
73
|
+
return err(body.error);
|
|
74
|
+
}
|
|
75
|
+
const attachments = await materializeAttachments(client, options, message);
|
|
76
|
+
if (!attachments.ok) {
|
|
77
|
+
return err(attachments.error);
|
|
78
|
+
}
|
|
79
|
+
const projection = canonical.value;
|
|
80
|
+
return ok({
|
|
81
|
+
mailbox: options.mailbox,
|
|
82
|
+
messageId: projection.messageId,
|
|
83
|
+
from: projection.from,
|
|
84
|
+
to: projection.to,
|
|
85
|
+
subject: projection.subject,
|
|
86
|
+
receivedAt: projection.receivedAt,
|
|
87
|
+
...optional('threadId', projection.threadId),
|
|
88
|
+
...optionalArray('cc', projection.cc ?? []),
|
|
89
|
+
...optionalArray('bcc', projection.bcc ?? []),
|
|
90
|
+
...optional('bodyText', body.value.bodyText),
|
|
91
|
+
...optional('bodyHtml', body.value.bodyHtml),
|
|
92
|
+
...optional('headers', projection.headers),
|
|
93
|
+
...optionalArray('labels', projection.labels ?? []),
|
|
94
|
+
...optional('snippet', nonEmpty(message.bodyPreview)),
|
|
95
|
+
attachments: attachments.value,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
export function resolveMailbox(params, hints) {
|
|
99
|
+
const explicit = typeof params['userId'] === 'string' ? params['userId'].trim() : '';
|
|
100
|
+
if (explicit.length > 0) {
|
|
101
|
+
return explicit;
|
|
102
|
+
}
|
|
103
|
+
const bound = hints[MAILBOX_HINT_KEY]?.trim() ?? '';
|
|
104
|
+
return bound.length > 0 ? bound : undefined;
|
|
105
|
+
}
|
|
106
|
+
export function makeFetchMessageAction(factory) {
|
|
107
|
+
return {
|
|
108
|
+
action: MS365_FETCH_MESSAGE_ACTION,
|
|
109
|
+
schema: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {
|
|
112
|
+
messageId: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
description: 'The Graph message id to fetch (from intake, a notification, or a delta).',
|
|
115
|
+
},
|
|
116
|
+
userId: {
|
|
117
|
+
type: 'string',
|
|
118
|
+
description: 'Mailbox user id or UPN to read from. Defaults to the mailbox this connection is bound to.',
|
|
119
|
+
},
|
|
120
|
+
includeAttachments: {
|
|
121
|
+
type: 'boolean',
|
|
122
|
+
description: 'Return attachment bytes (base64) under attachments[].base64 (default false — the manifest always ships).',
|
|
123
|
+
},
|
|
124
|
+
attachmentSizeLimit: {
|
|
125
|
+
type: 'number',
|
|
126
|
+
description: 'Per-attachment byte cap; an oversize part is flagged skipped with its metadata, never dropped.',
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
required: ['messageId'],
|
|
130
|
+
},
|
|
131
|
+
execute(input) {
|
|
132
|
+
const accessToken = nonEmpty(input.credential.accessToken);
|
|
133
|
+
if (accessToken === undefined) {
|
|
134
|
+
return Promise.resolve(err(adapterError('unauthorized', 'graph fetch-message: the resolved credential carries no access token')));
|
|
135
|
+
}
|
|
136
|
+
const params = input.params;
|
|
137
|
+
const messageId = typeof params['messageId'] === 'string' ? params['messageId'].trim() : '';
|
|
138
|
+
if (messageId.length === 0) {
|
|
139
|
+
return Promise.resolve(err(adapterError('malformed-payload', 'graph fetch-message: "messageId" is required')));
|
|
140
|
+
}
|
|
141
|
+
const mailbox = resolveMailbox(params, input.credential.providerHints);
|
|
142
|
+
if (mailbox === undefined) {
|
|
143
|
+
return Promise.resolve(err(adapterError('malformed-payload', 'graph fetch-message: no mailbox to read from — pass "userId", or bind this ' +
|
|
144
|
+
'connection to a mailbox (Graph addresses mail as /users/{id}; there is no ' +
|
|
145
|
+
'self-reference to fall back to)')));
|
|
146
|
+
}
|
|
147
|
+
return fetchGraphMessage(factory(accessToken), {
|
|
148
|
+
mailbox,
|
|
149
|
+
messageId,
|
|
150
|
+
includeAttachments: params['includeAttachments'] === true,
|
|
151
|
+
attachmentSizeLimit: clampAttachmentSizeLimit(params['attachmentSizeLimit']),
|
|
152
|
+
}).then((result) => result.ok
|
|
153
|
+
? ok({
|
|
154
|
+
externalId: result.value.messageId,
|
|
155
|
+
outputs: result.value,
|
|
156
|
+
})
|
|
157
|
+
: result);
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=message-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-fetch.js","sourceRoot":"","sources":["../../src/graph/message-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-normalizer.d.ts","sourceRoot":"","sources":["../../src/graph/message-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"message-normalizer.d.ts","sourceRoot":"","sources":["../../src/graph/message-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAS/E,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,kBAAkB,CAAC;AAoB7E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,uBAAuB,EAAE,CAAC;CAClD;AAUD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAAC,oBAAoB,CAAC,CA4E9B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { adapterError, err, ok } from '@xemahq/biome-sdk/adapter';
|
|
2
|
-
|
|
2
|
+
import { collectAttachmentParts, nonEmpty, optional, optionalArray, } from './message-parts.js';
|
|
3
3
|
export function normalizeGraphMessage(message) {
|
|
4
4
|
if (!message || typeof message !== 'object') {
|
|
5
5
|
return err(adapterError('malformed-payload', 'graph message resource is not an object'));
|
|
@@ -26,7 +26,7 @@ export function normalizeGraphMessage(message) {
|
|
|
26
26
|
const { bodyText, bodyHtml } = splitBody(message);
|
|
27
27
|
const headers = normalizeHeaders(message);
|
|
28
28
|
const labels = normalizeLabels(message.categories);
|
|
29
|
-
const attachments = normalizeAttachments(message
|
|
29
|
+
const attachments = normalizeAttachments(message);
|
|
30
30
|
const canonical = {
|
|
31
31
|
messageId,
|
|
32
32
|
from,
|
|
@@ -83,34 +83,13 @@ function normalizeLabels(categories) {
|
|
|
83
83
|
}
|
|
84
84
|
return categories.filter((c) => typeof c === 'string' && c.length > 0);
|
|
85
85
|
}
|
|
86
|
-
function normalizeAttachments(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
const odataType = raw['@odata.type'];
|
|
96
|
-
if (odataType !== undefined && odataType !== FILE_ATTACHMENT_ODATA_TYPE) {
|
|
97
|
-
continue;
|
|
98
|
-
}
|
|
99
|
-
const filename = nonEmpty(raw.name);
|
|
100
|
-
const contentType = nonEmpty(raw.contentType);
|
|
101
|
-
if (!filename || !contentType) {
|
|
102
|
-
continue;
|
|
103
|
-
}
|
|
104
|
-
const size = typeof raw.size === 'number' && raw.size >= 0 ? raw.size : 0;
|
|
105
|
-
const contentId = nonEmpty(raw.contentId);
|
|
106
|
-
out.push({
|
|
107
|
-
filename,
|
|
108
|
-
contentType,
|
|
109
|
-
size,
|
|
110
|
-
...optional('contentId', contentId),
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
return out;
|
|
86
|
+
function normalizeAttachments(message) {
|
|
87
|
+
return collectAttachmentParts(message.attachments).map((part) => ({
|
|
88
|
+
filename: part.filename,
|
|
89
|
+
contentType: part.contentType,
|
|
90
|
+
size: part.size,
|
|
91
|
+
...optional('contentId', part.contentId),
|
|
92
|
+
}));
|
|
114
93
|
}
|
|
115
94
|
function recipientAddress(recipient) {
|
|
116
95
|
if (!recipient || typeof recipient !== 'object') {
|
|
@@ -131,13 +110,4 @@ function recipientAddresses(recipients) {
|
|
|
131
110
|
}
|
|
132
111
|
return out;
|
|
133
112
|
}
|
|
134
|
-
function nonEmpty(value) {
|
|
135
|
-
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
136
|
-
}
|
|
137
|
-
function optional(key, value) {
|
|
138
|
-
return value === undefined ? {} : { [key]: value };
|
|
139
|
-
}
|
|
140
|
-
function optionalArray(key, value) {
|
|
141
|
-
return value.length === 0 ? {} : { [key]: value };
|
|
142
|
-
}
|
|
143
113
|
//# sourceMappingURL=message-normalizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-normalizer.js","sourceRoot":"","sources":["../../src/graph/message-normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAe,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"message-normalizer.js","sourceRoot":"","sources":["../../src/graph/message-normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GraphFileAttachment } from './graph-types.js';
|
|
2
|
+
export declare const DEFAULT_ATTACHMENT_SIZE_LIMIT: number;
|
|
3
|
+
export declare function clampAttachmentSizeLimit(value: unknown): number;
|
|
4
|
+
export declare const FILE_ATTACHMENT_ODATA_TYPE = "#microsoft.graph.fileAttachment";
|
|
5
|
+
export interface GraphAttachmentPart {
|
|
6
|
+
readonly attachmentId: string;
|
|
7
|
+
readonly filename: string;
|
|
8
|
+
readonly contentType: string;
|
|
9
|
+
readonly size: number;
|
|
10
|
+
readonly contentId?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function collectAttachmentParts(attachments: readonly GraphFileAttachment[] | undefined): GraphAttachmentPart[];
|
|
13
|
+
export declare function nonEmpty(value: unknown): string | undefined;
|
|
14
|
+
export declare function optional<K extends string, V>(key: K, value: V | undefined): Record<K, V> | Record<string, never>;
|
|
15
|
+
export declare function optionalArray<K extends string, V>(key: K, value: V[]): Record<K, V[]> | Record<string, never>;
|
|
16
|
+
//# sourceMappingURL=message-parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-parts.d.ts","sourceRoot":"","sources":["../../src/graph/message-parts.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQ5D,eAAO,MAAM,6BAA6B,QAAkB,CAAC;AAQ7D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQ/D;AAED,eAAO,MAAM,0BAA0B,oCAAoC,CAAC;AAU5E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAYD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,SAAS,mBAAmB,EAAE,GAAG,SAAS,GACtD,mBAAmB,EAAE,CA4BvB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE3D;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC1C,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAEtC;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAC/C,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,EAAE,GACT,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAExC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export const DEFAULT_ATTACHMENT_SIZE_LIMIT = 5 * 1024 * 1024;
|
|
2
|
+
const MIN_ATTACHMENT_SIZE_LIMIT = 1024;
|
|
3
|
+
const MAX_ATTACHMENT_SIZE_LIMIT = 16 * 1024 * 1024;
|
|
4
|
+
export function clampAttachmentSizeLimit(value) {
|
|
5
|
+
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
6
|
+
return DEFAULT_ATTACHMENT_SIZE_LIMIT;
|
|
7
|
+
}
|
|
8
|
+
return Math.max(MIN_ATTACHMENT_SIZE_LIMIT, Math.min(MAX_ATTACHMENT_SIZE_LIMIT, Math.floor(value)));
|
|
9
|
+
}
|
|
10
|
+
export const FILE_ATTACHMENT_ODATA_TYPE = '#microsoft.graph.fileAttachment';
|
|
11
|
+
export function collectAttachmentParts(attachments) {
|
|
12
|
+
if (!Array.isArray(attachments)) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
const out = [];
|
|
16
|
+
for (const raw of attachments) {
|
|
17
|
+
if (!raw || typeof raw !== 'object') {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const odataType = raw['@odata.type'];
|
|
21
|
+
if (odataType !== undefined && odataType !== FILE_ATTACHMENT_ODATA_TYPE) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
const attachmentId = nonEmpty(raw.id);
|
|
25
|
+
const filename = nonEmpty(raw.name);
|
|
26
|
+
const contentType = nonEmpty(raw.contentType);
|
|
27
|
+
if (!attachmentId || !filename || !contentType) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
out.push({
|
|
31
|
+
attachmentId,
|
|
32
|
+
filename,
|
|
33
|
+
contentType,
|
|
34
|
+
size: typeof raw.size === 'number' && raw.size >= 0 ? raw.size : 0,
|
|
35
|
+
...optional('contentId', nonEmpty(raw.contentId)),
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
export function nonEmpty(value) {
|
|
41
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
42
|
+
}
|
|
43
|
+
export function optional(key, value) {
|
|
44
|
+
return value === undefined ? {} : { [key]: value };
|
|
45
|
+
}
|
|
46
|
+
export function optionalArray(key, value) {
|
|
47
|
+
return value.length === 0 ? {} : { [key]: value };
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=message-parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-parts.js","sourceRoot":"","sources":["../../src/graph/message-parts.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7D,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAMnD,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CACb,yBAAyB,EACzB,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CACvD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,iCAAiC,CAAC;AA4B5E,MAAM,UAAU,sBAAsB,CACpC,WAAuD;IAEvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,0BAA0B,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/C,SAAS;QACX,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,YAAY;YACZ,QAAQ;YACR,WAAW;YACX,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClE,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAClD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,GAAM,EACN,KAAoB;IAEpB,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAmB,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAM,EACN,KAAU;IAEV,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAqB,CAAC;AACxE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/biomes-platform-ms365",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/xema-dev/xema-community.git",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"./package.json": "./package.json"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@xemahq/biome-sdk": "^
|
|
31
|
-
"@xemahq/kernel-contracts": "^
|
|
30
|
+
"@xemahq/biome-sdk": "^6.2.3",
|
|
31
|
+
"@xemahq/kernel-contracts": "^14.1.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "25.2.3",
|
package/xema-biome.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xemahq/biomes-platform-ms365",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"xema": {
|
|
5
5
|
"id": "ms365-connector",
|
|
6
6
|
"displayName": "Microsoft 365 Connector",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"bundleSource": {
|
|
17
17
|
"kind": "npm",
|
|
18
18
|
"name": "@xemahq/biomes-platform-ms365",
|
|
19
|
-
"version": "0.
|
|
19
|
+
"version": "0.4.1"
|
|
20
20
|
},
|
|
21
21
|
"trustTier": "first-party",
|
|
22
22
|
"connectorRequirements": [
|