Skip to content

Commit a440470

Browse files
fix: use base64url encoding to prevent esbuild ?source= corruption (#1648)
Co-authored-by: Adam Skoufis <[email protected]>
1 parent c6047fb commit a440470

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@vanilla-extract/integration': patch
3+
---
4+
5+
`serializeCss|deserializeCss`: Use `base64url` encoding instead of `base64` to avoid errors in virtual file paths

packages/integration/src/serialize.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,20 @@ export async function serializeCss(source: string): Promise<string> {
1212
if (source.length > compressionThreshold) {
1313
const compressedSource = await zip(source);
1414

15-
return compressionFlag + compressedSource.toString('base64');
15+
return compressionFlag + compressedSource.toString('base64url');
1616
}
1717

18-
return Buffer.from(source, 'utf-8').toString('base64');
18+
return Buffer.from(source, 'utf-8').toString('base64url');
1919
}
2020

2121
export async function deserializeCss(source: string): Promise<string> {
2222
if (source.indexOf(compressionFlag) > -1) {
2323
const decompressedSource = await unzip(
24-
Buffer.from(source.replace(compressionFlag, ''), 'base64'),
24+
Buffer.from(source.replace(compressionFlag, ''), 'base64url'),
2525
);
2626

2727
return decompressedSource.toString('utf-8');
2828
}
2929

30-
return Buffer.from(source, 'base64').toString('utf-8');
30+
return Buffer.from(source, 'base64url').toString('utf-8');
3131
}

0 commit comments

Comments
 (0)