adpa-enterprise-framework-automation
Version:
Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe
180 lines • 4.31 kB
TypeScript
/**
* SharePoint Integration Type Definitions
* Part of ADPA (Automated Document Processing Assistant) v2.1.3
*
* Defines TypeScript interfaces and types for SharePoint integration
* with Microsoft Graph API and Microsoft 365 ecosystem.
*
* Features:
* - OAuth 2.0 and Service Principal authentication
* - Microsoft Graph API integration
* - SharePoint document library management
* - Enterprise security and compliance
*/
export interface SharePointConfig {
authMethod: 'oauth2' | 'service-principal' | 'certificate';
tenantId: string;
clientId: string;
clientSecret?: string;
certificatePath?: string;
siteUrl: string;
documentLibrary: string;
oauth2?: {
redirectUri: string;
scopes: string[];
authority?: string;
};
rootFolderPath?: string;
enableVersioning?: boolean;
retentionDays?: number;
}
export interface SharePointDocument {
title: string;
content: string;
fileName: string;
contentType?: string;
folderPath?: string;
metadata?: Record<string, any>;
tags?: string[];
category?: string;
}
export interface PublishResult {
success: boolean;
driveItemId?: string;
webUrl?: string;
error?: string;
fileName: string;
size?: number;
lastModified?: string;
}
export interface SharePointSite {
id: string;
displayName: string;
name: string;
webUrl: string;
description?: string;
}
export interface SharePointDriveItem {
id: string;
name: string;
webUrl: string;
size: number;
createdDateTime: string;
lastModifiedDateTime: string;
folder?: {
childCount: number;
};
file?: {
mimeType: string;
hashes: {
quickXorHash?: string;
sha1Hash?: string;
};
};
}
export interface SharePointMetadata {
Title?: string;
ContentType?: string;
Author?: string;
Created?: string;
Modified?: string;
DocumentCategory?: string;
ProjectPhase?: string;
PMBOKReference?: string;
DocumentVersion?: string;
ReviewStatus?: string;
ApprovalStatus?: string;
[key: string]: any;
}
export interface BatchUploadOptions {
maxConcurrency?: number;
chunkSize?: number;
retryAttempts?: number;
progressCallback?: (uploaded: number, total: number) => void;
}
export interface SharePointPermissions {
read: boolean;
write: boolean;
delete: boolean;
manage: boolean;
}
export interface OAuth2Config {
tenantId: string;
clientId: string;
redirectUri: string;
scopes: string[];
authority?: string;
cacheLocation?: string;
}
export interface TokenResponse {
access_token: string;
token_type: string;
expires_in: number;
scope: string;
refresh_token?: string;
}
export interface GraphError {
error: {
code: string;
message: string;
innerError?: {
date: string;
'request-id': string;
'client-request-id': string;
};
};
}
export interface PublishingOptions {
parentFolderPath?: string;
enableVersioning?: boolean;
overwriteExisting?: boolean;
createFolders?: boolean;
preserveTimestamps?: boolean;
addMetadata?: boolean;
tagPrefix?: string;
}
export interface SharePointPublishOptions {
folderPath?: string;
labelPrefix?: string;
dryRun?: boolean;
force?: boolean;
createFolders?: boolean;
overwriteExisting?: boolean;
preserveMetadata?: boolean;
enableVersioning?: boolean;
}
export interface SiteCreationOptions {
template?: string;
language?: number;
timeZone?: number;
owners?: string[];
members?: string[];
}
export interface SearchOptions {
query?: string;
fileTypes?: string[];
dateRange?: {
start: string;
end: string;
};
sortBy?: 'name' | 'modified' | 'size';
sortOrder?: 'asc' | 'desc';
top?: number;
}
export interface GraphResponse<T> {
'@odata.context'?: string;
'@odata.nextLink'?: string;
value?: T[];
}
export interface DriveResponse {
id: string;
driveType: string;
name: string;
webUrl: string;
quota: {
total: number;
used: number;
remaining: number;
};
}
//# sourceMappingURL=types.d.ts.map