From 54311542120f250500599d35404f2cec2eaa326d Mon Sep 17 00:00:00 2001 From: Waleed Latif Date: Tue, 8 Sep 2026 07:43:33 -0700 Subject: [PATCH] fix(build): avoid Turbopack chunk collision with GCS path rename --- apps/sim/lib/uploads/core/storage-client.ts | 4 ++- apps/sim/lib/uploads/core/storage-service.ts | 25 ++++++++++----- .../client.test.ts | 2 +- .../{gcs => google-cloud-storage}/client.ts | 2 +- .../{gcs => google-cloud-storage}/types.ts | 0 .../lib/uploads/upload-session/provider.ts | 32 +++++++++++++------ 6 files changed, 45 insertions(+), 20 deletions(-) rename apps/sim/lib/uploads/providers/{gcs => google-cloud-storage}/client.test.ts (99%) rename apps/sim/lib/uploads/providers/{gcs => google-cloud-storage}/client.ts (99%) rename apps/sim/lib/uploads/providers/{gcs => google-cloud-storage}/types.ts (100%) diff --git a/apps/sim/lib/uploads/core/storage-client.ts b/apps/sim/lib/uploads/core/storage-client.ts index e9112648a50..ff5795d8be0 100644 --- a/apps/sim/lib/uploads/core/storage-client.ts +++ b/apps/sim/lib/uploads/core/storage-client.ts @@ -84,7 +84,9 @@ export async function getFileMetadata( * absence, because GCS answers a missing object and a missing bucket the same * way and only the caller's own bucket configuration separates them. */ - const { getGcsObjectMetadata } = await import('@/lib/uploads/providers/gcs/client') + const { getGcsObjectMetadata } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) return getGcsObjectMetadata( key, customConfig?.bucket ? { bucket: customConfig.bucket } : undefined diff --git a/apps/sim/lib/uploads/core/storage-service.ts b/apps/sim/lib/uploads/core/storage-service.ts index dc76680d9a5..50ede6402a3 100644 --- a/apps/sim/lib/uploads/core/storage-service.ts +++ b/apps/sim/lib/uploads/core/storage-service.ts @@ -11,7 +11,10 @@ import { } from '@/lib/uploads/config' import { LOCAL_UPLOAD_METADATA_SUFFIX } from '@/lib/uploads/core/storage-key' import type { AzureMultipartPart, BlobConfig } from '@/lib/uploads/providers/blob/types' -import type { GcsConfig, GcsMultipartPart } from '@/lib/uploads/providers/gcs/types' +import type { + GcsConfig, + GcsMultipartPart, +} from '@/lib/uploads/providers/google-cloud-storage/types' import type { S3Config, S3MultipartPart } from '@/lib/uploads/providers/s3/types' import type { DeleteFileOptions, @@ -208,7 +211,7 @@ export async function uploadFile(options: UploadFileOptions): Promise } if (USE_GCS_STORAGE) { - const { uploadToGcs } = await import('@/lib/uploads/providers/gcs/client') + const { uploadToGcs } = await import('@/lib/uploads/providers/google-cloud-storage/client') const uploadResult = await uploadToGcs( file, keyToUse, @@ -379,7 +382,7 @@ async function createGcsBackend( uploadGcsPart, completeGcsMultipartUpload, abortGcsMultipartUpload, - } = await import('@/lib/uploads/providers/gcs/client') + } = await import('@/lib/uploads/providers/google-cloud-storage/client') const { uploadId, key: uploadKey } = await initiateGcsMultipartUpload({ fileName: key, contentType, @@ -553,7 +556,9 @@ export async function downloadFile(options: DownloadFileOptions): Promise { } if (USE_GCS_STORAGE) { - const { deleteFromGcs } = await import('@/lib/uploads/providers/gcs/client') + const { deleteFromGcs } = await import('@/lib/uploads/providers/google-cloud-storage/client') return deleteFromGcs(key, createGcsConfig(config)) } } @@ -721,7 +728,7 @@ export async function headObject( } if (USE_GCS_STORAGE) { - const { headGcsObject } = await import('@/lib/uploads/providers/gcs/client') + const { headGcsObject } = await import('@/lib/uploads/providers/google-cloud-storage/client') return headGcsObject(key, createGcsConfig(config)) } @@ -759,7 +766,9 @@ export async function generatePresignedDownloadUrl( } if (USE_GCS_STORAGE) { - const { getPresignedUrlWithConfig } = await import('@/lib/uploads/providers/gcs/client') + const { getPresignedUrlWithConfig } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) return getPresignedUrlWithConfig(key, createGcsConfig(config), expirationSeconds) } diff --git a/apps/sim/lib/uploads/providers/gcs/client.test.ts b/apps/sim/lib/uploads/providers/google-cloud-storage/client.test.ts similarity index 99% rename from apps/sim/lib/uploads/providers/gcs/client.test.ts rename to apps/sim/lib/uploads/providers/google-cloud-storage/client.test.ts index f1969ca8220..e63d271f54d 100644 --- a/apps/sim/lib/uploads/providers/gcs/client.test.ts +++ b/apps/sim/lib/uploads/providers/google-cloud-storage/client.test.ts @@ -84,7 +84,7 @@ import { resetGcsClientForTesting, uploadGcsPart, uploadToGcs, -} from '@/lib/uploads/providers/gcs/client' +} from '@/lib/uploads/providers/google-cloud-storage/client' const mockFetch = vi.fn() diff --git a/apps/sim/lib/uploads/providers/gcs/client.ts b/apps/sim/lib/uploads/providers/google-cloud-storage/client.ts similarity index 99% rename from apps/sim/lib/uploads/providers/gcs/client.ts rename to apps/sim/lib/uploads/providers/google-cloud-storage/client.ts index e972734a42f..75d34c6fd14 100644 --- a/apps/sim/lib/uploads/providers/gcs/client.ts +++ b/apps/sim/lib/uploads/providers/google-cloud-storage/client.ts @@ -14,7 +14,7 @@ import type { GcsMultipartPart, GcsMultipartUploadInit, GcsPartUploadUrl, -} from '@/lib/uploads/providers/gcs/types' +} from '@/lib/uploads/providers/google-cloud-storage/types' import type { FileInfo, MultipartCompletionPolicy, diff --git a/apps/sim/lib/uploads/providers/gcs/types.ts b/apps/sim/lib/uploads/providers/google-cloud-storage/types.ts similarity index 100% rename from apps/sim/lib/uploads/providers/gcs/types.ts rename to apps/sim/lib/uploads/providers/google-cloud-storage/types.ts diff --git a/apps/sim/lib/uploads/upload-session/provider.ts b/apps/sim/lib/uploads/upload-session/provider.ts index 4386be70afa..c8f77c4a116 100644 --- a/apps/sim/lib/uploads/upload-session/provider.ts +++ b/apps/sim/lib/uploads/upload-session/provider.ts @@ -140,7 +140,9 @@ export async function initiateMultipartProviderUpload(params: { return { provider, providerUploadId: result.uploadId } } if (provider === 'gcs') { - const { initiateGcsMultipartUpload } = await import('@/lib/uploads/providers/gcs/client') + const { initiateGcsMultipartUpload } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) const result = await initiateGcsMultipartUpload({ fileName: params.fileName, contentType: params.contentType, @@ -229,7 +231,9 @@ export async function createPutProviderTransfer(params: { }) return { method: 'put', ...transfer, expiresAt: signedExpiresAt } } - const { getGcsPresignedUploadUrl } = await import('@/lib/uploads/providers/gcs/client') + const { getGcsPresignedUploadUrl } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) const transfer = await getGcsPresignedUploadUrl( params.key, params.contentType, @@ -307,7 +311,9 @@ export async function getMultipartProviderPartUrls(params: { expiresAt, })) } - const { getGcsMultipartPartUrls } = await import('@/lib/uploads/providers/gcs/client') + const { getGcsMultipartPartUrls } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) const urls = await getGcsMultipartPartUrls( params.key, params.providerUploadId, @@ -341,7 +347,9 @@ export async function listMultipartProviderParts(params: { const { listMultipartParts } = await import('@/lib/uploads/providers/blob/client') return listMultipartParts(params.key, createBlobConfig(config)) } - const { listGcsMultipartParts } = await import('@/lib/uploads/providers/gcs/client') + const { listGcsMultipartParts } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) return listGcsMultipartParts(params.key, params.providerUploadId, createGcsConfig(config)) } @@ -397,7 +405,9 @@ export async function completeMultipartProviderUpload(params: { ) return } - const { completeGcsMultipartUpload } = await import('@/lib/uploads/providers/gcs/client') + const { completeGcsMultipartUpload } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) await completeGcsMultipartUpload( params.key, params.providerUploadId, @@ -425,8 +435,8 @@ export async function headProviderObject(params: { ? await import('@/lib/uploads/providers/blob/client').then(({ headBlobObject }) => headBlobObject(params.key, createBlobConfig(config)) ) - : await import('@/lib/uploads/providers/gcs/client').then(({ headGcsObject }) => - headGcsObject(params.key, createGcsConfig(config)) + : await import('@/lib/uploads/providers/google-cloud-storage/client').then( + ({ headGcsObject }) => headGcsObject(params.key, createGcsConfig(config)) ) if (!head) return null if (!head.contentType || !head.uploadId || !head.version) { @@ -469,7 +479,9 @@ export async function deleteProviderObjectVersion(params: { }) return } - const { deleteGcsObjectVersion } = await import('@/lib/uploads/providers/gcs/client') + const { deleteGcsObjectVersion } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) await deleteGcsObjectVersion({ key: params.key, generation: params.version, @@ -502,7 +514,9 @@ export async function abortProviderUpload(params: { const { abortMultipartUpload } = await import('@/lib/uploads/providers/blob/client') await abortMultipartUpload(params.key, params.uploadId, createBlobConfig(config)) } else { - const { abortGcsMultipartUpload } = await import('@/lib/uploads/providers/gcs/client') + const { abortGcsMultipartUpload } = await import( + '@/lib/uploads/providers/google-cloud-storage/client' + ) await abortGcsMultipartUpload(params.key, params.providerUploadId, createGcsConfig(config)) } }