Skip to content

Commit 03d9ab8

Browse files
authored
Merge branch 'G4brym:main' into main
2 parents 897b641 + 5c52c5d commit 03d9ab8

File tree

107 files changed

+9333
-1744
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+9333
-1744
lines changed

.changeset/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Changesets
2+
3+
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4+
with multi-package repos, or single-package repos to help you version and publish your code. You can
5+
find the full documentation for it [in the readme](https://github.com/changesets/changesets/blob/main/README.md)
6+
7+
**What is a changeset?** A changeset is a piece of information about changes made in a branch or commit. It
8+
holds three bits of information:
9+
- What we need to release
10+
- What semver bump type we need (major / minor / patch)
11+
- A changelog entry for the released packages
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"r2-explorer": minor
3+
---
4+
5+
Add file and folder duplicate/copy operation via context menu. Right-clicking a file or folder and selecting "Duplicate" creates a copy with a " (copy)" suffix in the same directory, preserving all metadata.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"r2-explorer": patch
3+
---
4+
5+
Add `ShareMetadata` type interface for share link metadata, replacing untyped `any` in `getShareLink` and implicit `any` in `listShares`. Also fix `readOnlyMiddleware` to use Hono's `Next` type instead of `CallableFunction`.

.changeset/config.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"$schema": "https://github.com/changesets/changesets/blob/main/packages/config/schema.json",
3+
"changelog": [
4+
"@changesets/changelog-github",
5+
{ "repo": "G4brym/R2-Explorer" }
6+
],
7+
"commit": false,
8+
"fixed": [],
9+
"linked": [],
10+
"access": "public",
11+
"baseBranch": "main",
12+
"updateInternalDependencies": "patch",
13+
"ignore": ["r2-explorer-dashboard", "r2-explorer-github-action", "docs-new", "r2-explorer-dev-worker"]
14+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"r2-explorer": patch
3+
---
4+
5+
Fix Content-Disposition header injection in GetObject by sanitizing filenames (replacing non-ASCII with `_` and double quotes with `'`) and adding RFC 5987 `filename*=UTF-8''...` parameter for proper Unicode support.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"r2-explorer": patch
3+
---
4+
5+
Fix HeadObject OpenAPI summary from "Get Object" to "Head Object" and align base64 key decoding in HeadObject and PutMetadata with GetObject's three-level fallback to handle edge-case encoded keys consistently across all endpoints.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"r2-explorer": patch
3+
---
4+
5+
Add missing null check for R2 bucket in email handler to prevent crash when no bucket binding is found
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"r2-explorer": patch
3+
---
4+
5+
Fix share link download counter incrementing before verifying file exists. Previously, if the shared file was deleted from the bucket, accessing the share link would still increment the download counter before returning a 404 error. This could exhaust the download limit without any actual downloads occurring. The counter now only increments after confirming the file exists.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"r2-explorer": patch
3+
---
4+
5+
Return 400 instead of 500 when upload endpoints receive malformed base64-encoded metadata in `customMetadata` or `httpMetadata` query parameters

.github/workflows/build.yml

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ jobs:
2020
build:
2121
runs-on: ubuntu-latest
2222
steps:
23-
- uses: actions/checkout@v4
23+
- uses: actions/checkout@v6
2424
- name: Set up Node.js
25-
uses: actions/setup-node@v4
25+
uses: actions/setup-node@v6
2626
with:
2727
node-version: '20.x'
2828
- name: Install pnpm
@@ -33,12 +33,40 @@ jobs:
3333
run: pnpm lint
3434
- name: Build everything
3535
run: pnpm build
36+
- name: Run Dashboard Tests
37+
run: cd packages/dashboard && pnpm test
3638
- name: Run Worker Tests
3739
run: cd packages/worker && pnpm test
3840
- name: Package artifact
3941
run: pnpm package
4042
- name: Archive package
41-
uses: actions/upload-artifact@v4
43+
uses: actions/upload-artifact@v7
4244
with:
4345
name: r2-explorer-npm-package
4446
path: packages/worker/r2-explorer-*
47+
48+
e2e:
49+
runs-on: ubuntu-latest
50+
steps:
51+
- uses: actions/checkout@v6
52+
- name: Set up Node.js
53+
uses: actions/setup-node@v6
54+
with:
55+
node-version: '20.x'
56+
- name: Install pnpm
57+
run: npm install -g pnpm
58+
- name: Install dependencies
59+
run: pnpm install
60+
- name: Build dashboard
61+
run: pnpm build-dashboard
62+
- name: Install Playwright browsers
63+
run: pnpm exec playwright install --with-deps chromium
64+
- name: Run E2E tests
65+
run: pnpm test:e2e
66+
- name: Upload Playwright report
67+
uses: actions/upload-artifact@v7
68+
if: ${{ !cancelled() }}
69+
with:
70+
name: playwright-report
71+
path: packages/dashboard/test-results/
72+
retention-days: 7

0 commit comments

Comments
 (0)