Directory structure:
└── aws-samples-aws-sdk-js-notes-app/
├── README.md
├── AmazonChangeLog.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── package.json
├── .yarnrc.yml
├── packages/
│ ├── frontend/
│ │ ├── README.md
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ ├── vite.config.ts
│ │ ├── public/
│ │ │ ├── manifest.json
│ │ │ ├── robots.txt
│ │ │ └── worklets/
│ │ │ └── recording-processor.js
│ │ └── src/
│ │ ├── config.js
│ │ ├── index.tsx
│ │ ├── Routes.tsx
│ │ ├── components/
│ │ │ ├── ButtonSpinner.tsx
│ │ │ ├── HomeButton.tsx
│ │ │ ├── index.ts
│ │ │ ├── Loading.tsx
│ │ │ └── PageContainer.tsx
│ │ ├── content/
│ │ │ ├── CreateNote.tsx
│ │ │ ├── DeleteNoteButton.tsx
│ │ │ ├── index.ts
│ │ │ ├── ListNotes.tsx
│ │ │ ├── NotFound.tsx
│ │ │ ├── PlayAudioButton.tsx
│ │ │ ├── RecordAudioButton.tsx
│ │ │ ├── SaveNoteButton.tsx
│ │ │ └── ShowNote.tsx
│ │ └── libs/
│ │ ├── audioUtils.ts
│ │ ├── deleteObject.ts
│ │ ├── getObjectUrl.ts
│ │ ├── getStreamTranscriptionResponse.ts
│ │ ├── getSynthesizedSpeechUrl.ts
│ │ ├── index.ts
│ │ ├── putObject.ts
│ │ └── s3Client.ts
│ ├── infra/
│ │ ├── cdk.json
│ │ ├── package.json
│ │ ├── tsconfig.json
│ │ └── cdk/
│ │ ├── aws-sdk-js-notes-app-stack.ts
│ │ ├── aws-sdk-js-notes-app.ts
│ │ └── backend/
│ │ ├── notes-api.create.ts
│ │ ├── notes-api.delete.ts
│ │ ├── notes-api.get.ts
│ │ ├── notes-api.list.ts
│ │ ├── notes-api.ts
│ │ ├── notes-api.update.ts
│ │ └── libs/
│ │ └── response.ts
│ └── scripts/
│ └── populate-frontend-config.js
└── .github/
├── CODEOWNERS
├── pull_request_template.md
├── renovate.json
├── ISSUE_TEMPLATE/
│ ├── bug_report.md
│ └── feature_request.md
└── workflows/
└── ci.yml