ceph-link 1.0.0 → 1.1.0
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/dist/app.controller.d.ts +7 -0
- package/dist/app.controller.d.ts.map +1 -0
- package/dist/app.controller.js +34 -0
- package/dist/app.controller.js.map +1 -0
- package/dist/app.module.d.ts +3 -0
- package/dist/app.module.d.ts.map +1 -0
- package/dist/app.module.js +29 -0
- package/dist/app.module.js.map +1 -0
- package/dist/app.service.d.ts +4 -0
- package/dist/app.service.d.ts.map +1 -0
- package/dist/app.service.js +20 -0
- package/dist/app.service.js.map +1 -0
- package/dist/ceph-s3-sdk.d.ts +15 -0
- package/dist/ceph-s3-sdk.d.ts.map +1 -0
- package/dist/ceph-s3-sdk.js +27 -0
- package/dist/ceph-s3-sdk.js.map +1 -0
- package/dist/ceph-s3-sdk.module.d.ts +10 -0
- package/dist/ceph-s3-sdk.module.d.ts.map +1 -0
- package/dist/ceph-s3-sdk.module.js +72 -0
- package/dist/ceph-s3-sdk.module.js.map +1 -0
- package/dist/cephcore-sdk.d.ts +44 -0
- package/dist/cephcore-sdk.d.ts.map +1 -0
- package/dist/cephcore-sdk.js +98 -0
- package/dist/cephcore-sdk.js.map +1 -0
- package/dist/config/ceph-s3-config.service.d.ts +7 -0
- package/dist/config/ceph-s3-config.service.d.ts.map +1 -0
- package/dist/config/ceph-s3-config.service.js +41 -0
- package/dist/config/ceph-s3-config.service.js.map +1 -0
- package/dist/core/types.d.ts +22 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/dto/bucket.dto.d.ts +9 -0
- package/dist/dto/bucket.dto.d.ts.map +1 -0
- package/dist/dto/bucket.dto.js +40 -0
- package/dist/dto/bucket.dto.js.map +1 -0
- package/dist/dto/object.dto.d.ts +14 -0
- package/dist/dto/object.dto.d.ts.map +1 -0
- package/dist/dto/object.dto.js +65 -0
- package/dist/dto/object.dto.js.map +1 -0
- package/dist/exceptions/ceph-exceptions.d.ts +28 -0
- package/dist/exceptions/ceph-exceptions.d.ts.map +1 -0
- package/dist/exceptions/ceph-exceptions.js +56 -0
- package/dist/exceptions/ceph-exceptions.js.map +1 -0
- package/dist/helpers/download-helper.d.ts +32 -0
- package/dist/helpers/download-helper.d.ts.map +1 -0
- package/dist/helpers/download-helper.js +218 -0
- package/dist/helpers/download-helper.js.map +1 -0
- package/dist/helpers/search-helper.d.ts +57 -0
- package/dist/helpers/search-helper.d.ts.map +1 -0
- package/dist/helpers/search-helper.js +279 -0
- package/dist/helpers/search-helper.js.map +1 -0
- package/dist/helpers/upload-helper.d.ts +37 -0
- package/dist/helpers/upload-helper.d.ts.map +1 -0
- package/dist/helpers/upload-helper.js +204 -0
- package/dist/helpers/upload-helper.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/bucket.interface.d.ts +26 -0
- package/dist/interfaces/bucket.interface.d.ts.map +1 -0
- package/dist/interfaces/bucket.interface.js +3 -0
- package/dist/interfaces/bucket.interface.js.map +1 -0
- package/dist/interfaces/ceph-s3-options.interface.d.ts +38 -0
- package/dist/interfaces/ceph-s3-options.interface.d.ts.map +1 -0
- package/dist/interfaces/ceph-s3-options.interface.js +3 -0
- package/dist/interfaces/ceph-s3-options.interface.js.map +1 -0
- package/dist/interfaces/config.interface.d.ts +23 -0
- package/dist/interfaces/config.interface.d.ts.map +1 -0
- package/dist/interfaces/config.interface.js +3 -0
- package/dist/interfaces/config.interface.js.map +1 -0
- package/dist/interfaces/file.interface.d.ts +54 -0
- package/dist/interfaces/file.interface.d.ts.map +1 -0
- package/dist/interfaces/file.interface.js +3 -0
- package/dist/interfaces/file.interface.js.map +1 -0
- package/dist/interfaces/folder.interface.d.ts +31 -0
- package/dist/interfaces/folder.interface.d.ts.map +1 -0
- package/dist/interfaces/folder.interface.js +3 -0
- package/dist/interfaces/folder.interface.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +10 -0
- package/dist/main.js.map +1 -0
- package/dist/managers/bucket-manager.d.ts +36 -0
- package/dist/managers/bucket-manager.d.ts.map +1 -0
- package/dist/managers/bucket-manager.js +195 -0
- package/dist/managers/bucket-manager.js.map +1 -0
- package/dist/managers/file-manager.d.ts +35 -0
- package/dist/managers/file-manager.d.ts.map +1 -0
- package/dist/managers/file-manager.js +238 -0
- package/dist/managers/file-manager.js.map +1 -0
- package/dist/managers/folder-manager.d.ts +31 -0
- package/dist/managers/folder-manager.d.ts.map +1 -0
- package/dist/managers/folder-manager.js +231 -0
- package/dist/managers/folder-manager.js.map +1 -0
- package/dist/services/bucket.service.d.ts +16 -0
- package/dist/services/bucket.service.d.ts.map +1 -0
- package/dist/services/bucket.service.js +176 -0
- package/dist/services/bucket.service.js.map +1 -0
- package/dist/services/ceph-s3.service.d.ts +14 -0
- package/dist/services/ceph-s3.service.d.ts.map +1 -0
- package/dist/services/ceph-s3.service.js +59 -0
- package/dist/services/ceph-s3.service.js.map +1 -0
- package/dist/services/file.service.d.ts +19 -0
- package/dist/services/file.service.d.ts.map +1 -0
- package/dist/services/file.service.js +85 -0
- package/dist/services/file.service.js.map +1 -0
- package/dist/services/folder.service.d.ts +21 -0
- package/dist/services/folder.service.d.ts.map +1 -0
- package/dist/services/folder.service.js +181 -0
- package/dist/services/folder.service.js.map +1 -0
- package/dist/services/object.service.d.ts +24 -0
- package/dist/services/object.service.d.ts.map +1 -0
- package/dist/services/object.service.js +231 -0
- package/dist/services/object.service.js.map +1 -0
- package/dist/services/storage.service.d.ts +36 -0
- package/dist/services/storage.service.d.ts.map +1 -0
- package/dist/services/storage.service.js +165 -0
- package/dist/services/storage.service.js.map +1 -0
- package/dist/utils/error.utils.d.ts +41 -0
- package/dist/utils/error.utils.d.ts.map +1 -0
- package/dist/utils/error.utils.js +111 -0
- package/dist/utils/error.utils.js.map +1 -0
- package/dist/utils/mime-helper.d.ts +10 -0
- package/dist/utils/mime-helper.d.ts.map +1 -0
- package/dist/utils/mime-helper.js +87 -0
- package/dist/utils/mime-helper.js.map +1 -0
- package/dist/utils/path-helper.d.ts +12 -0
- package/dist/utils/path-helper.d.ts.map +1 -0
- package/dist/utils/path-helper.js +46 -0
- package/dist/utils/path-helper.js.map +1 -0
- package/dist/utils/validators.d.ts +37 -0
- package/dist/utils/validators.d.ts.map +1 -0
- package/dist/utils/validators.js +218 -0
- package/dist/utils/validators.js.map +1 -0
- package/package.json +3 -5
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MimeHelper = void 0;
|
|
4
|
+
const path_helper_1 = require("./path-helper");
|
|
5
|
+
class MimeHelper {
|
|
6
|
+
static getMimeType(filename) {
|
|
7
|
+
const extension = path_helper_1.PathHelper.getFileExtension(filename);
|
|
8
|
+
return this.mimeTypes[extension] || 'application/octet-stream';
|
|
9
|
+
}
|
|
10
|
+
static isImage(filename) {
|
|
11
|
+
const mimeType = this.getMimeType(filename);
|
|
12
|
+
return mimeType.startsWith('image/');
|
|
13
|
+
}
|
|
14
|
+
static isVideo(filename) {
|
|
15
|
+
const mimeType = this.getMimeType(filename);
|
|
16
|
+
return mimeType.startsWith('video/');
|
|
17
|
+
}
|
|
18
|
+
static isAudio(filename) {
|
|
19
|
+
const mimeType = this.getMimeType(filename);
|
|
20
|
+
return mimeType.startsWith('audio/');
|
|
21
|
+
}
|
|
22
|
+
static isDocument(filename) {
|
|
23
|
+
const mimeType = this.getMimeType(filename);
|
|
24
|
+
return mimeType.includes('document') ||
|
|
25
|
+
mimeType === 'application/pdf' ||
|
|
26
|
+
mimeType.includes('text/');
|
|
27
|
+
}
|
|
28
|
+
static getFileCategory(filename) {
|
|
29
|
+
if (this.isImage(filename))
|
|
30
|
+
return 'image';
|
|
31
|
+
if (this.isVideo(filename))
|
|
32
|
+
return 'video';
|
|
33
|
+
if (this.isAudio(filename))
|
|
34
|
+
return 'audio';
|
|
35
|
+
if (this.isDocument(filename))
|
|
36
|
+
return 'document';
|
|
37
|
+
return 'other';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.MimeHelper = MimeHelper;
|
|
41
|
+
MimeHelper.mimeTypes = {
|
|
42
|
+
// Text files
|
|
43
|
+
'txt': 'text/plain',
|
|
44
|
+
'md': 'text/markdown',
|
|
45
|
+
'html': 'text/html',
|
|
46
|
+
'htm': 'text/html',
|
|
47
|
+
'css': 'text/css',
|
|
48
|
+
'js': 'application/javascript',
|
|
49
|
+
'json': 'application/json',
|
|
50
|
+
'xml': 'application/xml',
|
|
51
|
+
'csv': 'text/csv',
|
|
52
|
+
// Images
|
|
53
|
+
'jpg': 'image/jpeg',
|
|
54
|
+
'jpeg': 'image/jpeg',
|
|
55
|
+
'png': 'image/png',
|
|
56
|
+
'gif': 'image/gif',
|
|
57
|
+
'svg': 'image/svg+xml',
|
|
58
|
+
'webp': 'image/webp',
|
|
59
|
+
'ico': 'image/x-icon',
|
|
60
|
+
'bmp': 'image/bmp',
|
|
61
|
+
// Documents
|
|
62
|
+
'pdf': 'application/pdf',
|
|
63
|
+
'doc': 'application/msword',
|
|
64
|
+
'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
65
|
+
'xls': 'application/vnd.ms-excel',
|
|
66
|
+
'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
67
|
+
'ppt': 'application/vnd.ms-powerpoint',
|
|
68
|
+
'pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
69
|
+
// Archives
|
|
70
|
+
'zip': 'application/zip',
|
|
71
|
+
'rar': 'application/x-rar-compressed',
|
|
72
|
+
'7z': 'application/x-7z-compressed',
|
|
73
|
+
'tar': 'application/x-tar',
|
|
74
|
+
'gz': 'application/gzip',
|
|
75
|
+
// Audio
|
|
76
|
+
'mp3': 'audio/mpeg',
|
|
77
|
+
'wav': 'audio/wav',
|
|
78
|
+
'ogg': 'audio/ogg',
|
|
79
|
+
'flac': 'audio/flac',
|
|
80
|
+
// Video
|
|
81
|
+
'mp4': 'video/mp4',
|
|
82
|
+
'avi': 'video/x-msvideo',
|
|
83
|
+
'mov': 'video/quicktime',
|
|
84
|
+
'wmv': 'video/x-ms-wmv',
|
|
85
|
+
'webm': 'video/webm',
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=mime-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mime-helper.js","sourceRoot":"","sources":["../../src/utils/mime-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class PathHelper {
|
|
2
|
+
static normalizePath(path: string): string;
|
|
3
|
+
static ensureTrailingSlash(path: string): string;
|
|
4
|
+
static removeTrailingSlash(path: string): string;
|
|
5
|
+
static getFileName(path: string): string;
|
|
6
|
+
static getFileExtension(filename: string): string;
|
|
7
|
+
static getFolderPath(filePath: string): string;
|
|
8
|
+
static joinPaths(...paths: string[]): string;
|
|
9
|
+
static isValidPath(path: string): boolean;
|
|
10
|
+
static sanitizePath(path: string): string;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=path-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-helper.d.ts","sourceRoot":"","sources":["../../src/utils/path-helper.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IACrB,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI1C,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhD,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKxC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAKjD,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAM9C,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAO5C,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMzC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAM1C"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PathHelper = void 0;
|
|
4
|
+
class PathHelper {
|
|
5
|
+
static normalizePath(path) {
|
|
6
|
+
return path.replace(/\/+/g, '/').replace(/^\//, '').replace(/\/$/, '');
|
|
7
|
+
}
|
|
8
|
+
static ensureTrailingSlash(path) {
|
|
9
|
+
return path.endsWith('/') ? path : `${path}/`;
|
|
10
|
+
}
|
|
11
|
+
static removeTrailingSlash(path) {
|
|
12
|
+
return path.endsWith('/') ? path.slice(0, -1) : path;
|
|
13
|
+
}
|
|
14
|
+
static getFileName(path) {
|
|
15
|
+
const parts = path.split('/');
|
|
16
|
+
return parts[parts.length - 1] || '';
|
|
17
|
+
}
|
|
18
|
+
static getFileExtension(filename) {
|
|
19
|
+
const lastDot = filename.lastIndexOf('.');
|
|
20
|
+
return lastDot > 0 ? filename.slice(lastDot + 1).toLowerCase() : '';
|
|
21
|
+
}
|
|
22
|
+
static getFolderPath(filePath) {
|
|
23
|
+
const parts = filePath.split('/');
|
|
24
|
+
parts.pop(); // Remove filename
|
|
25
|
+
return parts.join('/');
|
|
26
|
+
}
|
|
27
|
+
static joinPaths(...paths) {
|
|
28
|
+
return paths
|
|
29
|
+
.map(path => this.normalizePath(path))
|
|
30
|
+
.filter(path => path.length > 0)
|
|
31
|
+
.join('/');
|
|
32
|
+
}
|
|
33
|
+
static isValidPath(path) {
|
|
34
|
+
// Check for invalid characters
|
|
35
|
+
const invalidChars = /[<>:"|?*\x00-\x1f]/;
|
|
36
|
+
return !invalidChars.test(path) && path.length > 0 && path.length <= 1024;
|
|
37
|
+
}
|
|
38
|
+
static sanitizePath(path) {
|
|
39
|
+
return path
|
|
40
|
+
.replace(/[<>:"|?*\x00-\x1f]/g, '_')
|
|
41
|
+
.replace(/\/+/g, '/')
|
|
42
|
+
.substring(0, 1024);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.PathHelper = PathHelper;
|
|
46
|
+
//# sourceMappingURL=path-helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-helper.js","sourceRoot":"","sources":["../../src/utils/path-helper.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACrB,MAAM,CAAC,aAAa,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,IAAY;QACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,QAAgB;QACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,QAAgB;QACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,kBAAkB;QAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAG,KAAe;QACjC,OAAO,KAAK;aACT,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aACrC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aAC/B,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAY;QAC7B,+BAA+B;QAC/B,MAAM,YAAY,GAAG,oBAAoB,CAAC;QAC1C,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY;QAC9B,OAAO,IAAI;aACR,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC;aACnC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;CACF;AAhDD,gCAgDC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare class Validators {
|
|
2
|
+
static isValidBucketName(bucketName: string): boolean;
|
|
3
|
+
static validateBucketName(bucketName: string): {
|
|
4
|
+
valid: boolean;
|
|
5
|
+
errors: string[];
|
|
6
|
+
};
|
|
7
|
+
static isValidFilePath(filePath: string): boolean;
|
|
8
|
+
static validateFilePath(filePath: string): {
|
|
9
|
+
valid: boolean;
|
|
10
|
+
errors: string[];
|
|
11
|
+
};
|
|
12
|
+
static validateFileSize(size: number, maxSizeMB?: number): {
|
|
13
|
+
valid: boolean;
|
|
14
|
+
error?: string;
|
|
15
|
+
};
|
|
16
|
+
static validateContentType(contentType: string, allowedTypes?: string[]): {
|
|
17
|
+
valid: boolean;
|
|
18
|
+
error?: string;
|
|
19
|
+
};
|
|
20
|
+
static validateMetadata(metadata: Record<string, string>): {
|
|
21
|
+
valid: boolean;
|
|
22
|
+
errors: string[];
|
|
23
|
+
};
|
|
24
|
+
static validateUploadOptions(options: any): {
|
|
25
|
+
valid: boolean;
|
|
26
|
+
errors: string[];
|
|
27
|
+
};
|
|
28
|
+
static validateConfig(config: any): {
|
|
29
|
+
valid: boolean;
|
|
30
|
+
errors: string[];
|
|
31
|
+
};
|
|
32
|
+
static validateSearchOptions(options: any): {
|
|
33
|
+
valid: boolean;
|
|
34
|
+
errors: string[];
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"AAGA,qBAAa,UAAU;IAErB,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAkCrD,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA4CnF,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIjD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA8B/E,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAa,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAanG,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAyB5G,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAuB/F,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA4BhF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAiCxE,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;CA6BjF"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Validators = void 0;
|
|
4
|
+
const path_helper_1 = require("./path-helper");
|
|
5
|
+
class Validators {
|
|
6
|
+
// Bucket name validation
|
|
7
|
+
static isValidBucketName(bucketName) {
|
|
8
|
+
// AWS S3 bucket naming rules
|
|
9
|
+
if (!bucketName || bucketName.length < 3 || bucketName.length > 63) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
// Must start and end with lowercase letter or number
|
|
13
|
+
if (!/^[a-z0-9].*[a-z0-9]$/.test(bucketName)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
// Cannot contain uppercase letters
|
|
17
|
+
if (/[A-Z]/.test(bucketName)) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
// Cannot be formatted as IP address
|
|
21
|
+
if (/^\d+\.\d+\.\d+\.\d+$/.test(bucketName)) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
// Cannot contain consecutive periods
|
|
25
|
+
if (/\.\./.test(bucketName)) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
// Can only contain lowercase letters, numbers, periods, and hyphens
|
|
29
|
+
if (!/^[a-z0-9.-]+$/.test(bucketName)) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
static validateBucketName(bucketName) {
|
|
35
|
+
const errors = [];
|
|
36
|
+
if (!bucketName) {
|
|
37
|
+
errors.push('Bucket name is required');
|
|
38
|
+
return { valid: false, errors };
|
|
39
|
+
}
|
|
40
|
+
if (bucketName.length < 3) {
|
|
41
|
+
errors.push('Bucket name must be at least 3 characters long');
|
|
42
|
+
}
|
|
43
|
+
if (bucketName.length > 63) {
|
|
44
|
+
errors.push('Bucket name must be no more than 63 characters long');
|
|
45
|
+
}
|
|
46
|
+
if (!/^[a-z0-9]/.test(bucketName)) {
|
|
47
|
+
errors.push('Bucket name must start with a lowercase letter or number');
|
|
48
|
+
}
|
|
49
|
+
if (!/[a-z0-9]$/.test(bucketName)) {
|
|
50
|
+
errors.push('Bucket name must end with a lowercase letter or number');
|
|
51
|
+
}
|
|
52
|
+
if (/[A-Z]/.test(bucketName)) {
|
|
53
|
+
errors.push('Bucket name cannot contain uppercase letters');
|
|
54
|
+
}
|
|
55
|
+
if (/^\d+\.\d+\.\d+\.\d+$/.test(bucketName)) {
|
|
56
|
+
errors.push('Bucket name cannot be formatted as an IP address');
|
|
57
|
+
}
|
|
58
|
+
if (/\.\./.test(bucketName)) {
|
|
59
|
+
errors.push('Bucket name cannot contain consecutive periods');
|
|
60
|
+
}
|
|
61
|
+
if (!/^[a-z0-9.-]+$/.test(bucketName)) {
|
|
62
|
+
errors.push('Bucket name can only contain lowercase letters, numbers, periods, and hyphens');
|
|
63
|
+
}
|
|
64
|
+
return { valid: errors.length === 0, errors };
|
|
65
|
+
}
|
|
66
|
+
// File path validation
|
|
67
|
+
static isValidFilePath(filePath) {
|
|
68
|
+
return path_helper_1.PathHelper.isValidPath(filePath);
|
|
69
|
+
}
|
|
70
|
+
static validateFilePath(filePath) {
|
|
71
|
+
const errors = [];
|
|
72
|
+
if (!filePath) {
|
|
73
|
+
errors.push('File path is required');
|
|
74
|
+
return { valid: false, errors };
|
|
75
|
+
}
|
|
76
|
+
if (filePath.length > 1024) {
|
|
77
|
+
errors.push('File path must be no more than 1024 characters long');
|
|
78
|
+
}
|
|
79
|
+
// Check for invalid characters
|
|
80
|
+
const invalidChars = /[<>:"|?*\x00-\x1f]/;
|
|
81
|
+
if (invalidChars.test(filePath)) {
|
|
82
|
+
errors.push('File path contains invalid characters');
|
|
83
|
+
}
|
|
84
|
+
// Check for reserved names (Windows)
|
|
85
|
+
const reservedNames = ['CON', 'PRN', 'AUX', 'NUL', 'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9'];
|
|
86
|
+
const fileName = path_helper_1.PathHelper.getFileName(filePath);
|
|
87
|
+
const baseName = fileName.split('.')[0].toUpperCase();
|
|
88
|
+
if (reservedNames.includes(baseName)) {
|
|
89
|
+
errors.push('File name cannot be a reserved system name');
|
|
90
|
+
}
|
|
91
|
+
return { valid: errors.length === 0, errors };
|
|
92
|
+
}
|
|
93
|
+
// File content validation
|
|
94
|
+
static validateFileSize(size, maxSizeMB = 5000) {
|
|
95
|
+
const maxSizeBytes = maxSizeMB * 1024 * 1024;
|
|
96
|
+
if (size > maxSizeBytes) {
|
|
97
|
+
return {
|
|
98
|
+
valid: false,
|
|
99
|
+
error: `File size (${Math.round(size / 1024 / 1024)}MB) exceeds maximum allowed size (${maxSizeMB}MB)`
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return { valid: true };
|
|
103
|
+
}
|
|
104
|
+
static validateContentType(contentType, allowedTypes) {
|
|
105
|
+
if (!contentType) {
|
|
106
|
+
return { valid: false, error: 'Content type is required' };
|
|
107
|
+
}
|
|
108
|
+
if (allowedTypes && allowedTypes.length > 0) {
|
|
109
|
+
const isAllowed = allowedTypes.some(type => {
|
|
110
|
+
if (type.endsWith('/*')) {
|
|
111
|
+
return contentType.startsWith(type.slice(0, -1));
|
|
112
|
+
}
|
|
113
|
+
return contentType === type;
|
|
114
|
+
});
|
|
115
|
+
if (!isAllowed) {
|
|
116
|
+
return {
|
|
117
|
+
valid: false,
|
|
118
|
+
error: `Content type '${contentType}' is not allowed. Allowed types: ${allowedTypes.join(', ')}`
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return { valid: true };
|
|
123
|
+
}
|
|
124
|
+
// Metadata validation
|
|
125
|
+
static validateMetadata(metadata) {
|
|
126
|
+
const errors = [];
|
|
127
|
+
Object.entries(metadata).forEach(([key, value]) => {
|
|
128
|
+
// AWS S3 metadata key constraints
|
|
129
|
+
if (key.length > 8192) {
|
|
130
|
+
errors.push(`Metadata key '${key}' is too long (max 8192 characters)`);
|
|
131
|
+
}
|
|
132
|
+
if (value.length > 8192) {
|
|
133
|
+
errors.push(`Metadata value for '${key}' is too long (max 8192 characters)`);
|
|
134
|
+
}
|
|
135
|
+
// Check for invalid characters in key
|
|
136
|
+
if (!/^[a-zA-Z0-9._-]+$/.test(key)) {
|
|
137
|
+
errors.push(`Metadata key '${key}' contains invalid characters`);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
return { valid: errors.length === 0, errors };
|
|
141
|
+
}
|
|
142
|
+
// Upload options validation
|
|
143
|
+
static validateUploadOptions(options) {
|
|
144
|
+
const errors = [];
|
|
145
|
+
if (options.contentType) {
|
|
146
|
+
const contentTypeValidation = this.validateContentType(options.contentType);
|
|
147
|
+
if (!contentTypeValidation.valid) {
|
|
148
|
+
errors.push(contentTypeValidation.error);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (options.metadata) {
|
|
152
|
+
const metadataValidation = this.validateMetadata(options.metadata);
|
|
153
|
+
if (!metadataValidation.valid) {
|
|
154
|
+
errors.push(...metadataValidation.errors);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (options.acl) {
|
|
158
|
+
const validAcls = ['private', 'public-read', 'public-read-write', 'authenticated-read'];
|
|
159
|
+
if (!validAcls.includes(options.acl)) {
|
|
160
|
+
errors.push(`Invalid ACL '${options.acl}'. Valid ACLs: ${validAcls.join(', ')}`);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return { valid: errors.length === 0, errors };
|
|
164
|
+
}
|
|
165
|
+
// Configuration validation
|
|
166
|
+
static validateConfig(config) {
|
|
167
|
+
const errors = [];
|
|
168
|
+
if (!config.endpoint) {
|
|
169
|
+
errors.push('Endpoint is required');
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
try {
|
|
173
|
+
new URL(config.endpoint);
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
errors.push('Endpoint must be a valid URL');
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (!config.accessKeyId) {
|
|
180
|
+
errors.push('Access Key ID is required');
|
|
181
|
+
}
|
|
182
|
+
if (!config.secretAccessKey) {
|
|
183
|
+
errors.push('Secret Access Key is required');
|
|
184
|
+
}
|
|
185
|
+
if (config.timeout && (typeof config.timeout !== 'number' || config.timeout < 0)) {
|
|
186
|
+
errors.push('Timeout must be a positive number');
|
|
187
|
+
}
|
|
188
|
+
if (config.retries && (typeof config.retries !== 'number' || config.retries < 0)) {
|
|
189
|
+
errors.push('Retries must be a positive number');
|
|
190
|
+
}
|
|
191
|
+
return { valid: errors.length === 0, errors };
|
|
192
|
+
}
|
|
193
|
+
// Search options validation
|
|
194
|
+
static validateSearchOptions(options) {
|
|
195
|
+
const errors = [];
|
|
196
|
+
if (options.minSize && (typeof options.minSize !== 'number' || options.minSize < 0)) {
|
|
197
|
+
errors.push('minSize must be a positive number');
|
|
198
|
+
}
|
|
199
|
+
if (options.maxSize && (typeof options.maxSize !== 'number' || options.maxSize < 0)) {
|
|
200
|
+
errors.push('maxSize must be a positive number');
|
|
201
|
+
}
|
|
202
|
+
if (options.minSize && options.maxSize && options.minSize > options.maxSize) {
|
|
203
|
+
errors.push('minSize cannot be greater than maxSize');
|
|
204
|
+
}
|
|
205
|
+
if (options.modifiedAfter && !(options.modifiedAfter instanceof Date)) {
|
|
206
|
+
errors.push('modifiedAfter must be a Date object');
|
|
207
|
+
}
|
|
208
|
+
if (options.modifiedBefore && !(options.modifiedBefore instanceof Date)) {
|
|
209
|
+
errors.push('modifiedBefore must be a Date object');
|
|
210
|
+
}
|
|
211
|
+
if (options.modifiedAfter && options.modifiedBefore && options.modifiedAfter > options.modifiedBefore) {
|
|
212
|
+
errors.push('modifiedAfter cannot be after modifiedBefore');
|
|
213
|
+
}
|
|
214
|
+
return { valid: errors.length === 0, errors };
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
exports.Validators = Validators;
|
|
218
|
+
//# sourceMappingURL=validators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAG3C,MAAa,UAAU;IACrB,yBAAyB;IACzB,MAAM,CAAC,iBAAiB,CAAC,UAAkB;QACzC,6BAA6B;QAC7B,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qDAAqD;QACrD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,oCAAoC;QACpC,IAAI,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,UAAkB;QAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;QAC/F,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,uBAAuB;IACvB,MAAM,CAAC,eAAe,CAAC,QAAgB;QACrC,OAAO,wBAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,QAAgB;QACtC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QAED,+BAA+B;QAC/B,MAAM,YAAY,GAAG,oBAAoB,CAAC;QAC1C,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QACvD,CAAC;QAED,qCAAqC;QACrC,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACnM,MAAM,QAAQ,GAAG,wBAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,0BAA0B;IAC1B,MAAM,CAAC,gBAAgB,CAAC,IAAY,EAAE,YAAoB,IAAI;QAC5D,MAAM,YAAY,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;QAE7C,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;YACxB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,cAAc,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,qCAAqC,SAAS,KAAK;aACvG,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,WAAmB,EAAE,YAAuB;QACrE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,OAAO,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO,WAAW,KAAK,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,iBAAiB,WAAW,oCAAoC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;iBACjG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,sBAAsB;IACtB,MAAM,CAAC,gBAAgB,CAAC,QAAgC;QACtD,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAChD,kCAAkC;YAClC,IAAI,GAAG,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,qCAAqC,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,uBAAuB,GAAG,qCAAqC,CAAC,CAAC;YAC/E,CAAC;YAED,sCAAsC;YACtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,+BAA+B,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,4BAA4B;IAC5B,MAAM,CAAC,qBAAqB,CAAC,OAAY;QACvC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5E,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAM,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;YACxF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,GAAG,kBAAkB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,2BAA2B;IAC3B,MAAM,CAAC,cAAc,CAAC,MAAW;QAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,4BAA4B;IAC5B,MAAM,CAAC,qBAAqB,CAAC,OAAY;QACvC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5E,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,YAAY,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,YAAY,IAAI,CAAC,EAAE,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;YACtG,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAChD,CAAC;CACF;AAzQD,gCAyQC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ceph-link",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"description": "Enterprise-grade NestJS SDK for Ceph S3",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Mrabti Adil",
|
|
@@ -46,12 +46,10 @@
|
|
|
46
46
|
"test:manual": "ts-node test/manual/manual-test.ts",
|
|
47
47
|
"validate:connection": "ts-node test/validate-connection.ts",
|
|
48
48
|
"test:all": "npm run validate:connection && npm run test && npm run test:integration",
|
|
49
|
-
"prepublishOnly": "npm run build",
|
|
50
|
-
"prepare": "npm run build",
|
|
51
|
-
"release": "npm run build && npm publish",
|
|
52
49
|
"docs:generate": "typedoc --out docs src",
|
|
53
50
|
"example:standalone": "ts-node examples/standalone-example.ts",
|
|
54
|
-
"example:nestjs": "ts-node examples/nestjs-example.ts"
|
|
51
|
+
"example:nestjs": "ts-node examples/nestjs-example.ts",
|
|
52
|
+
"pub": "npm publish"
|
|
55
53
|
},
|
|
56
54
|
"dependencies": {
|
|
57
55
|
"@nestjs/common": "^11.1.5",
|