@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.
@@ -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;AACnC,OAAO,EAQL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAExB,MAAM,oCAAoC,CAAC;AA0M5C,eAAO,MAAM,sBAAsB,EAAE,sBAgCnC,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,EAoB9D,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"}
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":"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"}
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,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,cAAc,GAIf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAyBvE,MAAM,aAAa,GAAG,iBAAiB,CAAC;AA8BxC,MAAM,sBAAsB,GAAsB;IAChD,gBAAgB;IAChB,uCAAuC;IACvC,uCAAuC;IACvC,uCAAuC;CACxC,CAAC;AA6CF,MAAM,CAAC,MAAM,kCAAkC,GAAG,2BAA2B,CAC3E,iBAAiB,EACjB,0BAA0B,CAC3B,CAAC;AAOF,MAAM,CAAC,MAAM,gCAAgC,GAAG,sBAAsB,CACpE,CAAC,WAAmB,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC,CAC1D,CAAC;AAaF,MAAM,sBAAsB,GAAoB;IAI9C,eAAe,EAAE,yBAAyB;IAC1C,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,uBAAuB;IACrC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;QACxB,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,2CAA2C,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,mCAAmC,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;CACF,CAAC;AAiBF,MAAM,yBAAyB,GAAgB;IAC7C,GAAG,CAAC,EAAE,QAAQ,EAAE;QACd,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,8CAA8C,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YAId,OAAO,GAAG,CACR,YAAY,CACV,mBAAmB,EACnB,kGAAkG,CACnG,CACF,CAAC;QACJ,CAAC;QAMD,OAAO,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7E,CAAC;CACF,CAAC;AASF,MAAM,qCAAqC,GAA4B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IACrF,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,UAAU,GACd,YAAY,EAAE,YAAY,EAAE,EAAE;QAC9B,eAAe,CAAC,YAAY,CAAC,EAAE,EAAE;QACjC,YAAY,EAAE,cAAc,CAAC;IAC/B,IAAI,CAAC,UAAU,EAAE,CAAC;QAMhB,MAAM,IAAI,KAAK,CACb,gIAAgI,CACjI,CAAC;IACJ,CAAC;IACD,OAAO,mBAAmB,UAAU,EAAE,CAAC;AACzC,CAAC,CAAC;AASF,MAAM,yBAAyB,GAAuB;IACpD,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE;QAC/B,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,YAAY,EAAE,cAAc,CAAC;QACpD,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC,wBAAwB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;CACF,CAAC;AAyBF,MAAM,wBAAwB,GAA+B;IAC3D,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,8BAA8B;IAC3C,WAAW,EACT,yHAAyH;IAC3H,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,uBAAuB,CAAC,WAAW;IACzC,mCAAmC,EAAE,EAAE;IACvC,MAAM,EAAE;QACN;YACE,GAAG,EAAE,eAAe;YACpB,KAAK,EAAE,wBAAwB;YAC/B,IAAI,EAAE,mBAAmB,CAAC,IAAI;YAC9B,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,gCAAgC;YAC7C,SAAS,EAAE,wBAAwB,CAAC,IAAI;SACzC;KACF;IACD,IAAI,EAAE,kQAAkQ;CACzQ,CAAC;AAUF,MAAM,CAAC,MAAM,sBAAsB,GAA2B,sBAAsB,CAAC;IACnF,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,8BAA8B;IAC3C,OAAO,EAAE;QACP,QAAQ,EAAE,sBAAsB;QAChC,WAAW,EAAE,yBAAyB;QACtC,WAAW,EAAE,yBAAyB;QACtC,uBAAuB,EAAE,qCAAqC;KAC/D;IACD,cAAc,EAAE,cAAc,CAAC,SAAS;IACxC,WAAW,EAAE;QACX,cAAc,EAAE,uBAAuB;QACvC,kBAAkB,EAAE,2BAA2B;QAG/C,GAAG,yBAAyB;QAE5B,MAAM,EAAE,CAAC,GAAG,sBAAsB,CAAC;KACpC;IAGD,SAAS,EAAE,EAAE;IAQb,OAAO,EAAE;QACP,CAAC,0BAA0B,CAAC,EAAE,gCAAgC;KAC/D;IACD,UAAU,EAAE,wBAAwB;CACrC,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAsC,CAAC,sBAAsB,CAAC,CAAC;AACtF,eAAe,iBAAiB,CAAC;AAqBjC,MAAM,sBAAsB,GAAG,WAAW,CAAC;AAE3C,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE,eAAe;IAC5B,WAAW,EACT,iKAAiK;IACnK,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,mBAAmB,CAAC,MAAM;IACvC,MAAM,EAAE,cAAc,CAAC,KAAK;IAC5B,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE;QACnB;YAEE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,yBAAyB;YAChC,IAAI,EAAE,mBAAmB,CAAC,IAAI;YAC9B,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,wBAAwB,CAAC,IAAI;YACxC,WAAW,EAAE,sCAAsC;SACpD;QACD;YAEE,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,mBAAmB,CAAC,QAAQ;YAClC,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,wBAAwB,CAAC,IAAI;SACzC;QACD;YAGE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,+BAA+B;YACtC,IAAI,EAAE,mBAAmB,CAAC,IAAI;YAC9B,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,wBAAwB,CAAC,IAAI;YACxC,WAAW,EAAE,QAAQ;YACrB,IAAI,EAAE,iEAAiE;SACxE;KACF;IACD,cAAc,EAAE;QAGd,GAAG,yBAAyB;QAC5B,oBAAoB,EAAE;YACpB,aAAa,EAAE,OAAO;YACtB,MAAM,EAAE,SAAS;SAClB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAmC;IAClE;QAIE,YAAY,EAAE,iBAAiB;QAC/B,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EACT,2EAA2E;QAC7E,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,sBAAsB;QAEnC,MAAM,EAAE,CAAC,GAAG,sBAAsB,CAAC;QACnC,wBAAwB,EAAE,cAAc,CAAC,SAAS;QAClD,WAAW,EAAE,MAAM;KACpB;CACF,CAAC;AAKF,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAI,GAA2B,CAAC,KAAK,CAAC;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAQD,SAAS,eAAe,CACtB,YAA4C;IAE5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,YAAuB,CAAC;IAClD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,IAA+B,CAAC;IAIlD,MAAM,eAAe,GACnB,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ;QACnC,CAAC,MAAM,IAAI,SAAS;YAClB,cAAc,IAAI,SAAS;YAC3B,SAAS,IAAI,SAAS;YACtB,MAAM,IAAI,SAAS;YACnB,kBAAkB,IAAI,SAAS,CAAC,CAAC;IACrC,OAAO,eAAe,CAAC,CAAC,CAAE,SAA6C,CAAC,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC;AAMD,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,GAIf,MAAM,2BAA2B,CAAC"}
@@ -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): Promise<Result<GraphMessageResource>>;
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,GAChB,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAuBlC,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"}
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 = '$expand=attachments';
23
- const path = `users/${encodeURIComponent(userId)}/messages/${encodeURIComponent(messageId)}?${select}&${expand}`;
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":"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"}
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":"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"}
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;AAE/E,OAAO,KAAK,EAEV,oBAAoB,EAErB,MAAM,kBAAkB,CAAC;AAoB1B,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;AAYD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAAC,oBAAoB,CAAC,CA4E9B"}
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
- const FILE_ATTACHMENT_ODATA_TYPE = '#microsoft.graph.fileAttachment';
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.attachments);
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(attachments) {
87
- if (!Array.isArray(attachments)) {
88
- return [];
89
- }
90
- const out = [];
91
- for (const raw of attachments) {
92
- if (!raw || typeof raw !== 'object') {
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":"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"}
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;AAE/E,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,QAAQ,EACR,aAAa,GACd,MAAM,oBAAoB,CAAC;AAqD5B,MAAM,UAAU,qBAAqB,CACnC,OAA6B;IAE7B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,GAAG,CACR,YAAY,CAAC,mBAAmB,EAAE,yCAAyC,CAAC,CAC7E,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAC9E,CAAC;IAID,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,CACR,YAAY,CACV,mBAAmB,EACnB,+DAA+D,EAC/D,EAAE,IAAI,EAAE,2BAA2B,EAAE,CACtC,CACF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,CACR,YAAY,CACV,mBAAmB,EACnB,0EAA0E,EAC1E,EAAE,IAAI,EAAE,cAAc,EAAE,CACzB,CACF,CAAC;IACJ,CAAC;IAKD,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3E,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,GAAG,CACR,YAAY,CACV,mBAAmB,EACnB,0DAA0D,EAC1D,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAC7B,CACF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAElD,MAAM,SAAS,GAAyB;QACtC,SAAS;QACT,IAAI;QACJ,EAAE;QACF,OAAO;QACP,UAAU;QACV,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzD,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1B,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC;QAC5B,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;QACjC,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;QACjC,GAAG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;QAC/B,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClC,GAAG,aAAa,CAAC,aAAa,EAAE,WAAW,CAAC;KAC7C,CAAC;IAEF,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAA6B;IAItD,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,OAA6B;IAI9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3D,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,gBAAgB,CACvB,OAA6B;IAE7B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9D,IAAI,iBAAiB,EAAE,CAAC;QACtB,GAAG,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAAC;IACxC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,sBAAsB,IAAI,EAAE,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,MAAM,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,eAAe,CAAC,UAAyC;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtF,CAAC;AAQD,SAAS,oBAAoB,CAC3B,OAA6B;IAE7B,OAAO,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChE,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;KACzC,CAAC,CAAC,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAqC;IAC7D,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAiD;IAEjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -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.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": "^5.1.3",
31
- "@xemahq/kernel-contracts": "^11.1.0"
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.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.3.0"
19
+ "version": "0.4.1"
20
20
  },
21
21
  "trustTier": "first-party",
22
22
  "connectorRequirements": [