Claude
bd766792b1
a
Deploy FileDrop / deploy (push) Failing after 14m44s
2026-07-29 19:25:31 +07:00
Claude
ad917f6675
refactor: dedup dead code, shared utils, conditional headers helper
...
- Extract shared utils: asSafeChunkSize (validation.ts), S3 detection (s3-detection.ts)
- Remove dead _handleMaybeS3Root from index.ts and routes/index.ts
- Remove dead _asArray from file-controller.ts
- Consolidate maybeCompressChunk into shared compress.ts
- Extract checkConditionalHeaders helper, remove ~120 lines dupe in s3-controller
- Remove 500+ lines dead code from s3-object.ts (unused use cases + helpers)
- Delegate upload-file.ts chunked path to ChunkedStorage, remove dupe
- Fix broken dynamic import in file-controller.ts → proper DI
- Fix test/files.test.ts import path and mocks
[skip ci]
2026-07-29 16:39:52 +07:00
Claude
fab91ad69c
feat: dedup wave 3 — constant + streamToTemp utility
...
Deploy FileDrop / deploy (push) Successful in 44s
- ♻️ randomUUID() → nanoid() di s3-object.ts (eliminasi node:crypto)
- ✨ DEFAULT_FILE_TYPE constant, ganti 8× hardcoded 'document'
- ✨ streamToTemp() shared utility (src/shared/utils/temp-stream.ts)
- ♻️ 3× streaming-to-temp pattern di s3-controller, upload-controller,
web-api-controller → pake streamToTemp()
- Lint ✅ Build ✅
2026-07-29 16:10:49 +07:00
Claude
3501d547c0
feat: dedup wave 2 — file factory + V1/V2 mapping + bot handler
...
Deploy FileDrop / deploy (push) Successful in 42s
- ✨ buildNewFile() factory (src/domain/entities/file-factory.ts)
eliminates ~380 lines of archive null / isDeleted / field defaults
- ♻️ 27 creation blocks → buildNewFile() across 8 files
- ♻️ S3 V1/V2 object listing mapping → mapFileToListEntry()
- ♻️ Bot handler size validation → checkFileSize() from shared utils
- 🔎 computeHash audit: all 10 instances are streaming (no dedup)
- Lint ✅ Build ✅ Push ✅
2026-07-29 16:02:01 +07:00
Claude
332853f398
chore: dedup dead code + compress utility
...
Deploy FileDrop / deploy (push) Successful in 43s
- Hapus src/shared/utils/retry.ts (0 imports, dead)
- Hapus src/shared/errors/index.ts (7 classes, 0 imports)
- Hapus drizzle type exports dari schema.ts (tidak dipake)
- Hapus src/config/index.ts, redirect 8 imports langsung ke env.ts
- Ekstrak maybeCompressChunk ke shared/utils/compress.ts
- Hapus duplikasi gzipSync di upload-file.ts + chunked-storage.ts
- Lint clean, build clean
2026-07-29 15:51:39 +07:00
Claude
667921b100
chore: fix lint errors — duplicate import, unused imports, formatting
...
Deploy FileDrop / deploy (push) Successful in 45s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-28 20:09:42 +07:00
Claude
ea48e8fc03
feat: create application use cases (bucket, s3-object, multipart)
...
- manage-bucket.ts: extract bucket CRUD logic with validation
(createListBuckets, createGetBucket, createCreateBucket,
createDeleteBucket, createBucketExists)
- s3-object.ts: extract S3 object operations
(createGetObject, createHeadObject, createPutObject,
createCopyObject, createDeleteObject, createDeleteObjects,
createListObjects, createFindObject)
- multipart-upload.ts: extract S3 multipart upload logic
(createInitiateMultipartUpload, createUploadPart,
createCompleteMultipartUpload, createAbortMultipartUpload,
createListMultipartUploads, createListParts)
All use cases follow the existing factory function pattern with
dependency injection via repository/telegram service interfaces.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-28 18:04:01 +07:00
Claude
e2de8c4245
feat: create application use cases (upload, get-file, auth)
...
Create upload-file.ts use case with factory pattern supporting dedup, file type detection, size validation, and chunked/single storage strategies.
Create get-file.ts use case supporting redirect, chunked, and archive-entry retrieval strategies.
Create authenticate.ts use case with login, logout, and me operations.
All use cases use dependency injection and return typed DTOs.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-28 17:59:49 +07:00
Claude
5e29589f1a
feat: create application DTOs
...
Add data-transfer-object interfaces for the application layer:
upload, file, bucket, S3, and auth domains.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-28 17:56:49 +07:00