├── .github ├── WORKFLOWS.md └── workflows │ ├── backend-ci.yml │ └── backend-tests.yml ├── .gitignore ├── DEPLOYMENT.md ├── LICENSE ├── README.md ├── assets ├── 1Password-TOTP.png ├── pocket-chest-retrieve-demo.gif └── pocket-chest-upload-demo.gif ├── pocket-chest-backend ├── .editorconfig ├── .eslintrc.json ├── .prettierignore ├── .prettierrc ├── .prettierrc.json ├── README.md ├── eslint.config.js ├── package-lock.json ├── package.json ├── scripts │ ├── generate-secrets.js │ └── test-ci.sh ├── src │ ├── index.ts │ ├── schema.sql │ ├── types.ts │ └── utils.ts ├── test │ ├── auth.spec.ts │ ├── chest-creation.spec.ts │ ├── code-generation.spec.ts │ ├── config.spec.ts │ ├── cors.spec.ts │ ├── download.spec.ts │ ├── env.d.ts │ ├── error-scenarios.spec.ts │ ├── file-upload.spec.ts │ ├── integration.spec.ts │ ├── multipart-upload.spec.ts │ ├── retrieval.spec.ts │ ├── tsconfig.json │ ├── upload-completion.spec.ts │ └── utils │ │ ├── test-factories.ts │ │ ├── test-helpers.ts │ │ └── test-setup.ts ├── tsconfig.json ├── vitest.config.mts ├── worker-configuration.d.ts ├── wrangler.jsonc └── wrangler.jsonc.template └── pocket-chest-frontend ├── .env.local.template ├── _headers ├── next-env.d.ts ├── next.config.js ├── package-lock.json ├── package.json ├── postcss.config.js ├── public └── favicon.png ├── src ├── app │ ├── globals.css │ ├── layout.tsx │ ├── page.tsx │ ├── retrieve │ │ └── page.tsx │ └── share │ │ └── page.tsx ├── components │ ├── ExpirySelector.tsx │ ├── FileUpload.tsx │ ├── RetrieveClient.tsx │ ├── TOTPModal.tsx │ ├── TextInput.tsx │ └── UploadProgress.tsx ├── hooks │ └── usePocketChest.ts └── lib │ ├── api.ts │ └── types.ts ├── tailwind.config.js └── tsconfig.json /.github/WORKFLOWS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/.github/WORKFLOWS.md -------------------------------------------------------------------------------- /.github/workflows/backend-ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/.github/workflows/backend-ci.yml -------------------------------------------------------------------------------- /.github/workflows/backend-tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/.github/workflows/backend-tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/.gitignore -------------------------------------------------------------------------------- /DEPLOYMENT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/DEPLOYMENT.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/README.md -------------------------------------------------------------------------------- /assets/1Password-TOTP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/assets/1Password-TOTP.png -------------------------------------------------------------------------------- /assets/pocket-chest-retrieve-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/assets/pocket-chest-retrieve-demo.gif -------------------------------------------------------------------------------- /assets/pocket-chest-upload-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/assets/pocket-chest-upload-demo.gif -------------------------------------------------------------------------------- /pocket-chest-backend/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/.editorconfig -------------------------------------------------------------------------------- /pocket-chest-backend/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/.eslintrc.json -------------------------------------------------------------------------------- /pocket-chest-backend/.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/.prettierignore -------------------------------------------------------------------------------- /pocket-chest-backend/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/.prettierrc -------------------------------------------------------------------------------- /pocket-chest-backend/.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/.prettierrc.json -------------------------------------------------------------------------------- /pocket-chest-backend/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/README.md -------------------------------------------------------------------------------- /pocket-chest-backend/eslint.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/eslint.config.js -------------------------------------------------------------------------------- /pocket-chest-backend/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/package-lock.json -------------------------------------------------------------------------------- /pocket-chest-backend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/package.json -------------------------------------------------------------------------------- /pocket-chest-backend/scripts/generate-secrets.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/scripts/generate-secrets.js -------------------------------------------------------------------------------- /pocket-chest-backend/scripts/test-ci.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/scripts/test-ci.sh -------------------------------------------------------------------------------- /pocket-chest-backend/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/src/index.ts -------------------------------------------------------------------------------- /pocket-chest-backend/src/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/src/schema.sql -------------------------------------------------------------------------------- /pocket-chest-backend/src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/src/types.ts -------------------------------------------------------------------------------- /pocket-chest-backend/src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/src/utils.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/auth.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/auth.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/chest-creation.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/chest-creation.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/code-generation.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/code-generation.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/config.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/config.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/cors.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/cors.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/download.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/download.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/env.d.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/error-scenarios.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/error-scenarios.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/file-upload.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/file-upload.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/integration.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/integration.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/multipart-upload.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/multipart-upload.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/retrieval.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/retrieval.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/tsconfig.json -------------------------------------------------------------------------------- /pocket-chest-backend/test/upload-completion.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/upload-completion.spec.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/utils/test-factories.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/utils/test-factories.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/utils/test-helpers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/utils/test-helpers.ts -------------------------------------------------------------------------------- /pocket-chest-backend/test/utils/test-setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/test/utils/test-setup.ts -------------------------------------------------------------------------------- /pocket-chest-backend/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/tsconfig.json -------------------------------------------------------------------------------- /pocket-chest-backend/vitest.config.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/vitest.config.mts -------------------------------------------------------------------------------- /pocket-chest-backend/worker-configuration.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/worker-configuration.d.ts -------------------------------------------------------------------------------- /pocket-chest-backend/wrangler.jsonc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/wrangler.jsonc -------------------------------------------------------------------------------- /pocket-chest-backend/wrangler.jsonc.template: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-backend/wrangler.jsonc.template -------------------------------------------------------------------------------- /pocket-chest-frontend/.env.local.template: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/.env.local.template -------------------------------------------------------------------------------- /pocket-chest-frontend/_headers: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/_headers -------------------------------------------------------------------------------- /pocket-chest-frontend/next-env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/next-env.d.ts -------------------------------------------------------------------------------- /pocket-chest-frontend/next.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/next.config.js -------------------------------------------------------------------------------- /pocket-chest-frontend/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/package-lock.json -------------------------------------------------------------------------------- /pocket-chest-frontend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/package.json -------------------------------------------------------------------------------- /pocket-chest-frontend/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/postcss.config.js -------------------------------------------------------------------------------- /pocket-chest-frontend/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/public/favicon.png -------------------------------------------------------------------------------- /pocket-chest-frontend/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/app/globals.css -------------------------------------------------------------------------------- /pocket-chest-frontend/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/app/layout.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/app/page.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/app/retrieve/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/app/retrieve/page.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/app/share/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/app/share/page.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/components/ExpirySelector.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/components/ExpirySelector.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/components/FileUpload.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/components/FileUpload.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/components/RetrieveClient.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/components/RetrieveClient.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/components/TOTPModal.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/components/TOTPModal.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/components/TextInput.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/components/TextInput.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/components/UploadProgress.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/components/UploadProgress.tsx -------------------------------------------------------------------------------- /pocket-chest-frontend/src/hooks/usePocketChest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/hooks/usePocketChest.ts -------------------------------------------------------------------------------- /pocket-chest-frontend/src/lib/api.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/lib/api.ts -------------------------------------------------------------------------------- /pocket-chest-frontend/src/lib/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/src/lib/types.ts -------------------------------------------------------------------------------- /pocket-chest-frontend/tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/tailwind.config.js -------------------------------------------------------------------------------- /pocket-chest-frontend/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hzao/PocketChest/HEAD/pocket-chest-frontend/tsconfig.json --------------------------------------------------------------------------------