@vibesdotdev/integrations-microsoft 0.0.0-stage → 1.0.0-rc.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.
Files changed (143) hide show
  1. package/LICENSE +126 -0
  2. package/README.md +120 -2
  3. package/dist/api-client-plugin.d.ts +3 -0
  4. package/dist/api-client-plugin.d.ts.map +1 -0
  5. package/dist/api-client-plugin.js +11 -0
  6. package/dist/api-client-plugin.js.map +1 -0
  7. package/dist/client/helper.d.ts +17 -0
  8. package/dist/client/helper.d.ts.map +1 -0
  9. package/dist/client/helper.js +18 -0
  10. package/dist/client/helper.js.map +1 -0
  11. package/dist/client/index.d.ts +3 -0
  12. package/dist/client/index.d.ts.map +1 -0
  13. package/dist/client/index.js +3 -0
  14. package/dist/client/index.js.map +1 -0
  15. package/dist/client/runtime-client.d.ts +87 -0
  16. package/dist/client/runtime-client.d.ts.map +1 -0
  17. package/dist/client/runtime-client.js +47 -0
  18. package/dist/client/runtime-client.js.map +1 -0
  19. package/dist/cloud.plugin.d.ts +3 -0
  20. package/dist/cloud.plugin.d.ts.map +1 -0
  21. package/dist/cloud.plugin.js +19 -0
  22. package/dist/cloud.plugin.js.map +1 -0
  23. package/dist/email/index.d.ts +13 -0
  24. package/dist/email/index.d.ts.map +1 -0
  25. package/dist/email/index.js +13 -0
  26. package/dist/email/index.js.map +1 -0
  27. package/dist/email/microsoft/index.d.ts +4 -0
  28. package/dist/email/microsoft/index.d.ts.map +1 -0
  29. package/dist/email/microsoft/index.js +4 -0
  30. package/dist/email/microsoft/index.js.map +1 -0
  31. package/dist/email/microsoft/microsoft.descriptor.d.ts +85 -0
  32. package/dist/email/microsoft/microsoft.descriptor.d.ts.map +1 -0
  33. package/dist/email/microsoft/microsoft.descriptor.js +79 -0
  34. package/dist/email/microsoft/microsoft.descriptor.js.map +1 -0
  35. package/dist/email/microsoft/microsoft.impl.d.ts +100 -0
  36. package/dist/email/microsoft/microsoft.impl.d.ts.map +1 -0
  37. package/dist/email/microsoft/microsoft.impl.js +323 -0
  38. package/dist/email/microsoft/microsoft.impl.js.map +1 -0
  39. package/dist/email/microsoft/outlook.mime.d.ts +18 -0
  40. package/dist/email/microsoft/outlook.mime.d.ts.map +1 -0
  41. package/dist/email/microsoft/outlook.mime.js +61 -0
  42. package/dist/email/microsoft/outlook.mime.js.map +1 -0
  43. package/dist/email/microsoft-email.plugin.d.ts +10 -0
  44. package/dist/email/microsoft-email.plugin.d.ts.map +1 -0
  45. package/dist/email/microsoft-email.plugin.js +29 -0
  46. package/dist/email/microsoft-email.plugin.js.map +1 -0
  47. package/dist/index.d.ts +9 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +8 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/integrations-microsoft.plugin.d.ts +4 -0
  52. package/dist/integrations-microsoft.plugin.d.ts.map +1 -0
  53. package/dist/integrations-microsoft.plugin.js +15 -0
  54. package/dist/integrations-microsoft.plugin.js.map +1 -0
  55. package/dist/microsoft/graph-drive-fallback.d.ts +11 -0
  56. package/dist/microsoft/graph-drive-fallback.d.ts.map +1 -0
  57. package/dist/microsoft/graph-drive-fallback.js +90 -0
  58. package/dist/microsoft/graph-drive-fallback.js.map +1 -0
  59. package/dist/microsoft/graph-schemas.d.ts +2 -0
  60. package/dist/microsoft/graph-schemas.d.ts.map +1 -0
  61. package/dist/microsoft/graph-schemas.js +2 -0
  62. package/dist/microsoft/graph-schemas.js.map +1 -0
  63. package/dist/microsoft/graph-sharepoint-client.d.ts +219 -0
  64. package/dist/microsoft/graph-sharepoint-client.d.ts.map +1 -0
  65. package/dist/microsoft/graph-sharepoint-client.js +644 -0
  66. package/dist/microsoft/graph-sharepoint-client.js.map +1 -0
  67. package/dist/microsoft/index.d.ts +8 -0
  68. package/dist/microsoft/index.d.ts.map +1 -0
  69. package/dist/microsoft/index.js +8 -0
  70. package/dist/microsoft/index.js.map +1 -0
  71. package/dist/microsoft/microsoft-delegated-implementation.d.ts +20 -0
  72. package/dist/microsoft/microsoft-delegated-implementation.d.ts.map +1 -0
  73. package/dist/microsoft/microsoft-delegated-implementation.js +69 -0
  74. package/dist/microsoft/microsoft-delegated-implementation.js.map +1 -0
  75. package/dist/microsoft/microsoft-implementation.d.ts +22 -0
  76. package/dist/microsoft/microsoft-implementation.d.ts.map +1 -0
  77. package/dist/microsoft/microsoft-implementation.js +78 -0
  78. package/dist/microsoft/microsoft-implementation.js.map +1 -0
  79. package/dist/microsoft/secrets-fetch.d.ts +20 -0
  80. package/dist/microsoft/secrets-fetch.d.ts.map +1 -0
  81. package/dist/microsoft/secrets-fetch.js +47 -0
  82. package/dist/microsoft/secrets-fetch.js.map +1 -0
  83. package/dist/microsoft/sharepoint-operations.d.ts +23 -0
  84. package/dist/microsoft/sharepoint-operations.d.ts.map +1 -0
  85. package/dist/microsoft/sharepoint-operations.js +123 -0
  86. package/dist/microsoft/sharepoint-operations.js.map +1 -0
  87. package/dist/microsoft/system.integration.microsoft.delegated.descriptor.d.ts +85 -0
  88. package/dist/microsoft/system.integration.microsoft.delegated.descriptor.d.ts.map +1 -0
  89. package/dist/microsoft/system.integration.microsoft.delegated.descriptor.js +109 -0
  90. package/dist/microsoft/system.integration.microsoft.delegated.descriptor.js.map +1 -0
  91. package/dist/microsoft/system.integration.microsoft.descriptor.d.ts +69 -0
  92. package/dist/microsoft/system.integration.microsoft.descriptor.d.ts.map +1 -0
  93. package/dist/microsoft/system.integration.microsoft.descriptor.js +114 -0
  94. package/dist/microsoft/system.integration.microsoft.descriptor.js.map +1 -0
  95. package/dist/microsoft.consumer.plugin.d.ts +4 -0
  96. package/dist/microsoft.consumer.plugin.d.ts.map +1 -0
  97. package/dist/microsoft.consumer.plugin.js +13 -0
  98. package/dist/microsoft.consumer.plugin.js.map +1 -0
  99. package/dist/schemas/boundary.d.ts +69 -0
  100. package/dist/schemas/boundary.d.ts.map +1 -0
  101. package/dist/schemas/boundary.js +94 -0
  102. package/dist/schemas/boundary.js.map +1 -0
  103. package/dist/schemas/graph.d.ts +139 -0
  104. package/dist/schemas/graph.d.ts.map +1 -0
  105. package/dist/schemas/graph.js +161 -0
  106. package/dist/schemas/graph.js.map +1 -0
  107. package/dist/schemas/oauth.d.ts +131 -0
  108. package/dist/schemas/oauth.d.ts.map +1 -0
  109. package/dist/schemas/oauth.js +27 -0
  110. package/dist/schemas/oauth.js.map +1 -0
  111. package/dist/schemas/operations.d.ts +239 -0
  112. package/dist/schemas/operations.d.ts.map +1 -0
  113. package/dist/schemas/operations.js +29 -0
  114. package/dist/schemas/operations.js.map +1 -0
  115. package/dist/schemas/outlook.d.ts +241 -0
  116. package/dist/schemas/outlook.d.ts.map +1 -0
  117. package/dist/schemas/outlook.js +29 -0
  118. package/dist/schemas/outlook.js.map +1 -0
  119. package/dist/schemas/sharepoint.d.ts +67 -0
  120. package/dist/schemas/sharepoint.d.ts.map +1 -0
  121. package/dist/schemas/sharepoint.js +71 -0
  122. package/dist/schemas/sharepoint.js.map +1 -0
  123. package/dist/server/oauth.d.ts +9 -0
  124. package/dist/server/oauth.d.ts.map +1 -0
  125. package/dist/server/oauth.js +67 -0
  126. package/dist/server/oauth.js.map +1 -0
  127. package/dist/sharepoint/index.d.ts +11 -0
  128. package/dist/sharepoint/index.d.ts.map +1 -0
  129. package/dist/sharepoint/index.js +11 -0
  130. package/dist/sharepoint/index.js.map +1 -0
  131. package/dist/sharepoint/sharepoint.adapter.descriptor.d.ts +10 -0
  132. package/dist/sharepoint/sharepoint.adapter.descriptor.d.ts.map +1 -0
  133. package/dist/sharepoint/sharepoint.adapter.descriptor.js +32 -0
  134. package/dist/sharepoint/sharepoint.adapter.descriptor.js.map +1 -0
  135. package/dist/sharepoint/sharepoint.adapter.impl.d.ts +195 -0
  136. package/dist/sharepoint/sharepoint.adapter.impl.d.ts.map +1 -0
  137. package/dist/sharepoint/sharepoint.adapter.impl.js +645 -0
  138. package/dist/sharepoint/sharepoint.adapter.impl.js.map +1 -0
  139. package/dist/sharepoint/sharepoint.schemas.d.ts +2 -0
  140. package/dist/sharepoint/sharepoint.schemas.d.ts.map +1 -0
  141. package/dist/sharepoint/sharepoint.schemas.js +2 -0
  142. package/dist/sharepoint/sharepoint.schemas.js.map +1 -0
  143. package/package.json +146 -4
