coding-agent-benchmarks 0.3.0 → 0.3.2
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/README.md +2 -0
- package/dist/adapters/claudeCodeCLI.d.ts.map +1 -1
- package/dist/adapters/claudeCodeCLI.js +1 -0
- package/dist/adapters/claudeCodeCLI.js.map +1 -1
- package/dist/runner.d.ts +0 -3
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +1 -4
- package/dist/runner.js.map +1 -1
- package/dist/validators/eslintValidator.d.ts +1 -1
- package/dist/validators/eslintValidator.d.ts.map +1 -1
- package/dist/validators/eslintValidator.js +23 -23
- package/dist/validators/eslintValidator.js.map +1 -1
- package/package.json +7 -1
- package/dist/User.d.ts +0 -10
- package/dist/User.d.ts.map +0 -1
- package/dist/User.js +0 -3
- package/dist/User.js.map +0 -1
- package/dist/config/defaultScenarios.d.ts +0 -6
- package/dist/config/defaultScenarios.d.ts.map +0 -1
- package/dist/config/defaultScenarios.js +0 -209
- package/dist/config/defaultScenarios.js.map +0 -1
- package/dist/config/environment.d.ts +0 -51
- package/dist/config/environment.d.ts.map +0 -1
- package/dist/config/environment.js +0 -57
- package/dist/config/environment.js.map +0 -1
- package/dist/config/parser.d.ts +0 -6
- package/dist/config/parser.d.ts.map +0 -1
- package/dist/config/parser.js +0 -87
- package/dist/config/parser.js.map +0 -1
- package/dist/examples/file-upload-example.d.ts +0 -2
- package/dist/examples/file-upload-example.d.ts.map +0 -1
- package/dist/examples/file-upload-example.js +0 -37
- package/dist/examples/file-upload-example.js.map +0 -1
- package/dist/examples/typedEventEmitterExample.d.ts +0 -5
- package/dist/examples/typedEventEmitterExample.d.ts.map +0 -1
- package/dist/examples/typedEventEmitterExample.js +0 -44
- package/dist/examples/typedEventEmitterExample.js.map +0 -1
- package/dist/registration/database.d.ts +0 -13
- package/dist/registration/database.d.ts.map +0 -1
- package/dist/registration/database.js +0 -35
- package/dist/registration/database.js.map +0 -1
- package/dist/registration/email.d.ts +0 -17
- package/dist/registration/email.d.ts.map +0 -1
- package/dist/registration/email.js +0 -40
- package/dist/registration/email.js.map +0 -1
- package/dist/registration/emailService.d.ts +0 -13
- package/dist/registration/emailService.d.ts.map +0 -1
- package/dist/registration/emailService.js +0 -26
- package/dist/registration/emailService.js.map +0 -1
- package/dist/registration/example.d.ts +0 -2
- package/dist/registration/example.d.ts.map +0 -1
- package/dist/registration/example.js +0 -37
- package/dist/registration/example.js.map +0 -1
- package/dist/registration/index.d.ts +0 -7
- package/dist/registration/index.d.ts.map +0 -1
- package/dist/registration/index.js +0 -15
- package/dist/registration/index.js.map +0 -1
- package/dist/registration/password.d.ts +0 -3
- package/dist/registration/password.d.ts.map +0 -1
- package/dist/registration/password.js +0 -27
- package/dist/registration/password.js.map +0 -1
- package/dist/registration/passwordHasher.d.ts +0 -8
- package/dist/registration/passwordHasher.d.ts.map +0 -1
- package/dist/registration/passwordHasher.js +0 -39
- package/dist/registration/passwordHasher.js.map +0 -1
- package/dist/registration/registrationService.d.ts +0 -14
- package/dist/registration/registrationService.d.ts.map +0 -1
- package/dist/registration/registrationService.js +0 -49
- package/dist/registration/registrationService.js.map +0 -1
- package/dist/registration/service.d.ts +0 -14
- package/dist/registration/service.d.ts.map +0 -1
- package/dist/registration/service.js +0 -48
- package/dist/registration/service.js.map +0 -1
- package/dist/registration/types.d.ts +0 -22
- package/dist/registration/types.d.ts.map +0 -1
- package/dist/registration/types.js +0 -3
- package/dist/registration/types.js.map +0 -1
- package/dist/registration/userRepository.d.ts +0 -12
- package/dist/registration/userRepository.d.ts.map +0 -1
- package/dist/registration/userRepository.js +0 -28
- package/dist/registration/userRepository.js.map +0 -1
- package/dist/registration/validator.d.ts +0 -7
- package/dist/registration/validator.d.ts.map +0 -1
- package/dist/registration/validator.js +0 -44
- package/dist/registration/validator.js.map +0 -1
- package/dist/registration/validators.d.ts +0 -5
- package/dist/registration/validators.d.ts.map +0 -1
- package/dist/registration/validators.js +0 -60
- package/dist/registration/validators.js.map +0 -1
- package/dist/sync/cache.d.ts +0 -14
- package/dist/sync/cache.d.ts.map +0 -1
- package/dist/sync/cache.js +0 -73
- package/dist/sync/cache.js.map +0 -1
- package/dist/sync/index.d.ts +0 -7
- package/dist/sync/index.d.ts.map +0 -1
- package/dist/sync/index.js +0 -20
- package/dist/sync/index.js.map +0 -1
- package/dist/sync/resolver.d.ts +0 -12
- package/dist/sync/resolver.d.ts.map +0 -1
- package/dist/sync/resolver.js +0 -43
- package/dist/sync/resolver.js.map +0 -1
- package/dist/sync/service.d.ts +0 -20
- package/dist/sync/service.d.ts.map +0 -1
- package/dist/sync/service.js +0 -162
- package/dist/sync/service.js.map +0 -1
- package/dist/sync/source.d.ts +0 -21
- package/dist/sync/source.d.ts.map +0 -1
- package/dist/sync/source.js +0 -58
- package/dist/sync/source.js.map +0 -1
- package/dist/sync/types.d.ts +0 -56
- package/dist/sync/types.d.ts.map +0 -1
- package/dist/sync/types.js +0 -21
- package/dist/sync/types.js.map +0 -1
- package/dist/utils/cache.d.ts +0 -11
- package/dist/utils/cache.d.ts.map +0 -1
- package/dist/utils/cache.js +0 -28
- package/dist/utils/cache.js.map +0 -1
- package/dist/utils/config-merger.d.ts +0 -11
- package/dist/utils/config-merger.d.ts.map +0 -1
- package/dist/utils/config-merger.js +0 -36
- package/dist/utils/config-merger.js.map +0 -1
- package/dist/utils/configParser.d.ts +0 -9
- package/dist/utils/configParser.d.ts.map +0 -1
- package/dist/utils/configParser.js +0 -51
- package/dist/utils/configParser.js.map +0 -1
- package/dist/utils/database-providers.d.ts +0 -23
- package/dist/utils/database-providers.d.ts.map +0 -1
- package/dist/utils/database-providers.js +0 -48
- package/dist/utils/database-providers.js.map +0 -1
- package/dist/utils/fetchUserData.d.ts +0 -11
- package/dist/utils/fetchUserData.d.ts.map +0 -1
- package/dist/utils/fetchUserData.js +0 -31
- package/dist/utils/fetchUserData.js.map +0 -1
- package/dist/utils/file-upload-handler.d.ts +0 -46
- package/dist/utils/file-upload-handler.d.ts.map +0 -1
- package/dist/utils/file-upload-handler.js +0 -110
- package/dist/utils/file-upload-handler.js.map +0 -1
- package/dist/utils/statistics.d.ts +0 -9
- package/dist/utils/statistics.d.ts.map +0 -1
- package/dist/utils/statistics.js +0 -26
- package/dist/utils/statistics.js.map +0 -1
- package/dist/utils/storage-providers.d.ts +0 -24
- package/dist/utils/storage-providers.d.ts.map +0 -1
- package/dist/utils/storage-providers.js +0 -38
- package/dist/utils/storage-providers.js.map +0 -1
- package/dist/utils/transformArray.d.ts +0 -18
- package/dist/utils/transformArray.d.ts.map +0 -1
- package/dist/utils/transformArray.js +0 -21
- package/dist/utils/transformArray.js.map +0 -1
- package/dist/utils/userUtils.d.ts +0 -9
- package/dist/utils/userUtils.d.ts.map +0 -1
- package/dist/utils/userUtils.js +0 -14
- package/dist/utils/userUtils.js.map +0 -1
- /package/dist/utils/{typedEventEmitter.d.ts → TypedEventEmitter.d.ts} +0 -0
- /package/dist/utils/{typedEventEmitter.d.ts.map → TypedEventEmitter.d.ts.map} +0 -0
- /package/dist/utils/{typedEventEmitter.js → TypedEventEmitter.js} +0 -0
- /package/dist/utils/{typedEventEmitter.js.map → TypedEventEmitter.js.map} +0 -0
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface User {
|
|
2
|
-
readonly id: number;
|
|
3
|
-
readonly name: string;
|
|
4
|
-
readonly email: string;
|
|
5
|
-
readonly username: string;
|
|
6
|
-
readonly createdAt: Date;
|
|
7
|
-
}
|
|
8
|
-
declare const fetchUserData: (userId: number) => Promise<User>;
|
|
9
|
-
export { fetchUserData };
|
|
10
|
-
export type { User };
|
|
11
|
-
//# sourceMappingURL=fetchUserData.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchUserData.d.ts","sourceRoot":"","sources":["../../src/utils/fetchUserData.ts"],"names":[],"mappings":"AAAA,UAAU,IAAI;IACZ,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B;AAUD,QAAA,MAAM,aAAa,GAAU,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CA6BzD,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,IAAI,EAAE,CAAC"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fetchUserData = void 0;
|
|
4
|
-
const fetchUserData = async (userId) => {
|
|
5
|
-
try {
|
|
6
|
-
const response = await fetch(`https://api.example.com/users/${userId}`);
|
|
7
|
-
if (!response.ok) {
|
|
8
|
-
throw new Error(`HTTP error: ${response.status} ${response.statusText}`);
|
|
9
|
-
}
|
|
10
|
-
const rawData = await response.json();
|
|
11
|
-
if (!rawData.id || !rawData.name || !rawData.email || !rawData.username) {
|
|
12
|
-
throw new Error('Invalid user data: missing required fields');
|
|
13
|
-
}
|
|
14
|
-
const user = {
|
|
15
|
-
id: rawData.id,
|
|
16
|
-
name: rawData.name,
|
|
17
|
-
email: rawData.email,
|
|
18
|
-
username: rawData.username,
|
|
19
|
-
createdAt: new Date(rawData.created_at),
|
|
20
|
-
};
|
|
21
|
-
return user;
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
if (error instanceof Error) {
|
|
25
|
-
throw new Error(`Failed to fetch user data: ${error.message}`);
|
|
26
|
-
}
|
|
27
|
-
throw new Error('Failed to fetch user data: Unknown error');
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
exports.fetchUserData = fetchUserData;
|
|
31
|
-
//# sourceMappingURL=fetchUserData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetchUserData.js","sourceRoot":"","sources":["../../src/utils/fetchUserData.ts"],"names":[],"mappings":";;;AAgBA,MAAM,aAAa,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;IAC5D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAqB,CAAC;QAEzD,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,IAAI,GAAS;YACjB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;SACxC,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC,CAAC;AAEO,sCAAa"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
export interface UploadConfig {
|
|
2
|
-
readonly maxFileSize: number;
|
|
3
|
-
readonly allowedFileTypes: readonly string[];
|
|
4
|
-
readonly storageType: 'disk' | 'cloud';
|
|
5
|
-
readonly storagePath: string;
|
|
6
|
-
readonly cloudProvider?: CloudStorageProvider;
|
|
7
|
-
readonly generateThumbnails: boolean;
|
|
8
|
-
readonly thumbnailSize?: {
|
|
9
|
-
width: number;
|
|
10
|
-
height: number;
|
|
11
|
-
};
|
|
12
|
-
readonly databaseProvider: DatabaseProvider;
|
|
13
|
-
}
|
|
14
|
-
export interface UploadedFile {
|
|
15
|
-
readonly originalName: string;
|
|
16
|
-
readonly sanitizedName: string;
|
|
17
|
-
readonly mimeType: string;
|
|
18
|
-
readonly size: number;
|
|
19
|
-
readonly path: string;
|
|
20
|
-
readonly hash: string;
|
|
21
|
-
readonly thumbnailPath?: string;
|
|
22
|
-
}
|
|
23
|
-
export interface CloudStorageProvider {
|
|
24
|
-
upload(file: Buffer, filename: string): Promise<string>;
|
|
25
|
-
}
|
|
26
|
-
export interface DatabaseProvider {
|
|
27
|
-
createUploadRecord(file: UploadedFile): Promise<string>;
|
|
28
|
-
}
|
|
29
|
-
export interface ValidationResult {
|
|
30
|
-
readonly valid: boolean;
|
|
31
|
-
readonly error?: string;
|
|
32
|
-
}
|
|
33
|
-
export declare class FileUploadHandler {
|
|
34
|
-
private readonly config;
|
|
35
|
-
constructor(config: UploadConfig);
|
|
36
|
-
handleUpload(fileBuffer: Buffer, originalFilename: string, mimeType: string): Promise<UploadedFile>;
|
|
37
|
-
private validateFile;
|
|
38
|
-
private sanitizeFilename;
|
|
39
|
-
private generateHash;
|
|
40
|
-
private generateUniqueFilename;
|
|
41
|
-
private saveToDisk;
|
|
42
|
-
private isImage;
|
|
43
|
-
private generateThumbnail;
|
|
44
|
-
private resizeImage;
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=file-upload-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload-handler.d.ts","sourceRoot":"","sources":["../../src/utils/file-upload-handler.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,YAAY;IAE3C,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC;IAuCxB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,sBAAsB;YAQhB,UAAU;IASxB,OAAO,CAAC,OAAO;YAID,iBAAiB;YA6BjB,WAAW;CAQ1B"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FileUploadHandler = void 0;
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const path_1 = require("path");
|
|
6
|
-
const crypto_1 = require("crypto");
|
|
7
|
-
class FileUploadHandler {
|
|
8
|
-
constructor(config) {
|
|
9
|
-
this.config = config;
|
|
10
|
-
}
|
|
11
|
-
async handleUpload(fileBuffer, originalFilename, mimeType) {
|
|
12
|
-
const validation = this.validateFile(fileBuffer, mimeType);
|
|
13
|
-
if (!validation.valid) {
|
|
14
|
-
throw new Error(`File validation failed: ${validation.error}`);
|
|
15
|
-
}
|
|
16
|
-
const sanitizedFilename = this.sanitizeFilename(originalFilename);
|
|
17
|
-
const fileHash = this.generateHash(fileBuffer);
|
|
18
|
-
const uniqueFilename = this.generateUniqueFilename(sanitizedFilename, fileHash);
|
|
19
|
-
let filePath;
|
|
20
|
-
if (this.config.storageType === 'disk') {
|
|
21
|
-
filePath = await this.saveToDisk(fileBuffer, uniqueFilename);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
if (!this.config.cloudProvider) {
|
|
25
|
-
throw new Error('Cloud provider not configured');
|
|
26
|
-
}
|
|
27
|
-
filePath = await this.config.cloudProvider.upload(fileBuffer, uniqueFilename);
|
|
28
|
-
}
|
|
29
|
-
const uploadedFile = {
|
|
30
|
-
originalName: originalFilename,
|
|
31
|
-
sanitizedName: sanitizedFilename,
|
|
32
|
-
mimeType,
|
|
33
|
-
size: fileBuffer.length,
|
|
34
|
-
path: filePath,
|
|
35
|
-
hash: fileHash,
|
|
36
|
-
};
|
|
37
|
-
if (this.config.generateThumbnails && this.isImage(mimeType)) {
|
|
38
|
-
const thumbnailPath = await this.generateThumbnail(fileBuffer, uniqueFilename, mimeType);
|
|
39
|
-
return { ...uploadedFile, thumbnailPath };
|
|
40
|
-
}
|
|
41
|
-
await this.config.databaseProvider.createUploadRecord(uploadedFile);
|
|
42
|
-
return uploadedFile;
|
|
43
|
-
}
|
|
44
|
-
validateFile(fileBuffer, mimeType) {
|
|
45
|
-
if (fileBuffer.length > this.config.maxFileSize) {
|
|
46
|
-
return {
|
|
47
|
-
valid: false,
|
|
48
|
-
error: `File size ${fileBuffer.length} exceeds maximum ${this.config.maxFileSize}`,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
if (!this.config.allowedFileTypes.includes(mimeType)) {
|
|
52
|
-
return {
|
|
53
|
-
valid: false,
|
|
54
|
-
error: `File type ${mimeType} is not allowed`,
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
return { valid: true };
|
|
58
|
-
}
|
|
59
|
-
sanitizeFilename(filename) {
|
|
60
|
-
const ext = (0, path_1.extname)(filename);
|
|
61
|
-
const name = (0, path_1.basename)(filename, ext);
|
|
62
|
-
const sanitized = name
|
|
63
|
-
.replace(/[^a-zA-Z0-9.-]/g, '_')
|
|
64
|
-
.replace(/_{2,}/g, '_')
|
|
65
|
-
.replace(/^_+|_+$/g, '')
|
|
66
|
-
.toLowerCase();
|
|
67
|
-
const safeName = sanitized || 'unnamed';
|
|
68
|
-
return `${safeName}${ext.toLowerCase()}`;
|
|
69
|
-
}
|
|
70
|
-
generateHash(buffer) {
|
|
71
|
-
return (0, crypto_1.createHash)('sha256').update(buffer).digest('hex');
|
|
72
|
-
}
|
|
73
|
-
generateUniqueFilename(sanitizedFilename, hash) {
|
|
74
|
-
const timestamp = Date.now();
|
|
75
|
-
const ext = (0, path_1.extname)(sanitizedFilename);
|
|
76
|
-
const name = (0, path_1.basename)(sanitizedFilename, ext);
|
|
77
|
-
const shortHash = hash.substring(0, 8);
|
|
78
|
-
return `${name}_${timestamp}_${shortHash}${ext}`;
|
|
79
|
-
}
|
|
80
|
-
async saveToDisk(buffer, filename) {
|
|
81
|
-
const fullPath = (0, path_1.join)(this.config.storagePath, filename);
|
|
82
|
-
await fs_1.promises.mkdir(this.config.storagePath, { recursive: true });
|
|
83
|
-
await fs_1.promises.writeFile(fullPath, buffer);
|
|
84
|
-
return fullPath;
|
|
85
|
-
}
|
|
86
|
-
isImage(mimeType) {
|
|
87
|
-
return mimeType.startsWith('image/');
|
|
88
|
-
}
|
|
89
|
-
async generateThumbnail(buffer, filename, mimeType) {
|
|
90
|
-
const thumbnailFilename = `thumb_${filename}`;
|
|
91
|
-
const thumbnailPath = (0, path_1.join)(this.config.storagePath, 'thumbnails', thumbnailFilename);
|
|
92
|
-
await fs_1.promises.mkdir((0, path_1.join)(this.config.storagePath, 'thumbnails'), { recursive: true });
|
|
93
|
-
const resizedBuffer = await this.resizeImage(buffer, this.config.thumbnailSize?.width || 200, this.config.thumbnailSize?.height || 200, mimeType);
|
|
94
|
-
if (this.config.storageType === 'disk') {
|
|
95
|
-
await fs_1.promises.writeFile(thumbnailPath, resizedBuffer);
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
if (!this.config.cloudProvider) {
|
|
99
|
-
throw new Error('Cloud provider not configured');
|
|
100
|
-
}
|
|
101
|
-
await this.config.cloudProvider.upload(resizedBuffer, `thumbnails/${thumbnailFilename}`);
|
|
102
|
-
}
|
|
103
|
-
return thumbnailPath;
|
|
104
|
-
}
|
|
105
|
-
async resizeImage(buffer, width, height, mimeType) {
|
|
106
|
-
return buffer;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
exports.FileUploadHandler = FileUploadHandler;
|
|
110
|
-
//# sourceMappingURL=file-upload-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-upload-handler.js","sourceRoot":"","sources":["../../src/utils/file-upload-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/utils/statistics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,SAAS,MAAM,EAAE,KAAG,UAwBhE,CAAC"}
|
package/dist/utils/statistics.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateStatistics = void 0;
|
|
4
|
-
const calculateStatistics = (numbers) => {
|
|
5
|
-
if (numbers.length === 0) {
|
|
6
|
-
throw new Error('Cannot calculate statistics for an empty array');
|
|
7
|
-
}
|
|
8
|
-
const sum = numbers.reduce((acc, num) => acc + num, 0);
|
|
9
|
-
const average = sum / numbers.length;
|
|
10
|
-
const sorted = [...numbers].sort((a, b) => a - b);
|
|
11
|
-
const mid = Math.floor(sorted.length / 2);
|
|
12
|
-
const median = sorted.length % 2 === 0
|
|
13
|
-
? (sorted[mid - 1] + sorted[mid]) / 2
|
|
14
|
-
: sorted[mid];
|
|
15
|
-
const min = Math.min(...numbers);
|
|
16
|
-
const max = Math.max(...numbers);
|
|
17
|
-
return {
|
|
18
|
-
sum,
|
|
19
|
-
average,
|
|
20
|
-
median,
|
|
21
|
-
min,
|
|
22
|
-
max,
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
exports.calculateStatistics = calculateStatistics;
|
|
26
|
-
//# sourceMappingURL=statistics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"statistics.js","sourceRoot":"","sources":["../../src/utils/statistics.ts"],"names":[],"mappings":";;;AAQO,MAAM,mBAAmB,GAAG,CAAC,OAA0B,EAAc,EAAE;IAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAErC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAEjC,OAAO;QACL,GAAG;QACH,OAAO;QACP,MAAM;QACN,GAAG;QACH,GAAG;KACJ,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,mBAAmB,uBAwB9B"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { CloudStorageProvider } from './file-upload-handler';
|
|
2
|
-
export declare class S3StorageProvider implements CloudStorageProvider {
|
|
3
|
-
private readonly bucket;
|
|
4
|
-
private readonly region;
|
|
5
|
-
private readonly accessKeyId;
|
|
6
|
-
private readonly secretAccessKey;
|
|
7
|
-
constructor(bucket: string, region: string, accessKeyId: string, secretAccessKey: string);
|
|
8
|
-
upload(file: Buffer, filename: string): Promise<string>;
|
|
9
|
-
}
|
|
10
|
-
export declare class GCSStorageProvider implements CloudStorageProvider {
|
|
11
|
-
private readonly bucket;
|
|
12
|
-
private readonly projectId;
|
|
13
|
-
private readonly credentials;
|
|
14
|
-
constructor(bucket: string, projectId: string, credentials: Record<string, unknown>);
|
|
15
|
-
upload(file: Buffer, filename: string): Promise<string>;
|
|
16
|
-
}
|
|
17
|
-
export declare class AzureBlobStorageProvider implements CloudStorageProvider {
|
|
18
|
-
private readonly containerName;
|
|
19
|
-
private readonly accountName;
|
|
20
|
-
private readonly accountKey;
|
|
21
|
-
constructor(containerName: string, accountName: string, accountKey: string);
|
|
22
|
-
upload(file: Buffer, filename: string): Promise<string>;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=storage-providers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage-providers.d.ts","sourceRoot":"","sources":["../../src/utils/storage-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,iBAAkB,YAAW,oBAAoB;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAHf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM;IAGpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D;AAED,qBAAa,kBAAmB,YAAW,oBAAoB;IAE3D,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAFX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAGjD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D;AAED,qBAAa,wBAAyB,YAAW,oBAAoB;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM;IAG/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AzureBlobStorageProvider = exports.GCSStorageProvider = exports.S3StorageProvider = void 0;
|
|
4
|
-
class S3StorageProvider {
|
|
5
|
-
constructor(bucket, region, accessKeyId, secretAccessKey) {
|
|
6
|
-
this.bucket = bucket;
|
|
7
|
-
this.region = region;
|
|
8
|
-
this.accessKeyId = accessKeyId;
|
|
9
|
-
this.secretAccessKey = secretAccessKey;
|
|
10
|
-
}
|
|
11
|
-
async upload(file, filename) {
|
|
12
|
-
return `s3://${this.bucket}/${filename}`;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
exports.S3StorageProvider = S3StorageProvider;
|
|
16
|
-
class GCSStorageProvider {
|
|
17
|
-
constructor(bucket, projectId, credentials) {
|
|
18
|
-
this.bucket = bucket;
|
|
19
|
-
this.projectId = projectId;
|
|
20
|
-
this.credentials = credentials;
|
|
21
|
-
}
|
|
22
|
-
async upload(file, filename) {
|
|
23
|
-
return `gs://${this.bucket}/${filename}`;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
exports.GCSStorageProvider = GCSStorageProvider;
|
|
27
|
-
class AzureBlobStorageProvider {
|
|
28
|
-
constructor(containerName, accountName, accountKey) {
|
|
29
|
-
this.containerName = containerName;
|
|
30
|
-
this.accountName = accountName;
|
|
31
|
-
this.accountKey = accountKey;
|
|
32
|
-
}
|
|
33
|
-
async upload(file, filename) {
|
|
34
|
-
return `https://${this.accountName}.blob.core.windows.net/${this.containerName}/${filename}`;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.AzureBlobStorageProvider = AzureBlobStorageProvider;
|
|
38
|
-
//# sourceMappingURL=storage-providers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage-providers.js","sourceRoot":"","sources":["../../src/utils/storage-providers.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAC5B,YACmB,MAAc,EACd,MAAc,EACd,WAAmB,EACnB,eAAuB;QAHvB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAQ;IACvC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QACzC,OAAO,QAAQ,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;IAC3C,CAAC;CACF;AAXD,8CAWC;AAED,MAAa,kBAAkB;IAC7B,YACmB,MAAc,EACd,SAAiB,EACjB,WAAoC;QAFpC,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAQ;QACjB,gBAAW,GAAX,WAAW,CAAyB;IACpD,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QACzC,OAAO,QAAQ,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;IAC3C,CAAC;CACF;AAVD,gDAUC;AAED,MAAa,wBAAwB;IACnC,YACmB,aAAqB,EACrB,WAAmB,EACnB,UAAkB;QAFlB,kBAAa,GAAb,aAAa,CAAQ;QACrB,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAQ;IAClC,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,QAAgB;QACzC,OAAO,WAAW,IAAI,CAAC,WAAW,0BAA0B,IAAI,CAAC,aAAa,IAAI,QAAQ,EAAE,CAAC;IAC/F,CAAC;CACF;AAVD,4DAUC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface FilterCriteria<T> {
|
|
2
|
-
readonly predicate: (item: T) => boolean;
|
|
3
|
-
}
|
|
4
|
-
export interface TransformArrayOptions<T, R> {
|
|
5
|
-
readonly mapper: (item: T, index: number, array: readonly T[]) => R;
|
|
6
|
-
readonly filter?: FilterCriteria<T>;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Transforms an array of objects using a mapper function and optional filter criteria.
|
|
10
|
-
*
|
|
11
|
-
* @template T - The type of input array elements
|
|
12
|
-
* @template R - The type of output array elements
|
|
13
|
-
* @param array - The input array to transform
|
|
14
|
-
* @param options - Transformation options including mapper and optional filter
|
|
15
|
-
* @returns A new transformed array
|
|
16
|
-
*/
|
|
17
|
-
export declare const transformArray: <T, R>(array: readonly T[], options: TransformArrayOptions<T, R>) => readonly R[];
|
|
18
|
-
//# sourceMappingURL=transformArray.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformArray.d.ts","sourceRoot":"","sources":["../../src/utils/transformArray.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EACjC,OAAO,SAAS,CAAC,EAAE,EACnB,SAAS,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,KACnC,SAAS,CAAC,EAQZ,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.transformArray = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Transforms an array of objects using a mapper function and optional filter criteria.
|
|
6
|
-
*
|
|
7
|
-
* @template T - The type of input array elements
|
|
8
|
-
* @template R - The type of output array elements
|
|
9
|
-
* @param array - The input array to transform
|
|
10
|
-
* @param options - Transformation options including mapper and optional filter
|
|
11
|
-
* @returns A new transformed array
|
|
12
|
-
*/
|
|
13
|
-
const transformArray = (array, options) => {
|
|
14
|
-
const { mapper, filter } = options;
|
|
15
|
-
const filteredArray = filter
|
|
16
|
-
? array.filter(filter.predicate)
|
|
17
|
-
: array;
|
|
18
|
-
return filteredArray.map(mapper);
|
|
19
|
-
};
|
|
20
|
-
exports.transformArray = transformArray;
|
|
21
|
-
//# sourceMappingURL=transformArray.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transformArray.js","sourceRoot":"","sources":["../../src/utils/transformArray.ts"],"names":[],"mappings":";;;AASA;;;;;;;;GAQG;AACI,MAAM,cAAc,GAAG,CAC5B,KAAmB,EACnB,OAAoC,EACtB,EAAE;IAChB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEnC,MAAM,aAAa,GAAG,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QAChC,CAAC,CAAC,KAAK,CAAC;IAEV,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { User } from "../types.js";
|
|
2
|
-
/**
|
|
3
|
-
* Retrieves a user by ID from a Map
|
|
4
|
-
* @param userMap Map containing users indexed by ID
|
|
5
|
-
* @param userId User ID to look up
|
|
6
|
-
* @returns The user object if found, undefined otherwise
|
|
7
|
-
*/
|
|
8
|
-
export declare const getUserById: (userMap: ReadonlyMap<string, User>, userId: string) => User | undefined;
|
|
9
|
-
//# sourceMappingURL=userUtils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userUtils.d.ts","sourceRoot":"","sources":["../../src/utils/userUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAClC,QAAQ,MAAM,KACb,IAAI,GAAG,SAET,CAAC"}
|
package/dist/utils/userUtils.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUserById = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Retrieves a user by ID from a Map
|
|
6
|
-
* @param userMap Map containing users indexed by ID
|
|
7
|
-
* @param userId User ID to look up
|
|
8
|
-
* @returns The user object if found, undefined otherwise
|
|
9
|
-
*/
|
|
10
|
-
const getUserById = (userMap, userId) => {
|
|
11
|
-
return userMap.get(userId);
|
|
12
|
-
};
|
|
13
|
-
exports.getUserById = getUserById;
|
|
14
|
-
//# sourceMappingURL=userUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userUtils.js","sourceRoot":"","sources":["../../src/utils/userUtils.ts"],"names":[],"mappings":";;;AAEA;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CACzB,OAAkC,EAClC,MAAc,EACI,EAAE;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|