From 1f9854f643f930e9b95d0205dff42a9a2934e05b Mon Sep 17 00:00:00 2001 From: Chau Cao Date: Sun, 5 Jul 2026 14:38:13 -0500 Subject: [PATCH 01/15] Update project contributors in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e1211217..456e05762 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ CodePath WEB103 Final Project -Designed and developed by: [your names here] +Designed and developed by: [Gustave Ntwali, Abdul Khan, Carolina Herrera, Chau Cao, Dev Goswami, Armin Erika Polanco] πŸ”— Link to deployed app: From f479660c4baebfc852a49067a6a8de3191a3beec Mon Sep 17 00:00:00 2001 From: Chau Cao Date: Sun, 5 Jul 2026 14:38:47 -0500 Subject: [PATCH 02/15] Mark tasks as completed in milestone1.md Updated checklist to reflect completed tasks. --- milestones/milestone1.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/milestones/milestone1.md b/milestones/milestone1.md index 52b9b0038..2108b4ac6 100644 --- a/milestones/milestone1.md +++ b/milestones/milestone1.md @@ -6,10 +6,10 @@ This document should be completed and submitted during **Unit 5** of this course This unit, be sure to complete all tasks listed below. To complete a task, place an `x` between the brackets. -- [ ] Read and understand all required features - - [ ] Understand you **must** implement **all** baseline features and **two** custom features +- [x] Read and understand all required features + - [x] Understand you **must** implement **all** baseline features and **two** custom features - [ ] In `readme.md`: update app name to your app's name -- [ ] In `readme.md`: add all group members' names +- [x] In `readme.md`: add all group members' names - [ ] In `readme.md`: complete the **Description and Purpose** section - [ ] In `readme.md`: complete the **Inspiration** section - [ ] In `readme.md`: list a name and description for all features (minimum 6 for full points) you intend to include in your app (in future units, you will check off features as you complete them and add GIFs demonstrating the features) From 19e64d6b41c04d180d573f1e8d359972de86eca9 Mon Sep 17 00:00:00 2001 From: Pinsoe Gustave <108759573+pinsoegustave@users.noreply.github.com> Date: Sun, 5 Jul 2026 23:21:39 -0400 Subject: [PATCH 03/15] Check off completed tasks and update reflections Updated task completion status and added reflections. --- milestones/milestone1.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/milestones/milestone1.md b/milestones/milestone1.md index 2108b4ac6..df9ec5386 100644 --- a/milestones/milestone1.md +++ b/milestones/milestone1.md @@ -8,25 +8,29 @@ This unit, be sure to complete all tasks listed below. To complete a task, place - [x] Read and understand all required features - [x] Understand you **must** implement **all** baseline features and **two** custom features -- [ ] In `readme.md`: update app name to your app's name +- [X] In `readme.md`: update app name to your app's name - [x] In `readme.md`: add all group members' names - [ ] In `readme.md`: complete the **Description and Purpose** section - [ ] In `readme.md`: complete the **Inspiration** section - [ ] In `readme.md`: list a name and description for all features (minimum 6 for full points) you intend to include in your app (in future units, you will check off features as you complete them and add GIFs demonstrating the features) - [ ] In `planning/user_stories.md`: add all user stories (minimum 10 for full points) - [ ] In `planning/user_stories.md`: use 1-3 unique user roles in your user stories -- [ ] In this document, complete all thre questions in the **Reflection** section below +- [X] In this document, complete all three questions in the **Reflection** section below ## Reflection ### 1. What went well during this unit? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +πŸ‘‰πŸΎ Coming up with the idea is something every group member is proud of] +πŸ‘‰πŸΎ Everyone is feeling confident about working on this project +πŸ‘‰πŸΎ App structuring is not bad at all. ### 2. What were some challenges your group faced in this unit? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +πŸ‘‰πŸΎ Giving the app a unique name +πŸ‘‰πŸΎ Group members are having difficulty meeting at the same time ### 3. What additional support will you need in upcoming units as you continue to work on your final project? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +πŸ‘‰πŸΎ A reviewer at each milestone to give us feedback on our progress +πŸ‘‰πŸΎ A reviewer to tell us the best practices for a well-functioning app From 698834624388f40f9e38f0d0ae579b1de26f4a88 Mon Sep 17 00:00:00 2001 From: arminerika Date: Sun, 5 Jul 2026 20:25:08 -0700 Subject: [PATCH 04/15] milestone1 draft --- README.md | 65 +++++++++++++++++++++++++++++++--------- milestones/milestone1.md | 20 ++++++------- planning/user_stories.md | 21 +++++++++++-- 3 files changed, 79 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 456e05762..f02fb868b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,15 @@ -# [your app name here] +# Sona CodePath WEB103 Final Project -Designed and developed by: [Gustave Ntwali, Abdul Khan, Carolina Herrera, Chau Cao, Dev Goswami, Armin Erika Polanco] +Designed and developed by: + +- Gustave Ntwali +- Abdul Khan +- Carolina Herrera +- Chau Cao +- Dev Goswami +- Armin Erika Polanco πŸ”— Link to deployed app: @@ -10,39 +17,69 @@ Designed and developed by: [Gustave Ntwali, Abdul Khan, Carolina Herrera, Chau C ### Description and Purpose -[text goes here] +**Sona** is a full-stack web app where users can browse artist profiles, follow their favorite artists, view upcoming concert dates, and shop artist merch all in one place. + +Music fans often have to juggle multiple platforms to keep up with an artist. From social media for updates, ticketing sites for shows, separate stores for merch. **Sona** exists to bring that experience together in one app, making it easier for fans to stay connected and for artists to reach their community directly. ### Inspiration -[text goes here] +This project builds on ideas from several of our previous coursework projects. Multiple members of our group have worked on music-themed projects earlier in the course that explored artist/music reference content, vinyl and merch customization, and community-oriented spaces. **Sona** brings these ideas together into a single hub where fans can follow artists, engage with a community built around music, and shop artist merch. ## Tech Stack -Frontend: +Frontend: React (Vite), React Router -Backend: +Backend: Express, Node.js, PostgreSQL ## Features -### [Name of Feature 1] +### Artist Directory -[short description goes here] +- Browse all artists with genre, bio, and profile image; click into a full artist page. -[gif goes here] +- [gif goes here] + +### Follow Artists + +- Users can follow/unfollow artists to build a personalized list of who they're keeping up with. + +- [gif goes here] + +### Merch Shop with Filtering + +- Browse merch (vinyl, CD, apparel) filtered by artist, genre, or format. + +- [gif goes here] -### [Name of Feature 2] +### Order System -[short description goes here] +- Add merch to a cart and place an order; view order history. + +- [gif goes here] + +### Concert Listings + +- View upcoming shows per artist, filterable by city and/or date. + +- [gif goes here] + +### Artist Quick-View Panel + +- Slide-out modal showing artist details and discography without navigating away from the current page. [gif goes here] -### [Name of Feature 3] +### (Stretch) Spotify Connect -[short description goes here] +Link a Spotify account to import playlists and generate personalized recommendations. [gif goes here] -### [ADDITIONAL FEATURES GO HERE - ADD ALL FEATURES HERE IN THE FORMAT ABOVE; you will check these off and add gifs as you complete them] +### (Stretch) Real Payment Integration + +Real checkout system built on top of the existing order system. + +[gif goes here] ## Installation Instructions diff --git a/milestones/milestone1.md b/milestones/milestone1.md index 2108b4ac6..6770d0ca8 100644 --- a/milestones/milestone1.md +++ b/milestones/milestone1.md @@ -8,25 +8,25 @@ This unit, be sure to complete all tasks listed below. To complete a task, place - [x] Read and understand all required features - [x] Understand you **must** implement **all** baseline features and **two** custom features -- [ ] In `readme.md`: update app name to your app's name +- [x] In `readme.md`: update app name to your app's name - [x] In `readme.md`: add all group members' names -- [ ] In `readme.md`: complete the **Description and Purpose** section -- [ ] In `readme.md`: complete the **Inspiration** section -- [ ] In `readme.md`: list a name and description for all features (minimum 6 for full points) you intend to include in your app (in future units, you will check off features as you complete them and add GIFs demonstrating the features) -- [ ] In `planning/user_stories.md`: add all user stories (minimum 10 for full points) -- [ ] In `planning/user_stories.md`: use 1-3 unique user roles in your user stories -- [ ] In this document, complete all thre questions in the **Reflection** section below +- [x] In `readme.md`: complete the **Description and Purpose** section +- [x] In `readme.md`: complete the **Inspiration** section +- [x] In `readme.md`: list a name and description for all features (minimum 6 for full points) you intend to include in your app (in future units, you will check off features as you complete them and add GIFs demonstrating the features) +- [x] In `planning/user_stories.md`: add all user stories (minimum 10 for full points) +- [x] In `planning/user_stories.md`: use 1-3 unique user roles in your user stories +- [x] In this document, complete all thre questions in the **Reflection** section below ## Reflection ### 1. What went well during this unit? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +We agreed on a concept quickly. ### 2. What were some challenges your group faced in this unit? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +Finalizing details across all members can be challenging but we will hopefully implement a better system going forward. ### 3. What additional support will you need in upcoming units as you continue to work on your final project? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +General guidance on keeping the team coordinated and on track as we move into the more technical milestones. diff --git a/planning/user_stories.md b/planning/user_stories.md index 1e55ecbcd..d009a6103 100644 --- a/planning/user_stories.md +++ b/planning/user_stories.md @@ -4,10 +4,25 @@ Reference the Writing User Stories final project guide in the course portal for ## Outline User Roles -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ Include at least at least 1, but no more than 3, user roles.] +- Fan +- Artist Admin ## Draft User Stories -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ Include at least at least 10 user stories in this format:] +Include at least at least 10 user stories in this format: -1. As a [user role], I want to [what], so that [why]. +_As a [user role], I want to [what], so that [why]._ + +1. As a Fan, I want to create an account and log in, so that I can save my preferences and see order history. +2. As a Fan, I want to browse a list of artists, so that I can discover new music. +3. As a Fan, I want to view an individual artist's profile page, so that I can see their bio, socials, and Spotify link. +4. As a Fan, I want to follow an artist, so that I get updates when they release new merch or announce shows. +5. As a Fan, I want to unfollow an artist, so that I can curate who I see updates from. +6. As a Fan, I want to browse merch filtered by artist or format, so that I can find what I want quickly. +7. As a Fan, I want to add items to a cart and place an order, so that I can purchase merch. +8. As a Fan, I want to view my order history, so that I can track past purchases. +9. As a Fan, I want to see upcoming concerts for an artist I follow, filtered by city, so that I can find shows near me. +10. As a Fan, I want to see a quick-view panel when I click an artist, so that I can preview their info without leaving the page. +11. As an Artist Admin, I want to create/edit my artist profile, so that fans have accurate bio and social info. +12. As an Artist Admin, I want to add new merch items to my store, so that fans can purchase them. +13. As an Artist Admin, I want to post upcoming concert dates, so that fans know where to see me live. From a3a705d19bae45e52e38c9141487eba543f1f3dd Mon Sep 17 00:00:00 2001 From: arminerika Date: Sun, 5 Jul 2026 20:41:13 -0700 Subject: [PATCH 05/15] readme format typo --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f02fb868b..edcca2638 100644 --- a/README.md +++ b/README.md @@ -71,15 +71,15 @@ Backend: Express, Node.js, PostgreSQL ### (Stretch) Spotify Connect -Link a Spotify account to import playlists and generate personalized recommendations. +- Link a Spotify account to import playlists and generate personalized recommendations. -[gif goes here] +- [gif goes here] ### (Stretch) Real Payment Integration -Real checkout system built on top of the existing order system. +- Real checkout system built on top of the existing order system. -[gif goes here] +- [gif goes here] ## Installation Instructions From 2579cc95ef5a3b74993e2525937f23ce18bafd50 Mon Sep 17 00:00:00 2001 From: Carolina Herrera <115896094+caroherrera24@users.noreply.github.com> Date: Mon, 6 Jul 2026 01:39:51 -0400 Subject: [PATCH 06/15] Edit inspiration section in README Expanded the inspiration section to include references to existing platforms like Ticketmaster and Bandcamp. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index edcca2638..fd8539dd2 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Music fans often have to juggle multiple platforms to keep up with an artist. Fr ### Inspiration -This project builds on ideas from several of our previous coursework projects. Multiple members of our group have worked on music-themed projects earlier in the course that explored artist/music reference content, vinyl and merch customization, and community-oriented spaces. **Sona** brings these ideas together into a single hub where fans can follow artists, engage with a community built around music, and shop artist merch. +This project builds on ideas from several of our previous coursework projects. Multiple members of our group have worked on music-themed projects earlier in the course that explored artist/music reference content, vinyl and merch customization, and community-oriented spaces. **Sona** brings these ideas together into a single hub where fans can follow artists, engage with a community built around music, and shop artist merch. Furthermore, we take inspiration from existing platforms, such as Ticketmaster and Bandcamp, to build from. ## Tech Stack From 4e0d0cbb65a85e7701fd20ad1a6ef1bb1353c856 Mon Sep 17 00:00:00 2001 From: Carolina Herrera Date: Sun, 12 Jul 2026 15:08:14 -0400 Subject: [PATCH 07/15] add entity relationship diagram image --- planning/erd.png | Bin 0 -> 151047 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 planning/erd.png diff --git a/planning/erd.png b/planning/erd.png new file mode 100644 index 0000000000000000000000000000000000000000..59016be2a0e57f0b19c6ccd5f36e7f2d1e0f0451 GIT binary patch literal 151047 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 Date: Sun, 12 Jul 2026 12:52:18 -0700 Subject: [PATCH 08/15] milestone2 submission --- milestones/milestone2.md | 20 ++++++------- planning/entity_relationship_diagram.md | 17 +++++------ planning/erd.png | Bin 151047 -> 0 bytes planning/wireframes.md | 36 ++++++++++++++++++------ 4 files changed, 47 insertions(+), 26 deletions(-) delete mode 100644 planning/erd.png diff --git a/milestones/milestone2.md b/milestones/milestone2.md index e3178cd81..0c1dc8fcf 100644 --- a/milestones/milestone2.md +++ b/milestones/milestone2.md @@ -6,24 +6,24 @@ This document should be completed and submitted during **Unit 6** of this course This unit, be sure to complete all tasks listed below. To complete a task, place an `x` between the brackets. -- [ ] In `planning/wireframes.md`: add wireframes for at least three pages in your web app. - - [ ] Include a list of pages in your app -- [ ] In `planning/entity_relationship_diagram.md`: add the entity relationship diagram you developed for your database. - - [ ] Your entity relationship diagram should include the tables in your database. -- [ ] Prepare your three-minute pitch presentation, to be presented during Unit 7 (the next unit). - - [ ] You do **not** need to submit any materials in advance of your pitch. -- [ ] In this document, complete all three questions in the **Reflection** section below +- [x] In `planning/wireframes.md`: add wireframes for at least three pages in your web app. + - [x] Include a list of pages in your app +- [x] In `planning/entity_relationship_diagram.md`: add the entity relationship diagram you developed for your database. + - [x] Your entity relationship diagram should include the tables in your database. +- [x] Prepare your three-minute pitch presentation, to be presented during Unit 7 (the next unit). + - [x] You do **not** need to submit any materials in advance of your pitch. +- [x] In this document, complete all three questions in the **Reflection** section below ## Reflection ### 1. What went well during this unit? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +Our team successesfuly collaborated and made decisions as a group. ### 2. What were some challenges your group faced in this unit? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +It can be difficult to find a time where everyone is available. ### 3. What additional support will you need in upcoming units as you continue to work on your final project? -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ your answer here] +Delegating the coding portion between all group members moving forward. diff --git a/planning/entity_relationship_diagram.md b/planning/entity_relationship_diagram.md index 12c25f62c..9787f52e9 100644 --- a/planning/entity_relationship_diagram.md +++ b/planning/entity_relationship_diagram.md @@ -4,14 +4,15 @@ Reference the Creating an Entity Relationship Diagram final project guide in the ## Create the List of Tables -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ List each table in your diagram] +1. users +2. artists +3. profile +4. follows +5. concerts +6. merch +7. concert_purchases +8. merch_purchases ## Add the Entity Relationship Diagram -[πŸ‘‰πŸΎπŸ‘‰πŸΎπŸ‘‰πŸΎ Include an image or images of the diagram below. You may also wish to use the following markdown syntax to outline each table, as per your preference.] - -| Column Name | Type | Description | -|-------------|------|-------------| -| id | integer | primary key | -| name | text | name of the shoe model | -| ... | ... | ... | +![sona erd](https://i.imgur.com/CiixV0q.png) diff --git a/planning/erd.png b/planning/erd.png deleted file mode 100644 index 59016be2a0e57f0b19c6ccd5f36e7f2d1e0f0451..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151047 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 Date: Sun, 12 Jul 2026 17:33:02 -0400 Subject: [PATCH 09/15] update ERD --- planning/entity_relationship_diagram.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/planning/entity_relationship_diagram.md b/planning/entity_relationship_diagram.md index 9787f52e9..3bdbc4964 100644 --- a/planning/entity_relationship_diagram.md +++ b/planning/entity_relationship_diagram.md @@ -6,13 +6,14 @@ Reference the Creating an Entity Relationship Diagram final project guide in the 1. users 2. artists -3. profile -4. follows -5. concerts -6. merch -7. concert_purchases -8. merch_purchases +3. admin +4. profile +5. follows +6. concerts +7. merch +8. albums +9. purchases ## Add the Entity Relationship Diagram -![sona erd](https://i.imgur.com/CiixV0q.png) +![sona erd](https://i.imgur.com/jX0Vh5t.png) From 539a1bfaa56a072f365f462028b293f0fcf42a80 Mon Sep 17 00:00:00 2001 From: Chau Cao Date: Sun, 12 Jul 2026 18:42:27 -0500 Subject: [PATCH 10/15] Format wireframe list for better readability --- planning/wireframes.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/planning/wireframes.md b/planning/wireframes.md index f0bb33e6a..a2fc8986c 100644 --- a/planning/wireframes.md +++ b/planning/wireframes.md @@ -7,12 +7,12 @@ Reference the Creating an Entity Relationship Diagram final project guide in the [] Login Page [] Edit User Page [] Edit Artist_User Page -⭐ Artist Directory -⭐ Artist Directory but with a side-view panel -⭐ Artist Detailed Page -⭐ Merch Shop Page -⭐ User's Profile Following Tab -⭐ User's Profile Order History Tab +- ⭐ Artist Directory +- ⭐ Artist Directory but with a side-view panel +- ⭐ Artist Detailed Page +- ⭐ Merch Shop Page +- ⭐ User's Profile Following Tab +- ⭐ User's Profile Order History Tab [] Checkout Cart [] Error Page From 43260c1da8ec1bce9d75a1fffac12338d8148434 Mon Sep 17 00:00:00 2001 From: arminerika Date: Sun, 12 Jul 2026 19:49:56 -0700 Subject: [PATCH 11/15] fix list format --- planning/wireframes.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/planning/wireframes.md b/planning/wireframes.md index a2fc8986c..5793d52f5 100644 --- a/planning/wireframes.md +++ b/planning/wireframes.md @@ -4,38 +4,38 @@ Reference the Creating an Entity Relationship Diagram final project guide in the ## List of Pages -[] Login Page -[] Edit User Page -[] Edit Artist_User Page -- ⭐ Artist Directory -- ⭐ Artist Directory but with a side-view panel -- ⭐ Artist Detailed Page -- ⭐ Merch Shop Page -- ⭐ User's Profile Following Tab -- ⭐ User's Profile Order History Tab -[] Checkout Cart -[] Error Page +- Login +- Edit User +- Edit Artist_User +- Artist Directory ⭐ +- Artist Directory Side-Panel ⭐ +- Artist Detailed ⭐ +- Merch Shop ⭐ +- User's Profile > Following ⭐ +- User's Profile > Order History ⭐ +- Checkout Cart +- Error Default ## Wireframe 1: Artist Directory ![artist directory](https://i.imgur.com/EeJvvYD.png) -## Wireframe 2: Artist Directory but with a side-view panel +## Wireframe 2: Artist Directory Side-Panel ![Artist Directory but with a side-view panel](https://i.imgur.com/ZjfTBHA.png) -## Wireframe 3: Artist Detailed Page +## Wireframe 3: Artist Detailed ![Artist Detailed Page](https://i.imgur.com/3iKhYRY.png) -## Wireframe 4: Merch Shop Page +## Wireframe 4: Merch Shop ![Merch Shop Page](https://i.imgur.com/tjC6Gx6.png) -## Wireframe 5: User's Profile Following Tab +## Wireframe 5: User's Profile > Following Tab ![User's Profile Following Tab](https://i.imgur.com/DCR2sVQ.png) -## Wireframe 6: User's Profile Order History Tab +## Wireframe 6: User's Profile > Order History Tab ![User's Profile Order History Tab](https://i.imgur.com/dDn9gBX.png) From f066df544f6e3dfd232c1a650ee815eda0e93393 Mon Sep 17 00:00:00 2001 From: arminerika Date: Fri, 17 Jul 2026 02:47:02 -0700 Subject: [PATCH 12/15] Issue #1: project setup, schema, and seed data --- sona-app/server/.env.example | 6 + sona-app/server/.gitignore | 2 + sona-app/server/config/database.js | 18 + sona-app/server/config/dotenv.js | 8 + sona-app/server/config/reset.js | 130 ++++ sona-app/server/package-lock.json | 1049 ++++++++++++++++++++++++++++ sona-app/server/package.json | 20 + sona-app/server/server.js | 15 + 8 files changed, 1248 insertions(+) create mode 100644 sona-app/server/.env.example create mode 100644 sona-app/server/.gitignore create mode 100644 sona-app/server/config/database.js create mode 100644 sona-app/server/config/dotenv.js create mode 100644 sona-app/server/config/reset.js create mode 100644 sona-app/server/package-lock.json create mode 100644 sona-app/server/package.json create mode 100644 sona-app/server/server.js diff --git a/sona-app/server/.env.example b/sona-app/server/.env.example new file mode 100644 index 000000000..f1ffd4d5e --- /dev/null +++ b/sona-app/server/.env.example @@ -0,0 +1,6 @@ +PGUSER=your_actual_user +PGHOST=your_actual_host.oregon-postgres.render.com +PGDATABASE=your_actual_db_name +PGPASSWORD=your_actual_password +PGPORT=5432 +PORT=3001 \ No newline at end of file diff --git a/sona-app/server/.gitignore b/sona-app/server/.gitignore new file mode 100644 index 000000000..3ec544c7a --- /dev/null +++ b/sona-app/server/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.env \ No newline at end of file diff --git a/sona-app/server/config/database.js b/sona-app/server/config/database.js new file mode 100644 index 000000000..0102ef160 --- /dev/null +++ b/sona-app/server/config/database.js @@ -0,0 +1,18 @@ +import pg from "pg"; +import "./dotenv.js"; + +const { Pool } = pg; + +const isLocalhost = + process.env.PGHOST === "localhost" || process.env.PGHOST === "127.0.0.1"; + +const pool = new Pool({ + user: process.env.PGUSER, + host: process.env.PGHOST, + database: process.env.PGDATABASE, + password: process.env.PGPASSWORD, + port: process.env.PGPORT, + ssl: isLocalhost ? false : { rejectUnauthorized: false }, +}); + +export default pool; diff --git a/sona-app/server/config/dotenv.js b/sona-app/server/config/dotenv.js new file mode 100644 index 000000000..b6932e1de --- /dev/null +++ b/sona-app/server/config/dotenv.js @@ -0,0 +1,8 @@ +import dotenv from "dotenv"; +import { fileURLToPath } from "url"; +import path from "path"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +dotenv.config({ path: path.join(__dirname, "..", ".env") }); diff --git a/sona-app/server/config/reset.js b/sona-app/server/config/reset.js new file mode 100644 index 000000000..0ad6e2cb9 --- /dev/null +++ b/sona-app/server/config/reset.js @@ -0,0 +1,130 @@ +import pool from "./database.js"; + +const dropTables = ` + DROP TABLE IF EXISTS posts; + DROP TABLE IF EXISTS follows; + DROP TABLE IF EXISTS admin; + DROP TABLE IF EXISTS profile; + DROP TABLE IF EXISTS artists; + DROP TABLE IF EXISTS users; +`; + +const createTables = ` + CREATE TABLE users ( + id SERIAL PRIMARY KEY, + username VARCHAR(50) UNIQUE NOT NULL, + role VARCHAR(20) NOT NULL DEFAULT 'fan', + created_at TIMESTAMP DEFAULT NOW() + ); + + CREATE TABLE artists ( + id SERIAL PRIMARY KEY, + name VARCHAR(100) NOT NULL, + genre VARCHAR(50), + photo VARCHAR(255), + created_at TIMESTAMP DEFAULT NOW() + ); + + -- one-to-one: artists <-> profile + CREATE TABLE profile ( + artist_id INTEGER UNIQUE REFERENCES artists(id) ON DELETE CASCADE, + description TEXT, + instagram VARCHAR(100), + twitter VARCHAR(100), + facebook VARCHAR(100), + tiktok VARCHAR(100), + spotify VARCHAR(255) + ); + + -- one-to-one: users <-> artists, via admin + CREATE TABLE admin ( + id SERIAL PRIMARY KEY, + user_id INTEGER UNIQUE REFERENCES users(id) ON DELETE CASCADE, + artist_id INTEGER UNIQUE REFERENCES artists(id) ON DELETE CASCADE + ); + + -- many-to-many join table: users <-> artists + CREATE TABLE follows ( + user_id INTEGER REFERENCES users(id) ON DELETE CASCADE, + artist_id INTEGER REFERENCES artists(id) ON DELETE CASCADE, + created_at TIMESTAMP DEFAULT NOW(), + PRIMARY KEY (user_id, artist_id) + ); + + CREATE TABLE posts ( + id SERIAL PRIMARY KEY, + artist_id INTEGER REFERENCES artists(id) ON DELETE CASCADE, + content TEXT NOT NULL, + created_at TIMESTAMP DEFAULT NOW() + ); +`; + +async function seed() { + const client = await pool.connect(); + try { + console.log("Dropping existing tables..."); + await client.query(dropTables); + + console.log("Creating tables..."); + await client.query(createTables); + + console.log("Seeding users..."); + const users = await client.query(` + INSERT INTO users (username, role) VALUES + ('testfan', 'fan'), + ('testadmin', 'artist_admin') + RETURNING id, username, role; + `); + const [fan, testAdmin] = users.rows; + + console.log("Seeding artists..."); + const artists = await client.query(` + INSERT INTO artists (name, genre, photo) VALUES + ('Test Artist 1', 'Pop', 'https://picsum.photos/seed/artist1/400/400'), + ('Test Artist 2', 'Rock', 'https://picsum.photos/seed/artist2/400/400'), + ('Test Artist 3', 'Hip-Hop', 'https://picsum.photos/seed/artist3/400/400') + RETURNING id, name; + `); + const [artist1, artist2, artist3] = artists.rows; + + console.log("Seeding profiles..."); + await client.query( + `INSERT INTO profile (artist_id, description, instagram, twitter, spotify) VALUES + ($1, 'Placeholder bio for Test Artist 1.', '@testartist1', '@testartist1', 'https://open.spotify.com/artist/example1'), + ($2, 'Placeholder bio for Test Artist 2.', '@testartist2', '@testartist2', 'https://open.spotify.com/artist/example2'), + ($3, 'Placeholder bio for Test Artist 3.', '@testartist3', '@testartist3', 'https://open.spotify.com/artist/example3') + `, + [artist1.id, artist2.id, artist3.id], + ); + + console.log("Seeding admin link..."); + await client.query( + `INSERT INTO admin (user_id, artist_id) VALUES ($1, $2)`, + [testAdmin.id, artist1.id], + ); + + console.log("Seeding follows..."); + await client.query( + `INSERT INTO follows (user_id, artist_id) VALUES ($1, $2), ($1, $3)`, + [fan.id, artist1.id, artist3.id], + ); + + console.log("Seeding posts..."); + await client.query( + `INSERT INTO posts (artist_id, content) VALUES + ($1, 'Placeholder post from Test Artist 1.'), + ($2, 'Placeholder post from Test Artist 2.') + `, + [artist1.id, artist2.id], + ); + + console.log("βœ… Database reset and seeded successfully."); + } catch (err) { + console.error("Seed error:", err); + } finally { + client.release(); + pool.end(); + } +} + +seed(); diff --git a/sona-app/server/package-lock.json b/sona-app/server/package-lock.json new file mode 100644 index 000000000..40c6334de --- /dev/null +++ b/sona-app/server/package-lock.json @@ -0,0 +1,1049 @@ +{ + "name": "server", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "server", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "cors": "^2.8.6", + "dotenv": "^17.4.2", + "express": "^5.2.1", + "pg": "^8.22.0" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/body-parser/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/pg": { + "version": "8.22.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.22.0.tgz", + "integrity": "sha512-8wih1vVIBMxoUM2oB4soJsD9tDnDpLv4OXBJ+EJzFsvycD+lfyIreC2gGHq78f8jbLLt+bvlPTFdFZfJkOuzAA==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.14.0", + "pg-pool": "^3.14.0", + "pg-protocol": "^1.15.0", + "pg-types": "2.2.0", + "pgpass": "1.0.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.4.0" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.4.0.tgz", + "integrity": "sha512-Vo7z/6rrQYxpNRylp4Tlob2elzbh+N/MOQbxFVWCxS7oEx6jF53GTJFxK2WWpKuBRkmiin4Mt+xofFDjx09R0A==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.14.0.tgz", + "integrity": "sha512-XwWDGcLRGCXAR8F/AM5bG7Q+A3Wm2s6QeEjlOKZLlH3UYcguiqCWKyWXVag5TLTIjR7oOJUY8kcADaZgWPyLeg==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.14.0.tgz", + "integrity": "sha512-gKtPkFdQPU3DksooVLi9LsjZxrsBUZIpa+7aVx+LV5pNh0KzP4Zleud2po+ConrxbuXGBJ6Hfer6hdgpIBpBaw==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.15.0.tgz", + "integrity": "sha512-cq9sECI5s0+uPUXjbz8ioyPJni6RzsRib0US67i5IoTZKw8fNeYlVE7u8F4dG7vEJJtc5wdD1K189lCCUwqWTQ==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.1.tgz", + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "license": "MIT", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + } + } +} diff --git a/sona-app/server/package.json b/sona-app/server/package.json new file mode 100644 index 000000000..e74677373 --- /dev/null +++ b/sona-app/server/package.json @@ -0,0 +1,20 @@ +{ + "name": "server", + "version": "1.0.0", + "description": "", + "main": "server.js", + "type": "module", + "scripts": { + "dev": "node --watch server.js", + "reset-db": "node config/reset.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "cors": "^2.8.6", + "dotenv": "^17.4.2", + "express": "^5.2.1", + "pg": "^8.22.0" + } +} diff --git a/sona-app/server/server.js b/sona-app/server/server.js new file mode 100644 index 000000000..c0583ca11 --- /dev/null +++ b/sona-app/server/server.js @@ -0,0 +1,15 @@ +import express from "express"; +import cors from "cors"; +import "./config/dotenv.js"; + +const app = express(); +const PORT = process.env.PORT || 3001; + +app.use(cors()); +app.use(express.json()); + +app.get("/api/health", (req, res) => res.json({ status: "ok" })); + +app.listen(PORT, () => { + console.log(`Sona server running on http://localhost:${PORT}`); +}); From 9b62a52a2111c797d08f14643734713137f6ab67 Mon Sep 17 00:00:00 2001 From: Dev Goswami Date: Sat, 18 Jul 2026 13:17:46 -0400 Subject: [PATCH 13/15] Issue #2: Artist CRUD API, Directory, and Detail page --- sona-app/client/.gitignore | 24 + sona-app/client/.oxlintrc.json | 8 + sona-app/client/README.md | 16 + sona-app/client/index.html | 13 + sona-app/client/package-lock.json | 1444 +++++++++++++++++ sona-app/client/package.json | 24 + sona-app/client/public/favicon.svg | 1 + sona-app/client/public/icons.svg | 24 + sona-app/client/src/App.css | 184 +++ sona-app/client/src/App.jsx | 17 + sona-app/client/src/api.js | 31 + sona-app/client/src/assets/hero.png | Bin 0 -> 13057 bytes sona-app/client/src/assets/react.svg | 1 + sona-app/client/src/assets/vite.svg | 1 + sona-app/client/src/components/ArtistCard.jsx | 20 + sona-app/client/src/currentUser.js | 3 + sona-app/client/src/index.css | 141 ++ sona-app/client/src/main.jsx | 20 + sona-app/client/src/pages/ArtistDetail.jsx | 144 ++ sona-app/client/src/pages/Directory.jsx | 52 + sona-app/client/vite.config.js | 7 + sona-app/server/routes/artists.js | 176 ++ sona-app/server/routes/users.js | 23 + sona-app/server/server.js | 4 + 24 files changed, 2378 insertions(+) create mode 100644 sona-app/client/.gitignore create mode 100644 sona-app/client/.oxlintrc.json create mode 100644 sona-app/client/README.md create mode 100644 sona-app/client/index.html create mode 100644 sona-app/client/package-lock.json create mode 100644 sona-app/client/package.json create mode 100644 sona-app/client/public/favicon.svg create mode 100644 sona-app/client/public/icons.svg create mode 100644 sona-app/client/src/App.css create mode 100644 sona-app/client/src/App.jsx create mode 100644 sona-app/client/src/api.js create mode 100644 sona-app/client/src/assets/hero.png create mode 100644 sona-app/client/src/assets/react.svg create mode 100644 sona-app/client/src/assets/vite.svg create mode 100644 sona-app/client/src/components/ArtistCard.jsx create mode 100644 sona-app/client/src/currentUser.js create mode 100644 sona-app/client/src/index.css create mode 100644 sona-app/client/src/main.jsx create mode 100644 sona-app/client/src/pages/ArtistDetail.jsx create mode 100644 sona-app/client/src/pages/Directory.jsx create mode 100644 sona-app/client/vite.config.js create mode 100644 sona-app/server/routes/artists.js create mode 100644 sona-app/server/routes/users.js diff --git a/sona-app/client/.gitignore b/sona-app/client/.gitignore new file mode 100644 index 000000000..a547bf36d --- /dev/null +++ b/sona-app/client/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/sona-app/client/.oxlintrc.json b/sona-app/client/.oxlintrc.json new file mode 100644 index 000000000..125507823 --- /dev/null +++ b/sona-app/client/.oxlintrc.json @@ -0,0 +1,8 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["react", "oxc"], + "rules": { + "react/rules-of-hooks": "error", + "react/only-export-components": ["warn", { "allowConstantExport": true }] + } +} diff --git a/sona-app/client/README.md b/sona-app/client/README.md new file mode 100644 index 000000000..d937833bd --- /dev/null +++ b/sona-app/client/README.md @@ -0,0 +1,16 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some Oxlint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Oxc](https://oxc.rs) +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) + +## React Compiler + +The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation). + +## Expanding the Oxlint configuration + +If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and Oxlint's TypeScript related rules in your project. diff --git a/sona-app/client/index.html b/sona-app/client/index.html new file mode 100644 index 000000000..6e56e6e40 --- /dev/null +++ b/sona-app/client/index.html @@ -0,0 +1,13 @@ + + + + + + + client + + +
+ + + diff --git a/sona-app/client/package-lock.json b/sona-app/client/package-lock.json new file mode 100644 index 000000000..1ab8b1396 --- /dev/null +++ b/sona-app/client/package-lock.json @@ -0,0 +1,1444 @@ +{ + "name": "client", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "client", + "version": "0.0.0", + "dependencies": { + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-router-dom": "^7.18.1" + }, + "devDependencies": { + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.3", + "oxlint": "^1.71.0", + "vite": "^8.1.1" + } + }, + "node_modules/@emnapi/core": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz", + "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", + "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz", + "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", + "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.139.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.139.0.tgz", + "integrity": "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.74.0.tgz", + "integrity": "sha512-+gHd12muVI9ZLBaWLPkHt3Fj7jihFjgQ1MGtBaRL8vWrWrI0P7dLUty/cHrHS0oqPYIRgQUJsPu2CExQuMcwNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.74.0.tgz", + "integrity": "sha512-xjKdoMB+H+RCOByv/7l7nfIGW9mlOisqYdcyC75UqYuQecLpReAeEYUf2CNeDEI3KtmUgxpRw/+c63y4AeF/Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.74.0.tgz", + "integrity": "sha512-iUK7wvc6sejMKsC+Pt67mntoF5weFcyEunhZfLJceU6gL419mexz5wBkSx/EnkFBExMLNtOi9fnDSc5xfK0IzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.74.0.tgz", + "integrity": "sha512-ggKc/tn5SJ1u2yG2izC6VKODfYKV8MQ2AicJlNzOjuyrC29udvOef6/JzK2r32xqCnBDLFouR1VCkjzEI0/N9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.74.0.tgz", + "integrity": "sha512-u++dH/43jy9hTLbneaWlS0gla/Bp1JdwJ2zgevCl8nDFUh6qRCGMxcL0f0lb7By3A9p/LfFr+7cG4HU1hG856g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.74.0.tgz", + "integrity": "sha512-Sj1zmtFDVTPeIbIz4ZfcXAbFHqCmKCXdCUlAJzvTF7I20NTH1RDpoF2PhkqNODutJzVhJYmm3oz0GwgY+tvE2g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.74.0.tgz", + "integrity": "sha512-//PKyQb/tQXcHArx2f7z+oVI/eMS2Jpv+edNuAtOrgIhWdGcpHxogveAxzmF2rpH1AIHp4Hq04RF/rgJdiICnQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.74.0.tgz", + "integrity": "sha512-/k1Me+aX2tjuH10K62mLS0y8cLkJBHX6Ce0xPK+eWeel4bSdEGZ8dv4+hYMzg0GrSmjwy4yAYsDPeEeKBft/2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.74.0.tgz", + "integrity": "sha512-3tFSjBxc5D8/zvjEuLvOqcA8ZXKD0+6NuaVO/edeamNc49MoAsbfaC9s1UiwODwgF6slGaF8yJA2TPkukd77tg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.74.0.tgz", + "integrity": "sha512-9QggtPkSPXOCTu8Szis7auOK/sC7KdQaN+/TujP7YVVhzCAOhgdRfgv8uEz0r2tk5xdgus5rLYUrCDoZNtiRUw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.74.0.tgz", + "integrity": "sha512-VM5VPUJ4DJIWiK+AZn8FScUqMr6OFrCAYybMYjEEi7W13ParI64MByiXTkKMqZpBmvQ9zxl9Ebq2VUOiZRJYUg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.74.0.tgz", + "integrity": "sha512-SaDY1gh9rOA592J54g+gu5hkOFFQBZsMmIYHs+NRHG+Uq0OxtuuCXMWQ3vu1830Eugv5uMXyjG+bv2Z9y4IXjw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.74.0.tgz", + "integrity": "sha512-ZATQeHZCyr6MbDveg0obD5sxLHFOghtOdC5jwVwYlvFWqtFOxctgFEG6Ef/64hYvZrWyhyCckB10AelqLopeDA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.74.0.tgz", + "integrity": "sha512-+aIvJyrdeD7LwCQ2WYLMUWNmnbeDRSPb40aBYtPjD9+PTqUwgJnk+HK5yLfSMeqXrMrDhE9uTmtt2y50tvjhHw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.74.0.tgz", + "integrity": "sha512-XyktaR8lhK2qWiCK0Tk8oYD+/cgn+oHA6ddRnxSSXUKkkojkV78CmShZUxQF+yrBFs0SuW+JBOPG6hecyc/iZg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.74.0.tgz", + "integrity": "sha512-mzbjrPl4neaVUiJ1fUiEUxTGaSZBoiKtaoB6jmIpz9S+VOA2vDYmJpihQ82w6178V5jxziclTg8Cgj5yF6tTDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.74.0.tgz", + "integrity": "sha512-vUAe9okpS2Oa5+lX67lqHMuNUvfkleRKwrUDJ/WJBsgmddvZ1mrsh2HVmuFDRzqFELhaJhFaCNOuR6a7L3rtIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.74.0.tgz", + "integrity": "sha512-yyXXJyYYSXL4I8K8jAWjJs+J3fa9gH2JmEbo4f5adm+1tNC9itseicBNuwK7BDHvqQ5J534s+yDULu89vYL2ZQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.74.0.tgz", + "integrity": "sha512-VTC9IYTIMrVUk/i6Ms1ohzzDKZFkWn0KU2OBbPBzgmVZ2V30165T/zK4LztTr0Xgp9fZ1qQZ1rsZAu/rEmySlA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.5.tgz", + "integrity": "sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.5.tgz", + "integrity": "sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.5.tgz", + "integrity": "sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.5.tgz", + "integrity": "sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.5.tgz", + "integrity": "sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.5.tgz", + "integrity": "sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.5.tgz", + "integrity": "sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.5.tgz", + "integrity": "sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.5.tgz", + "integrity": "sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.5.tgz", + "integrity": "sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.5.tgz", + "integrity": "sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.5.tgz", + "integrity": "sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.5.tgz", + "integrity": "sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.11.1", + "@emnapi/runtime": "1.11.1", + "@napi-rs/wasm-runtime": "^1.1.6" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.5.tgz", + "integrity": "sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.5.tgz", + "integrity": "sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/react": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.3.tgz", + "integrity": "sha512-vmFvco5/QuC2f9Oj+wTk0+9XeDFkHxSamwZKYc7MxYwKICfvUvlMhqKI0VuICPltGqh1neqBKDvO4kes1ya8vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/nanoid": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/oxlint": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.74.0.tgz", + "integrity": "sha512-odGl2s2x5IOJoj3A0v1k0PGBXVFBZeZ2+AK/+K2MJur7Ghi3bkyX5NuLUWHKqa4js1wjep3hJeuTQJOlr+4+dA==", + "dev": true, + "license": "MIT", + "bin": { + "oxlint": "bin/oxlint" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/binding-android-arm-eabi": "1.74.0", + "@oxlint/binding-android-arm64": "1.74.0", + "@oxlint/binding-darwin-arm64": "1.74.0", + "@oxlint/binding-darwin-x64": "1.74.0", + "@oxlint/binding-freebsd-x64": "1.74.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.74.0", + "@oxlint/binding-linux-arm-musleabihf": "1.74.0", + "@oxlint/binding-linux-arm64-gnu": "1.74.0", + "@oxlint/binding-linux-arm64-musl": "1.74.0", + "@oxlint/binding-linux-ppc64-gnu": "1.74.0", + "@oxlint/binding-linux-riscv64-gnu": "1.74.0", + "@oxlint/binding-linux-riscv64-musl": "1.74.0", + "@oxlint/binding-linux-s390x-gnu": "1.74.0", + "@oxlint/binding-linux-x64-gnu": "1.74.0", + "@oxlint/binding-linux-x64-musl": "1.74.0", + "@oxlint/binding-openharmony-arm64": "1.74.0", + "@oxlint/binding-win32-arm64-msvc": "1.74.0", + "@oxlint/binding-win32-ia32-msvc": "1.74.0", + "@oxlint/binding-win32-x64-msvc": "1.74.0" + }, + "peerDependencies": { + "oxlint-tsgolint": ">=0.24.0", + "vite-plus": "*" + }, + "peerDependenciesMeta": { + "oxlint-tsgolint": { + "optional": true + }, + "vite-plus": { + "optional": true + } + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", + "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.7" + } + }, + "node_modules/react-router": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.18.1.tgz", + "integrity": "sha512-GDLgg3i3uM0aeJO3Fm+TCS+sDQ7gu12T6x0qdTEzcwqEfleci7JwugVNIF3U//0FWKnJT7ptG+20B2jfDqnZAg==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.18.1.tgz", + "integrity": "sha512-KaZh+X/6UtEp28x51AUYZDMg9NGoz2ja3dNHa+ta/tk40vCzKhQ/RypCWBMLbmDr6//E24Vv5uPsrqXFozdkAg==", + "license": "MIT", + "dependencies": { + "react-router": "7.18.1" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/rolldown": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.5.tgz", + "integrity": "sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.139.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.1.5", + "@rolldown/binding-darwin-arm64": "1.1.5", + "@rolldown/binding-darwin-x64": "1.1.5", + "@rolldown/binding-freebsd-x64": "1.1.5", + "@rolldown/binding-linux-arm-gnueabihf": "1.1.5", + "@rolldown/binding-linux-arm64-gnu": "1.1.5", + "@rolldown/binding-linux-arm64-musl": "1.1.5", + "@rolldown/binding-linux-ppc64-gnu": "1.1.5", + "@rolldown/binding-linux-s390x-gnu": "1.1.5", + "@rolldown/binding-linux-x64-gnu": "1.1.5", + "@rolldown/binding-linux-x64-musl": "1.1.5", + "@rolldown/binding-openharmony-arm64": "1.1.5", + "@rolldown/binding-wasm32-wasi": "1.1.5", + "@rolldown/binding-win32-arm64-msvc": "1.1.5", + "@rolldown/binding-win32-x64-msvc": "1.1.5" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/vite": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.5.tgz", + "integrity": "sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.17", + "rolldown": "~1.1.5", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.3.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/sona-app/client/package.json b/sona-app/client/package.json new file mode 100644 index 000000000..feeb18765 --- /dev/null +++ b/sona-app/client/package.json @@ -0,0 +1,24 @@ +{ + "name": "client", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "oxlint", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-router-dom": "^7.18.1" + }, + "devDependencies": { + "@types/react": "^19.2.17", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^6.0.3", + "oxlint": "^1.71.0", + "vite": "^8.1.1" + } +} diff --git a/sona-app/client/public/favicon.svg b/sona-app/client/public/favicon.svg new file mode 100644 index 000000000..6893eb132 --- /dev/null +++ b/sona-app/client/public/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sona-app/client/public/icons.svg b/sona-app/client/public/icons.svg new file mode 100644 index 000000000..e9522193d --- /dev/null +++ b/sona-app/client/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sona-app/client/src/App.css b/sona-app/client/src/App.css new file mode 100644 index 000000000..f90339d8f --- /dev/null +++ b/sona-app/client/src/App.css @@ -0,0 +1,184 @@ +.counter { + font-size: 16px; + padding: 5px 10px; + border-radius: 5px; + color: var(--accent); + background: var(--accent-bg); + border: 2px solid transparent; + transition: border-color 0.3s; + margin-bottom: 24px; + + &:hover { + border-color: var(--accent-border); + } + &:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; + } +} + +.hero { + position: relative; + + .base, + .framework, + .vite { + inset-inline: 0; + margin: 0 auto; + } + + .base { + width: 170px; + position: relative; + z-index: 0; + } + + .framework, + .vite { + position: absolute; + } + + .framework { + z-index: 1; + top: 34px; + height: 28px; + transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg) + scale(1.4); + } + + .vite { + z-index: 0; + top: 107px; + height: 26px; + width: auto; + transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg) + scale(0.8); + } +} + +#center { + display: flex; + flex-direction: column; + gap: 25px; + place-content: center; + place-items: center; + flex-grow: 1; + + @media (max-width: 1024px) { + padding: 32px 20px 24px; + gap: 18px; + } +} + +#next-steps { + display: flex; + border-top: 1px solid var(--border); + text-align: left; + + & > div { + flex: 1 1 0; + padding: 32px; + @media (max-width: 1024px) { + padding: 24px 20px; + } + } + + .icon { + margin-bottom: 16px; + width: 22px; + height: 22px; + } + + @media (max-width: 1024px) { + flex-direction: column; + text-align: center; + } +} + +#docs { + border-right: 1px solid var(--border); + + @media (max-width: 1024px) { + border-right: none; + border-bottom: 1px solid var(--border); + } +} + +#next-steps ul { + list-style: none; + padding: 0; + display: flex; + gap: 8px; + margin: 32px 0 0; + + .logo { + height: 18px; + } + + a { + color: var(--text-h); + font-size: 16px; + border-radius: 6px; + background: var(--social-bg); + display: flex; + padding: 6px 12px; + align-items: center; + gap: 8px; + text-decoration: none; + transition: box-shadow 0.3s; + + &:hover { + box-shadow: var(--shadow); + } + .button-icon { + height: 18px; + width: 18px; + } + } + + @media (max-width: 1024px) { + margin-top: 20px; + flex-wrap: wrap; + justify-content: center; + + li { + flex: 1 1 calc(50% - 8px); + } + + a { + width: 100%; + justify-content: center; + box-sizing: border-box; + } + } +} + +#spacer { + height: 88px; + border-top: 1px solid var(--border); + @media (max-width: 1024px) { + height: 48px; + } +} + +.ticks { + position: relative; + width: 100%; + + &::before, + &::after { + content: ''; + position: absolute; + top: -4.5px; + border: 5px solid transparent; + } + + &::before { + left: 0; + border-left-color: var(--border); + } + &::after { + right: 0; + border-right-color: var(--border); + } +} diff --git a/sona-app/client/src/App.jsx b/sona-app/client/src/App.jsx new file mode 100644 index 000000000..94cce4e29 --- /dev/null +++ b/sona-app/client/src/App.jsx @@ -0,0 +1,17 @@ +import { Link, Outlet } from "react-router-dom"; + +function App() { + return ( + <> + +
+ +
+ + ); +} + +export default App; diff --git a/sona-app/client/src/api.js b/sona-app/client/src/api.js new file mode 100644 index 000000000..e75257e91 --- /dev/null +++ b/sona-app/client/src/api.js @@ -0,0 +1,31 @@ +const BASE = import.meta.env.VITE_API_URL || "http://localhost:3001"; + +async function request(path, options) { + const res = await fetch(`${BASE}/api${path}`, { + headers: { "Content-Type": "application/json" }, + ...options, + }); + if (!res.ok) throw new Error(`Request failed: ${res.status}`); + return res.status === 204 ? null : res.json(); +} + +export const getArtists = ({ q = "", genre = "" } = {}) => { + const params = new URLSearchParams(); + if (q) params.set("q", q); + if (genre) params.set("genre", genre); + const qs = params.toString(); + return request(`/artists${qs ? `?${qs}` : ""}`); +}; + +export const getArtist = (id) => request(`/artists/${id}`); + +export const updateArtist = (id, data) => + request(`/artists/${id}`, { method: "PATCH", body: JSON.stringify(data) }); + +export const deleteArtist = (id, userId) => + request(`/artists/${id}`, { + method: "DELETE", + body: JSON.stringify({ user_id: userId }), + }); + +export const getAdminOf = (userId) => request(`/users/${userId}/admin-of`); diff --git a/sona-app/client/src/assets/hero.png b/sona-app/client/src/assets/hero.png new file mode 100644 index 0000000000000000000000000000000000000000..02251f4b956c55af2d76fd0788124d7eee2b45eb GIT binary patch literal 13057 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 P00000NkvXXu0mjft=yBf literal 0 HcmV?d00001 diff --git a/sona-app/client/src/assets/react.svg b/sona-app/client/src/assets/react.svg new file mode 100644 index 000000000..6c87de9bb --- /dev/null +++ b/sona-app/client/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/sona-app/client/src/assets/vite.svg b/sona-app/client/src/assets/vite.svg new file mode 100644 index 000000000..5101b674d --- /dev/null +++ b/sona-app/client/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/sona-app/client/src/components/ArtistCard.jsx b/sona-app/client/src/components/ArtistCard.jsx new file mode 100644 index 000000000..1ceb4f946 --- /dev/null +++ b/sona-app/client/src/components/ArtistCard.jsx @@ -0,0 +1,20 @@ +import { Link } from "react-router-dom"; + +export default function ArtistCard({ artist }) { + return ( +
+ + {artist.name} + + +
{artist.name}
+ {artist.genre && {artist.genre}} + +
+ +
+
+ ); +} diff --git a/sona-app/client/src/currentUser.js b/sona-app/client/src/currentUser.js new file mode 100644 index 000000000..675fd19f3 --- /dev/null +++ b/sona-app/client/src/currentUser.js @@ -0,0 +1,3 @@ +const currentUser = { id: 1 }; + +export default currentUser; diff --git a/sona-app/client/src/index.css b/sona-app/client/src/index.css new file mode 100644 index 000000000..c25368364 --- /dev/null +++ b/sona-app/client/src/index.css @@ -0,0 +1,141 @@ +:root { + --text: #444; + --text-h: #111; + --bg: #fff; + --border: #d9d9d9; + --bar: #2b2b2b; + --pill: #e9e9ec; + --muted: #f0f0f0; + + font: 16px/1.45 system-ui, "Segoe UI", Roboto, sans-serif; + color: var(--text); + background: var(--bg); + -webkit-font-smoothing: antialiased; +} + +* { box-sizing: border-box; } +body { margin: 0; } +h1, h2, h3 { color: var(--text-h); } +a { color: inherit; text-decoration: none; } + +/* Nav */ +.nav { + display: flex; + align-items: center; + justify-content: space-between; + background: var(--bar); + color: #fff; + padding: 14px 32px; +} +.nav .brand { font-size: 22px; font-weight: 700; letter-spacing: 0.5px; } +.nav-right { display: flex; align-items: center; gap: 24px; } +.cart { font-size: 20px; opacity: 0.7; cursor: default; } + +.container { max-width: 1180px; margin: 0 auto; padding: 24px 32px; } +h1 { font-size: 40px; margin: 8px 0 20px; } + +/* Directory filters */ +.filters { display: flex; gap: 16px; margin-bottom: 28px; } +.filters input, .filters select { + padding: 12px 14px; + border: 1px solid var(--border); + border-radius: 6px; + background: var(--bg); + color: var(--text-h); + font-size: 15px; +} +.filters input { flex: 1; } +.filters select { min-width: 200px; } + +/* Grid + card */ +.grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); + gap: 24px; +} +.card { border: 1px solid var(--border); border-radius: 6px; overflow: hidden; padding-bottom: 14px; } +.card-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; background: var(--muted); } + +.name-bar { + display: inline-block; + background: var(--bar); + color: #fff; + font-size: 14px; + padding: 4px 12px; + margin: 14px 14px 8px; +} +.genre-tag { + display: inline-block; + background: var(--pill); + color: #333; + font-size: 12px; + padding: 3px 10px; + border-radius: 12px; + margin: 0 14px; +} + +.card-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 10px; + margin: 14px 14px 0; +} + +/* Buttons */ +.btn, .btn-outline, .btn-danger, +.admin-controls button, .edit-form button { + padding: 8px 18px; + border-radius: 4px; + font-size: 14px; + cursor: pointer; + border: 1px solid var(--bar); +} +.btn { background: var(--bar); color: #fff; } +.btn-outline { background: transparent; color: var(--text-h); } +.btn-outline:disabled { opacity: 0.55; cursor: not-allowed; } +.btn-danger { background: transparent; color: #c0392b; border-color: #c0392b; } + +/* Detail page */ +.detail-hero { background: var(--muted); border-radius: 6px; padding: 24px; text-align: center; } +.detail-hero-img { max-height: 320px; max-width: 100%; object-fit: contain; border-radius: 6px; } + +.detail-titlebar { + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid var(--border); + padding: 16px 0; + margin-bottom: 24px; +} +.detail-titlebar h1 { margin: 0 0 6px; } + +.admin-controls { display: flex; gap: 10px; margin: 0 0 20px; } + +.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; } +@media (max-width: 800px) { .detail-grid { grid-template-columns: 1fr; } } +.detail-about h2, .detail-side h2 { margin-top: 0; } + +.social-row { display: flex; gap: 12px; margin: 18px 0; } +.social { + width: 34px; height: 34px; + display: flex; align-items: center; justify-content: center; + background: var(--pill); border-radius: 50%; + font-size: 12px; font-weight: 600; color: #333; +} +.spotify-embed { + display: block; + background: var(--muted); + border-radius: 6px; + padding: 28px 16px; + color: var(--text); + font-size: 14px; +} +.detail-side { border: 1px solid var(--border); border-radius: 6px; padding: 20px; } + +.merch-strip { margin-top: 40px; background: var(--muted); border-radius: 6px; padding: 20px; } +.merch-head { display: flex; align-items: center; justify-content: space-between; } +.placeholder { color: #999; font-style: italic; } + +.edit-form { display: flex; flex-direction: column; gap: 10px; max-width: 460px; margin-bottom: 20px; } +.edit-form input, .edit-form textarea { padding: 10px; border: 1px solid var(--border); border-radius: 6px; font: inherit; } diff --git a/sona-app/client/src/main.jsx b/sona-app/client/src/main.jsx new file mode 100644 index 000000000..09007dcb8 --- /dev/null +++ b/sona-app/client/src/main.jsx @@ -0,0 +1,20 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +import { BrowserRouter, Routes, Route } from "react-router-dom"; +import App from "./App.jsx"; +import Directory from "./pages/Directory.jsx"; +import ArtistDetail from "./pages/ArtistDetail.jsx"; +import "./index.css"; + +createRoot(document.getElementById("root")).render( + + + + }> + } /> + } /> + + + + , +); diff --git a/sona-app/client/src/pages/ArtistDetail.jsx b/sona-app/client/src/pages/ArtistDetail.jsx new file mode 100644 index 000000000..a000bc094 --- /dev/null +++ b/sona-app/client/src/pages/ArtistDetail.jsx @@ -0,0 +1,144 @@ +import { useEffect, useState } from "react"; +import { useParams, useNavigate } from "react-router-dom"; +import currentUser from "../currentUser.js"; +import { getArtist, getAdminOf, updateArtist, deleteArtist } from "../api.js"; + +function Social({ label, value }) { + if (!value) return null; + return {label}; +} + +const EDITABLE = [ + { key: "name", label: "Name" }, + { key: "genre", label: "Genre" }, + { key: "description", label: "Bio", textarea: true }, + { key: "instagram", label: "Instagram" }, + { key: "twitter", label: "Twitter" }, + { key: "facebook", label: "Facebook" }, + { key: "tiktok", label: "TikTok" }, + { key: "spotify", label: "Spotify URL" }, +]; + +export default function ArtistDetail() { + const { id } = useParams(); + const navigate = useNavigate(); + const [artist, setArtist] = useState(null); + const [isAdmin, setIsAdmin] = useState(false); + const [editing, setEditing] = useState(false); + const [form, setForm] = useState({}); + + useEffect(() => { + getArtist(id).then((data) => { + setArtist(data); + const seeded = {}; + for (const { key } of EDITABLE) seeded[key] = data[key] ?? ""; + setForm(seeded); + }); + getAdminOf(currentUser.id).then((administered) => { + setIsAdmin(administered?.id === Number(id)); + }); + }, [id]); + + if (!artist) return

Loading...

; + + async function handleSave(event) { + event.preventDefault(); + const updated = await updateArtist(id, { ...form, user_id: currentUser.id }); + setArtist((prev) => ({ ...prev, ...updated, ...form })); + setEditing(false); + } + + async function handleDelete() { + if (!confirm(`Delete ${artist.name}?`)) return; + await deleteArtist(id, currentUser.id); + navigate("/"); + } + + return ( +
+
+ {artist.name} +
+ +
+
+

{artist.name}

+ {artist.genre && {artist.genre}} +
+ + {isAdmin && !editing && ( +
+ + +
+ )} +
+ + {isAdmin && editing && ( +
+ {EDITABLE.map(({ key, label, textarea }) => + textarea ? ( +