@@ -0,0 +1,71 @@
1
+ /**
2
+ * SharePoint Storage Adapter Schemas
3
+ *
4
+ * Zod schemas for document records and configuration
5
+ * used by the SharePoint storage adapter.
6
+ */
7
+ import * as z from 'zod/v4';
8
+ // Document Record
9
+ /**
10
+ * A document record stored in SharePoint.
11
+ *
12
+ * Normalized from Graph API DriveItem responses to
13
+ * provide a consistent document interface.
14
+ */
15
+ export const SharePointDocumentRecordSchema = z.object({
16
+ /** Unique item ID from Graph API (drive item ID) */
17
+ id: z.string(),
18
+ /** Document file name */
19
+ name: z.string(),
20
+ /** File size in bytes */
21
+ size: z.number(),
22
+ /** Last modified timestamp (ISO 8601) */
23
+ modifiedAt: z.string(),
24
+ /** MIME type of the document */
25
+ mimeType: z.string().default('application/octet-stream'),
26
+ /** SharePoint web URL for the document */
27
+ webUrl: z.string().optional(),
28
+ /** Parent container ID (drive/folder ID) */
29
+ containerId: z.string().default('')
30
+ });
31
+ /**
32
+ * Metadata provided when uploading a document.
33
+ */
34
+ export const SharePointUploadMetadataSchema = z.object({
35
+ /** File name for the upload */
36
+ name: z.string().min(1),
37
+ /** Optional content type override */
38
+ contentType: z.string().optional(),
39
+ /** Optional conflict behavior: 'fail' | 'replace' | 'rename' */
40
+ conflictBehavior: z.enum(['fail', 'replace', 'rename']).default('replace')
41
+ });
42
+ /**
43
+ * List options for querying documents in a container.
44
+ */
45
+ export const SharePointListOptionsSchema = z.object({
46
+ /** Filter by file extension (e.g. '.pdf') */
47
+ extension: z.string().optional(),
48
+ /** Whether to include folders in results */
49
+ includeFolders: z.boolean().default(false),
50
+ /** Maximum items to return */
51
+ limit: z.number().min(1).max(200).default(100)
52
+ });
53
+ // Configuration
54
+ /**
55
+ * Configuration for the SharePoint storage adapter.
56
+ *
57
+ * The adapter needs a GraphSharePointClient to communicate
58
+ * with Microsoft Graph API, and optionally a default site ID
59
+ * and drive ID for operations that don't specify a container.
60
+ */
61
+ export const SharePointAdapterConfigSchema = z.object({
62
+ /** Default SharePoint site ID for operations without explicit containerId */
63
+ siteId: z.string().optional(),
64
+ /** Default drive ID within the site */
65
+ driveId: z.string().optional(),
66
+ basePath: z.string().optional(),
67
+ integrationId: z.string().default('integration.microsoft')
68
+ });
69
+ export const SharePointFolderManifestSchema = z.string().optional();
70
+ export const SharePointAdapterOverrideSchema = SharePointAdapterConfigSchema.partial();
71
+ //# sourceMappingURL=sharepoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharepoint.js","sourceRoot":"","sources":["../../src/schemas/sharepoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,kBAAkB;AAElB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAC,CAAC,CAAC,MAAM,CAAC;IACpD,oDAAoD;IACpD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,yBAAyB;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,yBAAyB;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,yCAAyC;IACzC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,gCAAgC;IAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC;IACxD,0CAA0C;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,4CAA4C;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CACnC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAC,CAAC,CAAC,MAAM,CAAC;IACpD,+BAA+B;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,qCAAqC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,gEAAgE;IAChE,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAC,SAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;CACxE,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAC,CAAC,CAAC,MAAM,CAAC;IACjD,6CAA6C;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,4CAA4C;IAC5C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,8BAA8B;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CAC9C,CAAC,CAAC;AAIH,gBAAgB;AAEhB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAC,CAAC,CAAC,MAAM,CAAC;IACnD,6EAA6E;IAC7E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,uCAAuC;IACvC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;CAC1D,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,8BAA8B,GAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;AAElE,MAAM,CAAC,MAAM,+BAA+B,GAAC,6BAA6B,CAAC,OAAO,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type MicrosoftExchangeParams, type MicrosoftTokenResponse, type MicrosoftTokenStoreInput, type OAuthSecretService, type OAuthSecretServiceContext } from '../schemas/oauth.ts';
2
+ export type { OAuthSecretMetadataValue, OAuthSecretServiceContext, OAuthSecretService, MicrosoftTokenResponse, OAuthMicrosoftResult, MicrosoftExchangeParams } from '../schemas/oauth.ts';
3
+ export declare function exchangeMicrosoftCodeForTokens(input: MicrosoftExchangeParams): Promise<MicrosoftTokenResponse>;
4
+ /** Update existing owner records in place. An omitted refresh token never retires a recoverable credential. */
5
+ export declare function storeMicrosoftTokens(params: MicrosoftTokenStoreInput & {
6
+ service: OAuthSecretService;
7
+ context: OAuthSecretServiceContext;
8
+ }): Promise<void>;
9
+ //# sourceMappingURL=oauth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/server/oauth.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,uBAAuB,EAAC,KAAK,sBAAsB,EAAC,KAAK,wBAAwB,EAAC,KAAK,kBAAkB,EAAC,KAAK,yBAAyB,EAC7I,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,wBAAwB,EAAC,yBAAyB,EAAC,kBAAkB,EAAC,sBAAsB,EAAC,oBAAoB,EAAC,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAErL,wBAAsB,8BAA8B,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA0BpH;AAED,+GAA+G;AAC/G,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAC;IAAE,OAAO,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,yBAAyB,CAAC;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/J"}
@@ -0,0 +1,67 @@
1
+ import { CaughtFailureSchema, valueFreeFailure, settle } from '@vibesdotdev/kernel';
2
+ import { CapabilityError } from '@vibesdotdev/kernel';
3
+ import { admitMicrosoft } from "../schemas/boundary.js";
4
+ import { OAuthSecretRecordSchema, MicrosoftExchangeParamsSchema, MicrosoftTokenResponseSchema, MicrosoftTokenStoreInputSchema, OAuthSecretServiceContextSchema } from "../schemas/oauth.js";
5
+ export async function exchangeMicrosoftCodeForTokens(input) {
6
+ const params = admitMicrosoft(MicrosoftExchangeParamsSchema, input);
7
+ let response;
8
+ try {
9
+ response = await fetch(`https://login.microsoftonline.com/${encodeURIComponent(params.tenantId)}/oauth2/v2.0/token`, {
10
+ method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', Accept: 'application/json' },
11
+ body: new URLSearchParams({
12
+ grant_type: 'authorization_code', code: params.code, redirect_uri: params.redirectUri,
13
+ client_id: params.clientId, client_secret: params.clientSecret, scope: (params.scopes ?? ['https://graph.microsoft.com/.default']).join(' ')
14
+ })
15
+ });
16
+ }
17
+ catch (error) {
18
+ const failure = CaughtFailureSchema.parse(error);
19
+ if (failure instanceof CapabilityError)
20
+ throw failure;
21
+ throw new CapabilityError('Microsoft request failed.', 'UNAVAILABLE', {
22
+ reason: 'microsoft-request-failed', cause: failure, details: { failure: valueFreeFailure(failure) }
23
+ });
24
+ }
25
+ if (!response.ok)
26
+ throw new CapabilityError('Microsoft token exchange was refused.', 'AUTH_REQUIRED', {
27
+ reason: 'microsoft-oauth-exchange-refused', details: { status: response.status }
28
+ });
29
+ const decoded = await settle(() => response.json());
30
+ if (!decoded.ok)
31
+ throw new CapabilityError('Microsoft token endpoint returned invalid JSON.', 'UNAVAILABLE', {
32
+ reason: 'microsoft-oauth-response-invalid', details: { failure: valueFreeFailure(decoded.cause) }
33
+ });
34
+ return admitMicrosoft(MicrosoftTokenResponseSchema, decoded.value, 'response');
35
+ }
36
+ /** Update existing owner records in place. An omitted refresh token never retires a recoverable credential. */
37
+ export async function storeMicrosoftTokens(params) {
38
+ const input = admitMicrosoft(MicrosoftTokenStoreInputSchema, params);
39
+ const context = admitMicrosoft(OAuthSecretServiceContextSchema, params.context);
40
+ const tokens = [{ name: 'accessToken', value: input.accessToken, expiresIn: input.expiresIn }];
41
+ const refresh = input.refreshToken;
42
+ const write = async (name, value, expiresIn) => {
43
+ const query = { name, scope: 'org', scopeId: input.scopeId, providerType: 'microsoft' };
44
+ const metadata = {
45
+ integration: 'microsoft', tenantId: input.tenantId,
46
+ expiresAt: expiresIn === undefined ? null : new Date(Date.now() + expiresIn * 1000).toISOString(),
47
+ tokenType: name === 'accessToken' ? 'access' : 'refresh'
48
+ };
49
+ const records = admitMicrosoft(OAuthSecretRecordSchema.array(), await params.service.list(query, context));
50
+ // The secret owner's list filters scope/provider; name is filtered here against its record contract.
51
+ const existing = records.filter(record => record.name === query.name && record.scope === query.scope &&
52
+ record.scopeId === query.scopeId && record.providerType === query.providerType);
53
+ if (existing.length > 0) {
54
+ // Replace all readable matches: historical duplicates must not retain a stale token.
55
+ for (const record of existing)
56
+ await params.service.update(record.id, { value, metadata }, context);
57
+ }
58
+ else {
59
+ await params.service.create({ ...query, value, metadata }, context);
60
+ }
61
+ };
62
+ for (const token of tokens)
63
+ await write(token.name, token.value, token.expiresIn);
64
+ if (refresh !== undefined)
65
+ await write('refreshToken', refresh, input.refreshExpiresIn);
66
+ }
67
+ //# sourceMappingURL=oauth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/server/oauth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * SharePoint Storage Adapter
3
+ *
4
+ * Exports descriptor, implementation, and types for the
5
+ * SharePoint document storage adapter backed by Graph API.
6
+ */
7
+ export { SharePointStorageAdapter } from './sharepoint.adapter.impl.ts';
8
+ export { default as sharepointAdapterDescriptor } from './sharepoint.adapter.descriptor.ts';
9
+ export { default as sharepointAdapterImpl, createSharePointAdapterImplementation } from './sharepoint.adapter.impl.ts';
10
+ export { SharePointDocumentRecordSchema, SharePointUploadMetadataSchema, SharePointListOptionsSchema, SharePointAdapterConfigSchema, type SharePointDocumentRecord, type SharePointUploadMetadata, type SharePointListOptions, type SharePointAdapterConfig } from './sharepoint.schemas.ts';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sharepoint/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,EACN,OAAO,IAAI,qBAAqB,EAChC,qCAAqC,EACrC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * SharePoint Storage Adapter
3
+ *
4
+ * Exports descriptor, implementation, and types for the
5
+ * SharePoint document storage adapter backed by Graph API.
6
+ */
7
+ export { SharePointStorageAdapter } from "./sharepoint.adapter.impl.js";
8
+ export { default as sharepointAdapterDescriptor } from "./sharepoint.adapter.descriptor.js";
9
+ export { default as sharepointAdapterImpl, createSharePointAdapterImplementation } from "./sharepoint.adapter.impl.js";
10
+ export { SharePointDocumentRecordSchema, SharePointUploadMetadataSchema, SharePointListOptionsSchema, SharePointAdapterConfigSchema } from "./sharepoint.schemas.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sharepoint/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,EACN,OAAO,IAAI,qBAAqB,EAChC,qCAAqC,EACrC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,8BAA8B,EAC9B,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAK7B,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * SharePoint Storage Adapter Descriptor
3
+ *
4
+ * Runtime descriptor for the SharePoint document storage adapter.
5
+ * Implements the storage/adapter kind with document protocol support.
6
+ */
7
+ import type { StorageAdapterDescriptor } from '@vibesdotdev/storage/schemas/adapter-descriptor';
8
+ declare const descriptor: StorageAdapterDescriptor;
9
+ export default descriptor;
10
+ //# sourceMappingURL=sharepoint.adapter.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharepoint.adapter.descriptor.d.ts","sourceRoot":"","sources":["../../src/sharepoint/sharepoint.adapter.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAEhG,QAAA,MAAM,UAAU,EAAE,wBAyBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * SharePoint Storage Adapter Descriptor
3
+ *
4
+ * Runtime descriptor for the SharePoint document storage adapter.
5
+ * Implements the storage/adapter kind with document protocol support.
6
+ */
7
+ const descriptor = {
8
+ id: 'sharepoint',
9
+ kind: 'storage/adapter',
10
+ name: 'SharePoint Storage',
11
+ description: 'Document + object storage backed by Microsoft SharePoint via Graph API. Supports browsing, uploading, downloading, and deleting documents and blobs.',
12
+ tags: ['storage', 'sharepoint', 'microsoft', 'graph', 'documents', 'cloud'],
13
+ hardware: ['consumer'],
14
+ enabled: true,
15
+ // Storage-specific fields
16
+ protocols: ['document', 'object'],
17
+ basePathSemantics: 'unused',
18
+ capabilities: ['list', 'read', 'write', 'browse', 'search'],
19
+ requiresPairSchema: false,
20
+ supportsTransactions: false,
21
+ supportsTTL: false,
22
+ supportsSearch: true,
23
+ supportsFTS: false,
24
+ persistent: true,
25
+ supportsSubscription: false,
26
+ supportsHierarchy: true,
27
+ supportsComputedFields: false,
28
+ supportsSideEffects: false,
29
+ supportsRawQueries: false
30
+ };
31
+ export default descriptor;
32
+ //# sourceMappingURL=sharepoint.adapter.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharepoint.adapter.descriptor.js","sourceRoot":"","sources":["../../src/sharepoint/sharepoint.adapter.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,UAAU,GAA6B;IAC5C,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EACV,sJAAsJ;IACvJ,IAAI,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC;IAC3E,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IAEb,0BAA0B;IAC1B,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC;IACjC,iBAAiB,EAAE,QAAQ;IAC3B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC3D,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,KAAK;IAC3B,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,IAAI;IAChB,oBAAoB,EAAE,KAAK;IAC3B,iBAAiB,EAAE,IAAI;IACvB,sBAAsB,EAAE,KAAK;IAC7B,mBAAmB,EAAE,KAAK;IAC1B,kBAAkB,EAAE,KAAK;CACzB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * SharePoint Storage Adapter Implementation
3
+ *
4
+ * Wraps the GraphSharePointClient in the StorageAdapterInterface.
5
+ * Provides document protocol operations: list, get, put, delete
6
+ * against SharePoint drives via Microsoft Graph API.
7
+ *
8
+ * Usage:
9
+ * ```ts
10
+ * const adapter = await runtime.query('storage/adapter')
11
+ * .withId('sharepoint').resolve();
12
+ * const store = adapter.documentStore(containerId, schema);
13
+ * ```
14
+ */
15
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
16
+ import { SharePointFolderManifestSchema } from '../schemas/sharepoint.ts';
17
+ import { SharePointAdapterConfigSchema } from './sharepoint.schemas.ts';
18
+ import { z } from 'zod/v4';
19
+ import type { StorageAdapterCapabilities, StorageHealthStatus } from '@vibesdotdev/storage/interfaces/adapter';
20
+ import type { StorageDocumentStoreInterface } from '@vibesdotdev/storage/interfaces/document-store';
21
+ import type { StorageObjectStoreInterface } from '@vibesdotdev/storage/interfaces/object-store';
22
+ import type { StorageKeyValueInterface } from '@vibesdotdev/storage/interfaces/key-value';
23
+ import type { RepositoryOptions, StorageRepositoryInterface } from '@vibesdotdev/storage/interfaces/repository';
24
+ import type { StorageRecordInterface } from '@vibesdotdev/storage/interfaces/record';
25
+ import type { StorageRecordDescriptor } from '@vibesdotdev/storage/schemas/record';
26
+ import type { StorageAdapterDescriptor, StorageDrive, StorageEntry } from '@vibesdotdev/storage/schemas/adapter-descriptor';
27
+ import { GraphSharePointClient } from '../microsoft/graph-sharepoint-client.ts';
28
+ import type { SharePointDocumentRecord } from './sharepoint.schemas.ts';
29
+ type SharePointRuntimeConfig = z.input<typeof SharePointAdapterConfigSchema> & {
30
+ runtime?: RuntimeRef;
31
+ };
32
+ /**
33
+ * Storage adapter wrapping Microsoft Graph SharePoint client.
34
+ *
35
+ * Supports the document protocol for browsing, uploading,
36
+ * downloading, and deleting documents in SharePoint drives.
37
+ *
38
+ * The adapter requires a GraphSharePointClient instance
39
+ * which supplies its runtime-owned authenticated transport.
40
+ */
41
+ export declare class SharePointStorageAdapter {
42
+ readonly id: string;
43
+ readonly capabilities: StorageAdapterCapabilities;
44
+ private config;
45
+ private client;
46
+ constructor(descriptor: StorageAdapterDescriptor);
47
+ configure(config: SharePointRuntimeConfig): void;
48
+ /**
49
+ * Set the GraphSharePointClient instance.
50
+ * Must be called before using the adapter.
51
+ */
52
+ setClient(client: GraphSharePointClient): void;
53
+ isConfigured(): boolean;
54
+ /**
55
+ * Ensure the GraphSharePointClient is available.
56
+ */
57
+ private ensureClient;
58
+ /**
59
+ * Resolve the GraphSharePointClient for a browse call.
60
+ *
61
+ * Prefers an explicitly-injected client (`setClient()`). Otherwise lazily
62
+ * resolves the delegated Microsoft integration provider from the runtime and
63
+ * builds a request-scoped reference-only client from it. Inside a request context
64
+ * (e.g. the platform-web `/api/storage/adapters/sharepoint/*` route wraps the
65
+ * call in `runWithRequestContext`) it binds to the calling user's delegated
66
+ * Graph token. This mirrors the integration-ops dispatch path so browse works
67
+ * without the singleton needing a pre-set client.
68
+ */
69
+ private resolveBrowseClient;
70
+ /**
71
+ * Get a document store for a SharePoint container.
72
+ *
73
+ * @param namespace - The SharePoint site ID (container ID)
74
+ * @param schema - Zod schema (validated on load)
75
+ * @param manifest - Optional folder path string for subfolder browsing
76
+ */
77
+ documentStore<T>(namespace: string, schema: z.ZodType<T>, manifest?: z.input<typeof SharePointFolderManifestSchema>): StorageDocumentStoreInterface<T>;
78
+ /**
79
+ * Get a key-addressed object store scoped to a SharePoint site + base folder.
80
+ * Keys are drive-relative paths under `basePath`. The Graph client is resolved
81
+ * lazily per call — the injected client (`setClient`) when present, else the
82
+ * configured Microsoft integration in the current request context (app-only
83
+ * or delegated, per `config.integrationId`).
84
+ *
85
+ * @param namespace Optional site id (falls back to `config.siteId`).
86
+ * @param config Optional `{ siteId?, basePath? }` overrides.
87
+ */
88
+ objectStore(namespace?: string, config?: SharePointRuntimeConfig): StorageObjectStoreInterface;
89
+ /**
90
+ * Enumerate the SharePoint sites this credential can reach.
91
+ *
92
+ * Each site is surfaced as a {@link StorageDrive} with `kind: 'site'`.
93
+ * Consumers use the returned `id` as `driveId` for {@link list}.
94
+ */
95
+ listDrives(): Promise<StorageDrive[]>;
96
+ /**
97
+ * Enumerate files and folders inside a SharePoint site's default drive.
98
+ *
99
+ * @param driveId - SharePoint site id (from {@link listDrives}).
100
+ * @param path - Path relative to the drive root. Defaults to the root
101
+ * when omitted or empty.
102
+ * @returns Mixed `file` and `directory` entries at that path.
103
+ */
104
+ list(driveId: string, path?: string): Promise<StorageEntry[]>;
105
+ /**
106
+ * Search for files matching a text query within a SharePoint drive.
107
+ *
108
+ * Delegates to Graph's server-side recursive drive search so results can
109
+ * be deeply nested (not limited to one folder level like {@link list}).
110
+ * Only files are returned — Graph search hits are always file-type items.
111
+ *
112
+ * @param driveId - SharePoint site id (from {@link listDrives}).
113
+ * @param query - Free-text search query (file name + content for indexed types).
114
+ * @param opts.path - Optional drive-root-relative subtree to scope the search.
115
+ * @param opts.limit - Maximum number of results (default 50, max 200).
116
+ * @returns Matching entries as {@link StorageEntry}s.
117
+ */
118
+ search(driveId: string, query: string, opts?: {
119
+ path?: string;
120
+ limit?: number;
121
+ }): Promise<StorageEntry[]>;
122
+ /**
123
+ * Mint a fresh pre-authenticated download URL for a file entry (canonical
124
+ * `storage/adapter` source-mint extension). By ITEM ID first — Graph search
125
+ * hits can carry partial parent paths (observed: bare filenames for nested
126
+ * files), and ids survive moves/renames — falling back to path addressing.
127
+ * Config is per-call for the same reason as {@link objectStore}: the
128
+ * resolved adapter is shared, so `configure()` would race across scopes.
129
+ */
130
+ sourceUrlForEntry(driveId: string, ref: {
131
+ itemId?: string;
132
+ path?: string;
133
+ }, config?: SharePointRuntimeConfig): Promise<string | null>;
134
+ listItem(driveId: string, itemId: string): Promise<StorageEntry[]>;
135
+ /**
136
+ * List documents (files only) in a SharePoint site, returning the
137
+ * SharePoint-typed record shape. Distinct from the canonical
138
+ * {@link list} browse method which returns {@link StorageEntry}s of
139
+ * both files and folders.
140
+ *
141
+ * @param containerId - SharePoint site ID
142
+ */
143
+ listDocuments(containerId: string): Promise<SharePointDocumentRecord[]>;
144
+ /**
145
+ * Get a document with its content stream.
146
+ *
147
+ * @param documentId - Drive item ID
148
+ * @param siteId - Optional site ID (falls back to configured siteId)
149
+ * @returns Object with metadata and content Blob
150
+ */
151
+ get(documentId: string, siteId?: string): Promise<{
152
+ metadata: SharePointDocumentRecord;
153
+ content: Blob;
154
+ }>;
155
+ /**
156
+ * Upload a document to SharePoint.
157
+ *
158
+ * Uses the Graph API upload endpoint:
159
+ * PUT /sites/{site-id}/drive/root:/{folderPath}/{filename}:/content
160
+ *
161
+ * @param containerId - SharePoint site ID
162
+ * @param metadata - Upload metadata (name, contentType, conflictBehavior)
163
+ * @param content - File content as ArrayBuffer or Blob
164
+ * @returns Created document record
165
+ */
166
+ put(containerId: string, metadata: {
167
+ name: string;
168
+ contentType?: string;
169
+ }, content: ArrayBuffer | Blob): Promise<SharePointDocumentRecord>;
170
+ /**
171
+ * Delete a document from SharePoint.
172
+ *
173
+ * DELETE /sites/{site-id}/drive/items/{item-id}
174
+ *
175
+ * @param documentId - Drive item ID to delete
176
+ * @param siteId - Optional site ID (falls back to configured siteId)
177
+ */
178
+ delete(documentId: string, siteId?: string): Promise<void>;
179
+ keyValueStore<TKey, TValue>(_namespace: string, _keySchema: z.ZodType<TKey>, _valueSchema: z.ZodType<TValue>): StorageKeyValueInterface<TKey, TValue>;
180
+ repository<T>(_tableName: string, _schema: z.ZodType<T>, _options?: RepositoryOptions): StorageRepositoryInterface<T>;
181
+ record<T = unknown>(_descriptor: StorageRecordDescriptor): StorageRecordInterface<T>;
182
+ ensureReady(): Promise<void>;
183
+ getDatabaseConnection(): never;
184
+ initialize(): Promise<void>;
185
+ close(): Promise<void>;
186
+ healthCheck(): Promise<StorageHealthStatus>;
187
+ }
188
+ /**
189
+ * Builds one adapter instance for one runtime. The adapter holds per-configure
190
+ * state (`config.runtime`, injected client), so the plugin's loader calls this
191
+ * once per runtime; a module-level instance would cross-talk between runtimes.
192
+ */
193
+ export declare function createSharePointAdapterImplementation(): import("@vibesdotdev/kernel").RuntimeImplementationWrapper<SharePointStorageAdapter>;
194
+ export default createSharePointAdapterImplementation;
195
+ //# sourceMappingURL=sharepoint.adapter.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharepoint.adapter.impl.d.ts","sourceRoot":"","sources":["../../src/sharepoint/sharepoint.adapter.impl.ts"],"names":[],"mappings":"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"}