LibreChat/packages/api/src/index.ts
Atef Bellaaj ca6ce8fceb
🗂️ refactor: Migrate S3 Storage to TypeScript in packages/api (#11947)
* Migrate S3 storage module with unit and integration tests

  - Migrate S3 CRUD and image operations to packages/api/src/storage/s3/
  - Add S3ImageService class with dependency injection
  - Add unit tests using aws-sdk-client-mock
  - Add integration tests with real s3 bucket (condition presence of  AWS_TEST_BUCKET_NAME)

* AI Review Findings Fixes

* chore: tests and refactor S3 storage types

- Added mock implementations for the 'sharp' library in various test files to improve image processing testing.
- Updated type references in S3 storage files from MongoFile to TFile for consistency and type safety.
- Refactored S3 CRUD operations to ensure proper handling of file types and improve code clarity.
- Enhanced integration tests to validate S3 file operations and error handling more effectively.

* chore: rename test file

* Remove duplicate import of refreshS3Url

* chore: imports order

* fix: remove duplicate imports for S3 URL handling in UserController

* fix: remove duplicate import of refreshS3FileUrls in files.js

* test: Add mock implementations for 'sharp' and '@librechat/api' in UserController tests

- Introduced mock functions for the 'sharp' library to facilitate image processing tests, including metadata retrieval and buffer conversion.
- Enhanced mocking for '@librechat/api' to ensure consistent behavior in tests, particularly for the needsRefresh and getNewS3URL functions.

---------

Co-authored-by: Danny Avila <danny@librechat.ai>
2026-03-10 23:16:27 -04:00

55 lines
1.4 KiB
TypeScript

export * from './app';
export * from './cdn';
/* Auth */
export * from './auth';
/* API Keys */
export * from './apiKeys';
/* MCP */
export * from './mcp/registry/MCPServersRegistry';
export * from './mcp/MCPManager';
export * from './mcp/connection';
export * from './mcp/oauth';
export * from './mcp/auth';
export * from './mcp/zod';
export * from './mcp/errors';
/* Utilities */
export * from './mcp/utils';
export * from './utils';
export { default as Tokenizer, countTokens } from './utils/tokenizer';
export type { EncodingName } from './utils/tokenizer';
export * from './db/utils';
/* OAuth */
export * from './oauth';
export * from './mcp/oauth/OAuthReconnectionManager';
/* Crypto */
export * from './crypto';
/* Flow */
export * from './flow/manager';
/* Middleware */
export * from './middleware';
/* Memory */
export * from './memory';
/* Agents */
export * from './agents';
/* Prompts */
export * from './prompts';
/* Endpoints */
export * from './endpoints';
/* Files */
export * from './files';
/* Storage */
export * from './storage';
/* Tools */
export * from './tools';
/* web search */
export * from './web';
/* Cache */
export * from './cache';
/* Stream */
export * from './stream';
/* Diagnostics */
export { memoryDiagnostics } from './utils/memory';
/* types */
export type * from './mcp/types';
export type * from './flow/types';
export type * from './types';