feat(cloud-storage): add Cloudflare Worker-based cloud storage app#8
Merged
feat(cloud-storage): add Cloudflare Worker-based cloud storage app#8
Conversation
…air with smart platform analysis
… code cascade deletion - Add RemovePanButton and RemoveCodeButton with AlertDialog confirmation UI - Add Logout page and SessionExpired page - Restructure root pages into RootPage/ (AdminPage, GuestPage, AdminManagementPage) - Fix: codes under a pan were not deleted when the pan was removed due to PanCode subquery being evaluated after PanCode rows were deleted; move Code deletion before PanCode deletion - Add secure flag to all Set-Cookie calls in adminAuth and panAuth middlewares - Add KV cacheTtl option to AUTH_KV.get calls to reduce latency - Use c.event.waitUntil for non-blocking KV.put on session write - Add favicon assets for both root and /admin paths - Add axios, react-helmet, react-use dependencies
- Add sonner library for toast notifications with theme support (next-themes integration) - Add lucide-react icon library for UI components - Implement CodeAddressButton component for sharing extraction codes - Implement EditCodeButton component for edit actions - Implement input-group, popover and textarea UI components for improved UX - Integrate toast notifications across AdminCodes, AdminCodeDetail, AdminPanDetail and AdminPans pages - Support automatic dark/light theme switching for notifications
### Changes: - **Components**: Refactored button components with new BackButton, DeleteButton, DeleteCodeButton, DeleteFileButton, and DeletePanButton components - **Component Rename**: Renamed EditCodeButton to EditButton for consistency - **UI Enhancements**: Added Empty component for empty states and DateHover component for date display - **File Management**: Introduced AdminFileManagement component for file operations in storage panels - **Page Updates**: Updated AdminPanDetail, AdminPans, AdminCodes, and other pages to use new components - **Request Methods**: Enhanced fetchAdminCodes and fetchAdminPanDetail with new functionality ### Motivation: This refactoring improves component modularity and separation of concerns by breaking down complex button logic into focused, reusable components. The new AdminFileManagement component provides better organization for file operations and enhanced user interface for managing storage contents.
- Refactor permission constants structure: + Split constant.ts into constant/perm.ts for permission definitions + Add new constant/guest.ts for guest-specific constants - Implement guest file upload functionality: + Add uploadFileGuest.ts for guest file upload requests + Add guestFetch.ts utility for guest authentication requests + Implement guestAxios instance for guest API calls - Update authorization middleware and APIs: + Enhance adminAuth.ts and panAuth.ts for guest access handling + Update permission models to support guest permissions + Implement getPerms utility to handle both admin and guest permissions + Update admin and guest API endpoints (codePerm, panPerm, filelist) - Update React components for multi-user support: + Modify login, detail pages, and permission components + Refactor usePanPermsByPanId hook for guest/admin dual modes + Update UI components to support guest access flows
- Split 6 merged e2e md files into 79 individual scenario files under test/e2e/docs/ - Organized into 6 subdirectories: admin-auth(5), admin-pan(12), admin-code(13), admin-perm(13), admin-file(15), guest-file(21) - Added [管理端] / [访客端] role labels to mixed-role scenario steps for clarity - Removed original merged md files from test/e2e/
There was a problem hiding this comment.
Pull request overview
This PR adds a new Cloudflare Workers “cloud-storage” app (Hono + D1/KV/R2 backend + React SPA frontend), alongside repo-wide tooling bumps and CI wiring to lint/test/build the new app.
Changes:
- Disable Turbo caching for the formatter fix task and bump
oxlint/rimrafversions across multiple workspaces. - Add the new
apps/cf-worker/cloud-storageWorker + React SPA implementation, configs (Wrangler/Vite/Vitest/TS), and extensive docs/E2E scenario specs. - Add a dedicated GitHub Actions workflow for cloud-storage and update repo/editor automation configs (Claude skills, MCP, VS Code settings).
Reviewed changes
Copilot reviewed 258 out of 274 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| turbo.json | Disables caching for fix:formatter. |
| packages/node/logger/package.json | Bumps oxlint and rimraf. |
| packages/node/buildFS/package.json | Bumps oxlint and rimraf. |
| packages/monkey/gm-vue/package.json | Bumps oxlint and rimraf. |
| packages/monkey/gm-polyfill/package.json | Bumps oxlint and rimraf. |
| packages/general/throttle/package.json | Bumps oxlint and rimraf. |
| packages/general/genStorage/package.json | Bumps oxlint and rimraf. |
| packages/general/functionControl/package.json | Bumps oxlint and rimraf. |
| packages/general/flow/package.json | Bumps oxlint and rimraf. |
| packages/general/MdGenerator/package.json | Bumps oxlint and rimraf. |
| packages/esbuild-plugin/html-minify-text/package.json | Bumps oxlint and rimraf. |
| packages/esbuild-plugin/css-minify-text/package.json | Bumps oxlint and rimraf. |
| packages/build-scripts/qinglong-build/package.json | Bumps oxlint and rimraf. |
| packages/build-scripts/monkey-build/package.json | Bumps oxlint and rimraf. |
| packages/build-scripts/build-utils/package.json | Bumps oxlint and rimraf. |
| packages/browser/genScrollTo/package.json | Bumps oxlint and rimraf. |
| apps/qinglong/package.json | Bumps oxlint and rimraf. |
| apps/monkey/set-fira-code-development-websites/package.json | Bumps rimraf. |
| apps/monkey/nyaa-si-show-image/package.json | Bumps rimraf. |
| apps/monkey/gitlab-settings-max-size/package.json | Bumps rimraf. |
| apps/monkey/gitlab-font-family/package.json | Bumps rimraf. |
| apps/monkey/gitlab-enhance/package.json | Bumps rimraf. |
| apps/monkey/copymanga-enhance/package.json | Bumps oxlint and rimraf. |
| apps/cf-worker/cloud-storage/wrangler.jsonc | Adds Wrangler config + bindings for the new Worker. |
| apps/cf-worker/cloud-storage/vitest.config.ts | Adds Vitest config + aliasing. |
| apps/cf-worker/cloud-storage/vite.config.ts | Adds Vite config + Cloudflare plugin wiring. |
| apps/cf-worker/cloud-storage/tsconfig.worker.json | Adds worker TS config. |
| apps/cf-worker/cloud-storage/tsconfig.node.json | Adds node TS config for tooling. |
| apps/cf-worker/cloud-storage/tsconfig.json | Adds project references + path aliases. |
| apps/cf-worker/cloud-storage/tsconfig.app.json | Adds app TS config for React. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/23-preview-video-file.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/22-preview-image-file.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/21-upload-different-hash.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/20-upload-same-hash.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/19-empty-list-after-delete.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/18-special-chars-download.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/17-no-auth-access.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/16-cookie-persistence.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/15-highlight-file-first.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/14-upload-file-no-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/13-associate-file-hash-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/12-associate-file-by-hash.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/11-upload-file-multipart.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/10-delete-file-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/09-delete-file-no-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/08-delete-file-with-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/07-download-file-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/06-download-file-no-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/05-download-file-with-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/04-list-files-by-cookie.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/03-disabled-pan.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/02-invalid-code.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/guest-file/01-list-files-by-code.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/13-cascade-delete-with-code.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/12-code-perm-false-behavior.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/11-cascade-delete-with-pan.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/10-perm-ownership-validation.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/09-delete-code-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/08-update-code-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/07-code-perm-overrides-pan-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/06-add-code-delete-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/05-delete-pan-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/04-update-pan-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/03-invalid-perm-type.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/02-duplicate-perm-type.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-perm/01-add-pan-upload-perm.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/12-pan-list-count-decrement.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/11-pan-list-count-increment.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/10-empty-pan-structure.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/09-disabled-pan-blocks-guest.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/08-new-pan-default-state.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/07-delete-pan-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/06-delete-pan-cascade.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/05-update-pan-status.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/04-pan-detail-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/03-pan-detail.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/02-create-pan.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-pan/01-list-pans.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/15-delete-file-not-in-pan.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/14-delete-file-multi-pan.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/13-delete-file-single-pan.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/12-update-file-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/11-update-filename-and-highlight.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/10-update-highlight.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/09-update-filename.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/08-download-r2-missing.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/07-download-file-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/06-download-file.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/05-associate-file-hash-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/04-associate-file-by-hash.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/03-upload-missing-field.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/02-upload-duplicate-file.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-file/01-upload-new-file.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/13-cascade-delete-with-pan.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/12-disabled-code-blocks-guest.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/11-cross-pan-code-ownership.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/10-multiple-codes-same-pan.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/09-code-value-format.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/08-delete-code-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/07-delete-code.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/06-update-code-status.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/05-code-detail-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/04-code-detail.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/03-create-code-pan-not-found.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/02-create-code.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-code/01-list-codes.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/05-token-expired.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/04-logout-success.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/03-unauth-access.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/02-login-fail.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/docs/admin-auth/01-login-success.md | Adds E2E scenario doc. |
| apps/cf-worker/cloud-storage/test/e2e/CLAUDE.md | Documents E2E scenario doc conventions. |
| apps/cf-worker/cloud-storage/src/worker/utils/publishJson.ts | Adds custom-code-to-HTTP response wrapper. |
| apps/cf-worker/cloud-storage/src/worker/utils/getDb.ts | Adds Drizzle D1 instance helper + query logging. |
| apps/cf-worker/cloud-storage/src/worker/utils/genLogger.ts | Adds request/session-prefixed logger. |
| apps/cf-worker/cloud-storage/src/worker/types/hono.ts | Adds shared Hono env/context typings. |
| apps/cf-worker/cloud-storage/src/worker/schema.sql | Adds initial SQL schema definition. |
| apps/cf-worker/cloud-storage/src/worker/models/base.ts | Adds default ID/timestamp columns for Drizzle models. |
| apps/cf-worker/cloud-storage/src/worker/models/Perm.ts | Adds perm table model. |
| apps/cf-worker/cloud-storage/src/worker/models/PanPerm.ts | Adds pan_perm join table model. |
| apps/cf-worker/cloud-storage/src/worker/models/PanDoc.ts | Adds pan_doc join table model. |
| apps/cf-worker/cloud-storage/src/worker/models/PanCode.ts | Adds pan_code join table model. |
| apps/cf-worker/cloud-storage/src/worker/models/Pan.ts | Adds pan table model. |
| apps/cf-worker/cloud-storage/src/worker/models/Doc.ts | Adds doc table model. |
| apps/cf-worker/cloud-storage/src/worker/models/CodePerm.ts | Adds code_perm join table model. |
| apps/cf-worker/cloud-storage/src/worker/models/Code.ts | Adds code table model. |
| apps/cf-worker/cloud-storage/src/worker/middlewares/startTime.ts | Adds request start time tracking. |
| apps/cf-worker/cloud-storage/src/worker/middlewares/session.ts | Adds request/session IDs in headers + context. |
| apps/cf-worker/cloud-storage/src/worker/middlewares/less.ts | Adds conditional middleware skipping by route. |
| apps/cf-worker/cloud-storage/src/worker/middlewares/access.ts | Adds access logging middleware. |
| apps/cf-worker/cloud-storage/src/worker/index.ts | Wires Worker middlewares and routes. |
| apps/cf-worker/cloud-storage/src/worker/apis/utils/getPerms.ts | Implements pan/code permission resolution. |
| apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPermType.ts | Adds perm type validation helper. |
| apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPermExistsFromPan.ts | Adds “perm belongs to pan” validation helper. |
| apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPermExistsFromCode.ts | Adds “perm belongs to code” validation helper. |
| apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPanExists.ts | Adds pan existence helper. |
| apps/cf-worker/cloud-storage/src/worker/apis/utils/checkPanDocExists.ts | Adds pan/doc association lookup helper. |
| apps/cf-worker/cloud-storage/src/worker/apis/utils/checkCodeExists.ts | Adds code existence helper. |
| apps/cf-worker/cloud-storage/src/worker/apis/guest/index.ts | Adds guest API router wiring. |
| apps/cf-worker/cloud-storage/src/worker/apis/guest/filepost.ts | Adds guest upload endpoints. |
| apps/cf-worker/cloud-storage/src/worker/apis/guest/filelist.ts | Adds guest file listing endpoint. |
| apps/cf-worker/cloud-storage/src/worker/apis/bg/index.ts | Adds KV-cached Bing background proxy endpoint. |
| apps/cf-worker/cloud-storage/src/worker/apis/admin/panPerm.ts | Adds admin CRUD for pan-level perms. |
| apps/cf-worker/cloud-storage/src/worker/apis/admin/index.ts | Adds admin API router wiring. |
| apps/cf-worker/cloud-storage/src/worker/apis/admin/codePerm.ts | Adds admin CRUD for code-level perms. |
| apps/cf-worker/cloud-storage/src/worker/apis/admin/auth.ts | Adds admin login/logout wiring. |
| apps/cf-worker/cloud-storage/src/worker/CLAUDE.md | Documents Worker architecture. |
| apps/cf-worker/cloud-storage/src/shared/types/types.d.ts | Adds shared API/file types. |
| apps/cf-worker/cloud-storage/src/shared/constant/status-code.test.ts | Adds tests for custom status code invariants. |
| apps/cf-worker/cloud-storage/src/shared/constant/perm.ts | Adds perm type constants/defaults. |
| apps/cf-worker/cloud-storage/src/shared/constant/guest.ts | Adds guest status codes and messages. |
| apps/cf-worker/cloud-storage/src/shared/constant/general.ts | Adds general status codes and messages. |
| apps/cf-worker/cloud-storage/src/shared/constant/admin.ts | Adds admin status codes and messages. |
| apps/cf-worker/cloud-storage/src/react-app/vite-env.d.ts | Adds Vite client typing ref. |
| apps/cf-worker/cloud-storage/src/react-app/utils/guestFetch.ts | Adds guest axios wrapper + redirect/toast behavior. |
| apps/cf-worker/cloud-storage/src/react-app/utils/formatFileSize.ts | Adds file size formatter helper. |
| apps/cf-worker/cloud-storage/src/react-app/utils/formatFileSize.test.ts | Adds tests for file size formatter. |
| apps/cf-worker/cloud-storage/src/react-app/utils/diffDate.ts | Adds “time ago” helper. |
| apps/cf-worker/cloud-storage/src/react-app/utils/diffDate.test.ts | Adds tests for “time ago” helper. |
| apps/cf-worker/cloud-storage/src/react-app/utils/adminFetch.ts | Adds admin axios wrapper + session-expired event. |
| apps/cf-worker/cloud-storage/src/react-app/routes.ts | Adds SPA routing (guest + admin). |
| apps/cf-worker/cloud-storage/src/react-app/requests/uploadFileGuest.ts | Adds guest upload request wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/requests/uploadFile.ts | Adds admin upload request wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/requests/logout.ts | Adds admin logout request wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/requests/login.ts | Adds admin login request wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/requests/fetchPanInfoData.ts | Adds guest file list fetch wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/requests/fetchAdminPans.ts | Adds admin pan CRUD request wrappers. |
| apps/cf-worker/cloud-storage/src/react-app/requests/fetchAdminPanDetail.ts | Adds admin pan detail + delete-file request wrappers. |
| apps/cf-worker/cloud-storage/src/react-app/requests/fetchAdminCodes.ts | Adds admin code list/delete request wrappers. |
| apps/cf-worker/cloud-storage/src/react-app/requests/fetchAdminCodeDetail.ts | Adds admin code detail request wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/requests/deleteFileGuest.ts | Adds guest delete-file request wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/main.tsx | Adds SPA entry point. |
| apps/cf-worker/cloud-storage/src/react-app/lib/utils.ts | Adds cn() helper. |
| apps/cf-worker/cloud-storage/src/react-app/hooks/usePanPermsByPanId.ts | Adds admin pan perm resolution hook. |
| apps/cf-worker/cloud-storage/src/react-app/hooks/usePanPerms.ts | Adds guest perms hook. |
| apps/cf-worker/cloud-storage/src/react-app/hooks/usePanInfo.ts | Adds guest pan-info hook. |
| apps/cf-worker/cloud-storage/src/react-app/hooks/useFileList.ts | Adds guest file-list hook. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/SessionExpired/SessionExpired.tsx | Adds admin session-expired page. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/GuestPage.tsx | Adds guest root page + redirect handling. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/App.tsx | Adds top-level app shell + toaster. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/App.module.css | Adds responsive background CSS. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/AdminPage.tsx | Adds admin root page. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/RootPage/AdminManagementPage.tsx | Adds admin layout + menu + session-expired handling. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/Logout/Logout.tsx | Adds logout page. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/Login/Login.tsx | Adds login page. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/Home/Home.tsx | Adds guest home page (enter code). |
| apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/constant.ts | Adds detail page mode constants. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/Components/VideoContent.tsx | Adds video preview renderer. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/Components/NotSupportContent.tsx | Adds fallback renderer. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/Components/ImageContent.tsx | Adds image preview renderer. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/Detail/Components/Content.tsx | Adds preview router by mimetype. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/AdminPans/AdminPans.tsx | Adds admin pans list page. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/AdminCodes/DateHover.tsx | Adds hover date component. |
| apps/cf-worker/cloud-storage/src/react-app/Pages/AdminCodes/AdminCodes.tsx | Adds admin codes list page. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/textarea.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/table.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/spinner.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/sonner.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/skeleton.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/separator.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/radio-group.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/popover.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/label.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/input.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/hover-card.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/empty.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/checkbox.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/card.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/ui/button.tsx | Adds UI component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/Card/Card.tsx | Adds custom Card wrapper component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/Button/EditButton.tsx | Adds admin edit button component. |
| apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeletePanButton.tsx | Adds admin delete pan button wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeleteFileButton.tsx | Adds admin delete file button wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeleteCodeButton.tsx | Adds admin delete code button wrapper. |
| apps/cf-worker/cloud-storage/src/react-app/Components/Button/DeleteButton.tsx | Adds generic delete-confirmation dialog button. |
| apps/cf-worker/cloud-storage/src/react-app/Components/Button/CodeAddressButton.tsx | Adds “copy/open code URL” button. |
| apps/cf-worker/cloud-storage/src/react-app/Components/Button/BackButton.tsx | Adds back button component. |
| apps/cf-worker/cloud-storage/src/react-app/CLAUDE.md | Documents React app architecture. |
| apps/cf-worker/cloud-storage/public/site.webmanifest | Adds guest PWA manifest. |
| apps/cf-worker/cloud-storage/public/admin/site.webmanifest | Adds admin PWA manifest. |
| apps/cf-worker/cloud-storage/package.json | Adds new app package definition + deps/scripts. |
| apps/cf-worker/cloud-storage/index.html | Adds app HTML entry. |
| apps/cf-worker/cloud-storage/docs/project_structure.md | Adds documentation. |
| apps/cf-worker/cloud-storage/docs/project_logic.md | Adds documentation. |
| apps/cf-worker/cloud-storage/docs/pickup_guide.md | Adds documentation. |
| apps/cf-worker/cloud-storage/docs/libraries.md | Adds documentation. |
| apps/cf-worker/cloud-storage/docs/glossary.md | Adds documentation. |
| apps/cf-worker/cloud-storage/docs/admin_guide.md | Adds documentation. |
| apps/cf-worker/cloud-storage/components.json | Adds shadcn config. |
| apps/cf-worker/cloud-storage/Roadmap.md | Adds roadmap. |
| apps/cf-worker/cloud-storage/CLAUDE.md | Adds top-level docs index. |
| apps/cf-worker/cloud-storage/AGENTS.md | Adds CF Worker agent guidance. |
| apps/cf-worker/cloud-storage/.vscode/settings.json | Adds local editor config for JSONC associations. |
| apps/cf-worker/cloud-storage/.oxlintrc.json | Adds oxlint config for the app. |
| apps/cf-worker/cloud-storage/.oxfmtrc.json | Adds oxfmt config for the app. |
| apps/caddyfile-sdk/package.json | Bumps oxlint and rimraf. |
| CLAUDE.md | Renames referenced native-binding repair skill. |
| .vscode/settings.json | Adds chat terminal auto-approve config. |
| .vscode/mcp.json | Updates MCP server definitions. |
| .github/workflows/cloud_storage.yml | Adds CI workflow for the cloud-storage app. |
| .claude/skills/install-native-binding/SKILL.md | Adds install-native-binding skill doc. |
| .claude/skills/commit/SKILL.md | Updates commit skill to use install-native-binding + body rule. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+13
to
+16
| const { data } = await guestAxios.post< | ||
| ApiResponse<{ key: string; originalName: string; contentType: string; size: number }> | ||
| >('/api/files/file', formData) | ||
|
|
Agent-Logs-Url: https://github.com/Arylo/scripts/sessions/06270808-de69-4749-89a9-83c336ea0267 Co-authored-by: Arylo <4516541+Arylo@users.noreply.github.com>
…m, perm parsing, icon class
- Update @vitest/coverage-v8 from v1.6.0 to v4.1.4 - Upgrade vite from v6.0.0 to v8.0.8 and @vitejs/plugin-react to v6.0.1 - Update @cloudflare/vite-plugin from v1.15.3 to v1.32.2 - Replace ts-node with tsx v4.21.0 - Update vitest to v4.1.4 and syncpack to v14.3.0 - Sync package-lock.json with Linux x64 native bindings and cross-platform support
bb95fe9 to
63a47de
Compare
…owercase - Rename src/react-app/Components/ -> src/react-app/components/ via git mv - Rename src/react-app/Pages/ -> src/react-app/pages/ via git mv - Update all import paths from @/Components/ and @/Pages/ to lowercase equivalents - Reformat affected files via oxfmt
63a47de to
e0b9b7d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Introduces a new Cloudflare Worker application (
apps/cf-worker/cloud-storage) — a self-hosted cloud storage service built with Hono (backend) and React + Vite (frontend), deployed on Cloudflare Workers + D1.Features
Infrastructure
apps/cf-worker/cloud-storage/**Components/→components/andPages/→pages/for Linux case-sensitivity compatibilityOther Changes
package-lock.json.claude/skills: replacedlinux-native-binding-repairwithinstall-native-bindingchrome-devtoolsandshadcnMCP servers