Compare commits

..

142 Commits

Author SHA1 Message Date
Arik Chakma
7e83371e97 fix: remove varify 2025-09-05 03:54:28 +06:00
Arik Chakma
cc2e75c812 chore: remove varify 2025-09-05 00:06:41 +06:00
V Sridhar Subramaniam
24eace0f73 Add pandas library content (#9113)
* Added a description and couple of links

* Update src/data/roadmaps/machine-learning/content/pandas@PnOoShqB3z4LuUvp0Gh2e.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-09-04 10:31:54 +01:00
Favor
3c06b122e6 fix: course banner overlays the table of contents (#9097)
* fix: prevent sticky elements from overlapping with course announcement

- Changed sticky positioning from top-0 to top-[36px] in GuideContent.tsx
- Changed sticky positioning from top-0 to top-[36px] in TableOfContent.tsx
- This accounts for the maximum height of the CourseAnnouncement component
- Fixes visual overlap for both 'Other Guides' and 'In this article' sections

* fix: stop "In this article" title from overlapping with CourseAnnouncement component

* Add comment for announcement hide duration

Added a clarifying comment indicating that the announcement is hidden for 14 days when dismissed.

* revert unrelated files
2025-09-04 10:29:20 +01:00
Arik Chakma
2fdb647413 fix: duplicate guides (#9110) 2025-09-03 13:06:42 +01:00
Obscure octopus
3ca9f81298 Update learning resource (#9091)
Included a updated version of git & github crash course as earlier version was 8 years old
2025-09-03 12:52:14 +01:00
shreyazh
56c4630e0d Fix typo (#9100)
Corrected spelling from WHow to How
2025-09-03 12:50:07 +01:00
Daniel Wolff
36af3ddcf1 Fix typo (#9101)
Fixed the name of the tool (Perfect->Prefect)

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-09-03 12:49:48 +01:00
github-actions[bot]
0e7afe3c99 chore: sync content to repository - nextjs (#9098)
* chore: sync content to repo

* Update src/data/roadmaps/nextjs/content/adapters@fXXlJ6oN_YPWVr-fqEar3.md

---------

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-09-03 12:44:49 +01:00
kamranahmedse
b605fd6337 chore: sync content to repo 2025-09-03 12:43:21 +01:00
kamranahmedse
ba1e5a58b5 chore: sync content to repo 2025-09-03 12:43:01 +01:00
Arik Chakma
dd12cf1c99 fix: remove log 2025-09-03 11:02:46 +01:00
Arik Chakma
44854cc5fb fix: official roadmap json 2025-09-03 11:02:46 +01:00
Arik Chakma
b1e60f1614 fix: beginner roadmaps 2025-09-02 17:54:54 +01:00
Arik Chakma
168ad05afe fix: project card 2025-09-02 17:54:54 +01:00
Arik Chakma
bb0419bf8a feat: official project 2025-09-02 17:54:54 +01:00
Kamran Ahmed
2d18cefd55 Revert "Revert "feat: official roadmap meta"" (#9096)
* Revert "Revert "chore: update roadmap json endpoint""

This reverts commit 8dbe1468ed.

* Revert "Revert "feat: roadmap main page""

This reverts commit bb13bf38a8.

* Revert "Revert "chore: replace roadmap listing""

This reverts commit 80dfd5b206.

* Revert "Revert "feat: roadmap courses""

This reverts commit a89c2d454f.

* Revert "Revert "fix: course length""

This reverts commit d1cf7cca99.

* Revert "Revert "feat: roadmap with courses""

This reverts commit 9c32f9d469.

* Revert "Revert "chore: disable pre-render for roadmaps""

This reverts commit cef4c29f10.
2025-09-01 20:22:54 +01:00
Arik Chakma
931e1b4a31 fix: rename key 2025-09-01 20:12:50 +01:00
Arik Chakma
e2075529ac feat: add roadmap key 2025-09-01 20:12:50 +01:00
Kamran Ahmed
8dbe1468ed Revert "chore: update roadmap json endpoint"
This reverts commit 580e764097.
2025-09-01 18:56:02 +01:00
Kamran Ahmed
bb13bf38a8 Revert "feat: roadmap main page"
This reverts commit ffb1cb5059.
2025-09-01 18:56:02 +01:00
Kamran Ahmed
80dfd5b206 Revert "chore: replace roadmap listing"
This reverts commit c4c28944ee.
2025-09-01 18:56:02 +01:00
Kamran Ahmed
a89c2d454f Revert "feat: roadmap courses"
This reverts commit f9f38101f9.
2025-09-01 18:56:02 +01:00
Kamran Ahmed
d1cf7cca99 Revert "fix: course length"
This reverts commit 40c7ea1b43.
2025-09-01 18:56:02 +01:00
Kamran Ahmed
9c32f9d469 Revert "feat: roadmap with courses"
This reverts commit 4e569df2a3.
2025-09-01 18:56:02 +01:00
Kamran Ahmed
cef4c29f10 Revert "chore: disable pre-render for roadmaps"
This reverts commit 679e29d12d.
2025-09-01 18:56:02 +01:00
Arik Chakma
679e29d12d chore: disable pre-render for roadmaps 2025-09-01 18:11:04 +01:00
Arik Chakma
4e569df2a3 feat: roadmap with courses 2025-09-01 18:11:04 +01:00
Arik Chakma
40c7ea1b43 fix: course length 2025-09-01 18:11:04 +01:00
Arik Chakma
f9f38101f9 feat: roadmap courses 2025-09-01 18:11:04 +01:00
Arik Chakma
c4c28944ee chore: replace roadmap listing 2025-09-01 18:11:04 +01:00
Arik Chakma
ffb1cb5059 feat: roadmap main page 2025-09-01 18:11:04 +01:00
Arik Chakma
580e764097 chore: update roadmap json endpoint 2025-09-01 18:11:04 +01:00
github-actions[bot]
111a97bb55 chore: sync content to repo (#9076)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-09-01 17:15:22 +06:00
kamranahmedse
5d85495d72 chore: sync content to repo 2025-08-28 15:01:48 +01:00
Kamran Ahmed
ed2a251de4 Add content to Data Engineer Roadmap (#9016)
* Add basic content

* add content to data engineer roadmap

* add content to DE roadmap and fix some typos in content appearing in several roadmaps

* batch of new content for data engineer roadmap

* new batch of content from DE roadmap

* new batch in DE roadmap with 25 contents

* add 30 new content for DE roadmap

* new 30 contents for DE roadmap

* add last batch of content for DE roadmap. Ready to PR

* add 4 missing contents

* clean typo in de roadmap

---------

Co-authored-by: Javi Canales <javicanales@Dans-Laptop.local>
2025-08-28 14:59:59 +01:00
Kamran Ahmed
449e8f12e4 Add nextjs roadmap 2025-08-27 03:10:03 +01:00
Kamran Ahmed
a15b13cedd Add nextjs assets 2025-08-27 03:07:21 +01:00
Kamran Ahmed
609683db2f Add nextjs roadmap 2025-08-27 03:05:47 +01:00
Arik Chakma
3e21d05767 chore: event on limit exceed (#9069) 2025-08-25 20:52:47 +01:00
Sara Montemaggi
82edfba6e9 Add exception handling resource (#9073)
Added link to well made introductory tutorial on the topic of exception handling in Java
2025-08-25 17:59:01 +01:00
Dr. Lloyd
65d7a737ac Add ansible resource (#9078)
* Update ansible@h9vVPOmdUSeEGVQQaSTH5.md

This a full Ansible Course I took and it really helped me to upskill. I believe the community will benefit a lot from this course.

* Update src/data/roadmaps/devops/content/ansible@h9vVPOmdUSeEGVQQaSTH5.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-08-25 17:58:03 +01:00
Kamran Ahmed
2e0a69ad72 Fix changelog issue 2025-08-22 17:11:37 +01:00
Arik Chakma
485ffcf755 feat: not found topics 2025-08-22 15:53:55 +01:00
kamranahmedse
12ae7de3c5 chore: sync content to repo 2025-08-21 18:14:25 +01:00
Kamran Ahmed
9316d4027f Add BI analyst roadmap 2025-08-21 17:47:33 +01:00
Kamran Ahmed
5a63432412 Add BI analyst 2025-08-21 17:45:26 +01:00
kamranahmedse
ffecb5ae1a chore: sync content to repo 2025-08-21 16:21:29 +01:00
Kamran Ahmed
7a51c1af6c fix: broken syntax of workflow 2025-08-21 16:19:03 +01:00
Arik Chakma
6970cccc85 chore: add kamran 2025-08-21 16:04:23 +01:00
Arik Chakma
78940d44a9 fix: replace sync endpoint 2025-08-21 16:04:23 +01:00
Arik Chakma
6f11403a41 feat: migrate content to database 2025-08-21 16:04:23 +01:00
Arik Chakma
214799b0c2 chore: replace topic content 2025-08-21 16:04:23 +01:00
Arik Chakma
b5f564cba4 chore: add javi as reviewers 2025-08-21 16:04:23 +01:00
Kamran Ahmed
df53280ee9 Fix broken build 2025-08-20 23:29:32 +01:00
Kamran Ahmed
487a6a222b Pull changelog from backoffice 2025-08-20 23:20:37 +01:00
Kamran Ahmed
7933e222ee Remove guides and outdated functionality (#9055) 2025-08-20 17:54:08 +01:00
github-actions[bot]
e7b8c033fb chore: sync content to repo (#9062)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-08-20 17:32:43 +01:00
AhfricanAce
d893d0fe5d Update stdout--stdin--stderr@t3fxSgCgtxuMtHjclPHA6.md (#9052)
It's best advised to refer to the three main basic objects of the STDIO as "Data streams".
2025-08-20 16:07:08 +01:00
github-actions[bot]
1c8571e484 chore: sync content to repo (#9061)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-08-20 16:06:54 +01:00
Arik Chakma
3b43ed33c1 chore: linear algebra content (#9060) 2025-08-20 20:43:26 +06:00
github-actions[bot]
8a276d8e04 chore: sync content to repo (#9059)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-08-20 20:39:57 +06:00
Arik Chakma
36a9e987b5 fix: sync content to database (#9058) 2025-08-20 20:36:47 +06:00
github-actions[bot]
402104665e chore: sync content to repo (#9057)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-08-20 15:17:39 +01:00
Arik Chakma
9ec3c1fb9d fix: topic path 2025-08-20 15:09:14 +01:00
Arik Chakma
179cefe4da fix: remove title 2025-08-20 15:09:14 +01:00
Arik Chakma
93c1ea0496 fix: sync content description 2025-08-20 15:09:14 +01:00
Kamran Ahmed
cb7c13fd1b Make sync to not run for github actions 2025-08-20 14:24:21 +01:00
github-actions[bot]
704657cb36 Add content to Machine Learning (#9054)
* chore: sync content to repo

* Update src/data/roadmaps/machine-learning/introduction@MEL6y3vwiqwAV6FQihF34.md

* Update src/data/roadmaps/machine-learning/what-is-an-ml-engineer@FgzPlLUfGdlZPvPku0-Xl.md

---------

Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-08-20 14:21:03 +01:00
Kamran Ahmed
eba3a78c70 Update .github/workflows/sync-content-to-repo.yml 2025-08-20 13:49:19 +01:00
Kamran Ahmed
d6cf9eb66d Update .github/workflows/sync-content-to-repo.yml 2025-08-20 13:49:19 +01:00
Arik Chakma
885e95399e fix: sync repo to db 2025-08-20 13:49:19 +01:00
Arik Chakma
d70582411e chore: sync repo to database 2025-08-20 13:49:19 +01:00
Arik Chakma
07277708eb fix: replace the api endpoint 2025-08-20 13:49:19 +01:00
Arik Chakma
87280b4c9e chore: sync content to repo 2025-08-20 13:49:19 +01:00
Kamran Ahmed
91b0a232ab Fix typos 2025-08-20 13:02:32 +01:00
Kamran Ahmed
bbedfec17d Fix AI course generator issue 2025-08-19 18:38:50 +01:00
Kamran Ahmed
96b2eb2797 Add machine learning roadmap to readme 2025-08-19 17:39:31 +01:00
Kamran Ahmed
fc1f666daf Add machine learning roadmap links 2025-08-19 17:36:03 +01:00
Kamran Ahmed
8fb38ae944 Add machine learning roadmap 2025-08-19 17:33:28 +01:00
Kamran Ahmed
bfe340508c Add machine learning roadmap 2025-08-19 17:30:32 +01:00
Arik Chakma
fc260ec3f0 chore: add data engineer 2025-08-19 17:14:45 +01:00
Arik Chakma
cd18dbad95 chore: add data engineer roadmap 2025-08-19 17:14:45 +01:00
Arik Chakma
949ada2fda fix: ai roadmap url 2025-08-19 17:14:45 +01:00
Omprakash Rawat
2823038d79 add Distributed Systems topic with resources (#9050) 2025-08-19 15:31:35 +01:00
Arik Chakma
dbb25ca129 fix: guides pages (#9048) 2025-08-19 15:29:28 +01:00
Arik Chakma
467581bbf4 chore: remove old ai pages (#9049) 2025-08-19 15:28:59 +01:00
Kamran Ahmed
bd7cf6e4d7 Add kubernetes ci/cd tools 2025-08-19 15:25:14 +01:00
Kamran Ahmed
12dd62fbeb Add FAQ to JS roadmap 2025-08-18 21:51:19 +01:00
Kamran Ahmed
10e179345c Fix dashboard for logged in users 2025-08-18 21:42:33 +01:00
Kamran Ahmed
830d365f3b Fix empty guides listing on dashboard 2025-08-18 21:25:53 +01:00
Kamran Ahmed
50b04042ee Add internal FAQ 2025-08-18 21:19:08 +01:00
Kamran Ahmed
e471c8b393 Fix table of contents issue 2025-08-18 18:02:04 +01:00
Julian Gödde
a63eb8e934 fix link to UX design roadmap (#9046) 2025-08-18 17:59:32 +01:00
Arik Chakma
f79d8c0562 refactor: roadmap specific guides (#9043)
* fix: ai course generate url

* wip

* wip

* wip

* feat: roadmap guides

* wip

* wip

* feat: featured guide list
2025-08-18 16:32:31 +01:00
Oleksandr Redko
a024a573fe fix: capitalization of "GitHub" and "GitLab" (#8885) 2025-08-18 13:32:53 +01:00
Sulfikar Alijun
b01adcc62e Add CSS resource (#9045) 2025-08-18 13:31:57 +01:00
Kamran Ahmed
a313552721 Fix broken syntax files 2025-08-15 22:25:01 +01:00
Kamran Ahmed
4931ba060f Fix syntax issue 2025-08-15 21:24:05 +01:00
Arik Chakma
bb47e557c6 fix: ai course generate url (#9023) 2025-08-14 14:04:33 +01:00
Kamran Ahmed
f0a5853058 Add content for devops and kubernetes nodes 2025-08-13 20:39:59 +01:00
Kamran Ahmed
7072431723 Add octopus deploy topic 2025-08-13 20:24:51 +01:00
github-actions[bot]
79f9e72a9d chore: update roadmap content json (#9015)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-08-13 01:49:19 +01:00
Andrew DeVries
b9502b8256 Add content to Rust roadmap (#9014)
these articles break down Options, Results, and when to panic, all important parts of writing robust rust code
2025-08-13 01:49:03 +01:00
Kamran Ahmed
a25dced848 Update roadmap link in readme 2025-08-13 01:44:54 +01:00
Kamran Ahmed
0aab2a24b8 Add data engineer roadmap to readme 2025-08-13 01:41:49 +01:00
Kamran Ahmed
6894e73781 Update data engineer roadmap content 2025-08-13 01:39:12 +01:00
Kamran Ahmed
c1d3db0c97 Add data engineer roadmap dirs 2025-08-13 01:35:33 +01:00
Mahan Mashoof
dc8ad22192 add video @ docker/underlying-technologies (#9007)
* add video @ docker/underlying-technologies

* fix: update video name
2025-08-12 14:03:02 +01:00
Soumik Sarker
df1cdde166 fix: sql operators resource (#9009)
Signed-off-by: Soumik Sarker <ronodhirsoumik@gmail.com>
2025-08-12 14:01:21 +01:00
Andrii Sozonik
dfb3238097 fix: typo "serviece" to "service" 2025-08-12 14:00:15 +01:00
Arik Chakma
4fcff0c593 fix: roadmap chat url 2025-08-12 13:45:22 +01:00
Arik Chakma
07b85c032a refactor: floating and topic ai 2025-08-12 13:45:22 +01:00
Arik Chakma
20c1a54198 chore: add short title 2025-08-12 13:45:22 +01:00
github-actions[bot]
0a4d6871db chore: update roadmap content json (#9004)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-08-09 07:52:37 +06:00
Javier Canales
aeda7a369c remove paid resource in Vim DevOps Roadmap (#9006)
* remove paid resource

* add Vim book

* add book label

---------

Co-authored-by: Javi Canales <javicanales@Dans-Laptop.local>
2025-08-08 16:27:08 +01:00
Kamran Ahmed
404859737d Regenerate roadmap assets 2025-08-07 18:27:04 +01:00
Johnny Huang
5e8929c36b add angular resource link (#8926) 2025-08-07 17:49:39 +01:00
Oleksandr Redko
33cb7b9de5 Fix queue-based load leveling content and links 2025-08-07 17:47:53 +01:00
Jawher Kl
cec01c3df5 Fix broken design system pilot links 2025-08-07 17:47:12 +01:00
Kamran Ahmed
126d28f7f2 fix: update technical content 2025-08-07 17:46:33 +01:00
Alex Ivanov
ab432f7be8 Update Vue create-vue link to current guide
Vue CLI is now in maintenance mode.

For new projects, it’s recommended to use create-vue to scaffold Vite‑based applications. You can find the official example on the Vue.js website.
2025-08-07 17:46:08 +01:00
Noodles
65a0a8c5bf Fix typo in Technical Writer label 2025-08-07 17:45:16 +01:00
Jofre Gaston
781721cd54 Remove wrong content (#8927)
Delete wrong content
2025-08-07 17:45:08 +01:00
Hang
f371aa602f Add CompTIA Linux+ training labs resource
Add a new article resource for CompTIA Linux+ Certification Training Labs to the existing list of resources.

Co-authored-by: huhuhang <huhuhang@users.noreply.github.com>
2025-08-07 17:41:50 +01:00
Sepand
1ef8a2746f Remove broken QA backend testing link
The website related to the first resource in this section has been repurposed, and the existing link is no longer active.
2025-08-07 17:41:02 +01:00
Caleb James Smith
0385a97062 Fix grammar in Full Stack Linux Basics 2025-08-07 17:38:11 +01:00
Jilvin Thomas Abraham
a40e9bc0d3 Fix typo in Linux process priorities 2025-08-07 17:37:14 +01:00
Kamran Ahmed
a3cd0fa52e remove python resource 2025-08-07 17:37:07 +01:00
Sudhanwa Kaveeshwar
837f8457cd Add Go var vs := content 2025-08-07 17:36:43 +01:00
Abhishek Raha
b67ca1dab6 remove dead link (#8957)
* Updated dead article link ( bito.ai ) for Method Chaining to new link ( geeksforgeeks )

* Removed unnecessary break-line

* Update src/data/roadmaps/java/content/method-chaining@Ax2ouIZgN1DpPzKDy4fwp.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-08-07 17:35:55 +01:00
Paul Wiggers
35e74516c1 Update IT skills article title from 7 to 8 skills and fix formatting
- Updated Coursera article title to reflect current content (7 -> 8 In-Demand IT Skills)
- Added missing newline at end of file

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-07 17:33:22 +01:00
qwAlb3do
6108963b9c Add Python video resource with correct formatting
- Added Python - Basic to Advance YouTube playlist to learn-the-basics content
- Fixed formatting to include proper @video@ type prefix

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-07 17:32:37 +01:00
Vedansh
bcf59df1db refactor(golang): cleanup roadmap content (#8976)
* audit first 36 files

* audit next 25 files

* audit next 26 topics

* audit next 29 topics

* audit last 65 topics.
2025-08-07 17:29:30 +01:00
George Nagib
841bc996a6 Update models-on-hugging-face@dLEg4IA3F5jgc44Bst9if.md (#8978)
* Update models-on-hugging-face@dLEg4IA3F5jgc44Bst9if.md

Added overview of embedding models on Hugging Face

- Added a concise summary explaining what embeddings are and their common use cases
- Listed popular embedding models like MiniLM, GTE, E5, and BGE
- Included an official Hugging Face video on text embeddings
- Linked to the full list of embedding models available on Hugging Face Hub

* Fix formatting issues in Hugging Face embedding models content

- Add missing blank line after title (follows established pattern)
- Fix grammatical error: remove duplicated 'which' and em dash
- Maintain original content structure and meaning

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-08-07 17:27:26 +01:00
Chijioke Ugwuanyi
04947d5b44 Add caching resources for backend performance best practices
Adds high-quality external learning resources for caching strategies, cache invalidation, and caching utilization topics in backend performance best practices.
2025-08-07 17:00:45 +01:00
Ken Nguyen
6000ef92b1 Replace outdated article (#9002)
* Replaced outdated 2020 article with newer article on why blockchain is important

Article by Forbes from 2020 is outdated. The new article from Hedera provides more details on how blockchain matters by discussing new advancements, such as IoT and tokenization.

* Update src/data/roadmaps/blockchain/content/why-it-matters@ecT4W5z8Vq9pXjnuhMdpl.md

---------

Co-authored-by: Kamran Ahmed <kamranahmed.se@gmail.com>
2025-08-07 16:55:41 +01:00
Mahdi ramezaan zaade
11ad1a8086 Update resource tag (#9003)
the first link is refer to react docs and should be official
2025-08-07 16:39:11 +01:00
Kamran Ahmed
2a840c4f7e Add new guide data analyst vs data engineer 2025-08-07 15:14:36 +01:00
github-actions[bot]
48d33e87cf chore: update roadmap content json (#8995)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
2025-08-06 22:15:57 +06:00
nonnapopoa
70dac4377e Remove atom from ides-and-rust-toolchains (#8998) 2025-08-05 17:15:30 +01:00
Kamran Ahmed
d405582f50 Remove outdated resource (#8997) 2025-08-05 16:25:00 +01:00
1494 changed files with 36648 additions and 28328 deletions

View File

@@ -3,6 +3,6 @@
"enabled": false
},
"_variables": {
"lastUpdateCheck": 1753810743067
"lastUpdateCheck": 1756224238932
}
}

1
.astro/types.d.ts vendored
View File

@@ -1 +1,2 @@
/// <reference types="astro/client" />
/// <reference path="content.d.ts" />

View File

@@ -7,4 +7,6 @@ PUBLIC_STRIPE_INDIVIDUAL_MONTHLY_PRICE_ID=
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_ID=
PUBLIC_STRIPE_INDIVIDUAL_MONTHLY_PRICE_AMOUNT=10
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_AMOUNT=100
PUBLIC_STRIPE_INDIVIDUAL_YEARLY_PRICE_AMOUNT=100
ROADMAP_API_KEY=

View File

@@ -0,0 +1,66 @@
name: Sync Content to Repo
on:
workflow_dispatch:
inputs:
roadmap_slug:
description: "The ID of the roadmap to sync"
required: true
default: "__default__"
jobs:
sync-content:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup pnpm@v9
uses: pnpm/action-setup@v4
with:
version: 9
run_install: false
- name: Setup Node.js Version 20 (LTS)
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Install Dependencies and Sync Content
run: |
echo "Installing Dependencies"
pnpm install
echo "Syncing Content to Repo"
npm run sync:content-to-repo -- --roadmap-slug=${{ inputs.roadmap_slug }} --secret=${{ secrets.GH_SYNC_SECRET }}
- name: Check for changes
id: verify-changed-files
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "changed=true" >> $GITHUB_OUTPUT
else
echo "changed=false" >> $GITHUB_OUTPUT
fi
- name: Create PR
if: steps.verify-changed-files.outputs.changed == 'true'
uses: peter-evans/create-pull-request@v7
with:
delete-branch: false
branch: "chore/sync-content-to-repo-${{ inputs.roadmap_slug }}"
base: "master"
labels: |
automated pr
reviewers: jcanalesluna,kamranahmedse
commit-message: "chore: sync content to repo"
title: "chore: sync content to repository - ${{ inputs.roadmap_slug }}"
body: |
## Sync Content to Repo
> [!IMPORTANT]
> This PR Syncs the Content to the Repo for the Roadmap: ${{ inputs.roadmap_slug }}
>
> Commit: ${{ github.sha }}
> Workflow Path: ${{ github.workflow_ref }}
**Please Review the Changes and Merge the PR if everything is fine.**

View File

@@ -0,0 +1,67 @@
name: Sync on Roadmap Changes
on:
push:
branches:
- master
paths:
- 'src/data/roadmaps/**'
jobs:
sync-on-changes:
runs-on: ubuntu-latest
if: github.actor != 'github-actions[bot]' && github.actor != 'dependabot[bot]'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2 # Fetch previous commit to compare changes
- name: Setup pnpm@v9
uses: pnpm/action-setup@v4
with:
version: 9
run_install: false
- name: Setup Node.js Version 20 (LTS)
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Get changed files
id: changed-files
run: |
echo "Getting changed files in /src/data/roadmaps/"
# Get changed files between HEAD and previous commit
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD -- src/data/roadmaps/)
if [ -z "$CHANGED_FILES" ]; then
echo "No changes found in roadmaps directory"
echo "has_changes=false" >> $GITHUB_OUTPUT
exit 0
fi
echo "Changed files:"
echo "$CHANGED_FILES"
# Convert to space-separated list for the script
CHANGED_FILES_LIST=$(echo "$CHANGED_FILES" | tr '\n' ',')
echo "has_changes=true" >> $GITHUB_OUTPUT
echo "changed_files=$CHANGED_FILES_LIST" >> $GITHUB_OUTPUT
- name: Install Dependencies
if: steps.changed-files.outputs.has_changes == 'true'
run: |
echo "Installing Dependencies"
pnpm install
- name: Run sync script with changed files
if: steps.changed-files.outputs.has_changes == 'true'
run: |
echo "Running sync script for changed roadmap files"
echo "Changed files: ${{ steps.changed-files.outputs.changed_files }}"
# Run your script with the changed file paths
npm run sync:repo-to-database -- --files="${{ steps.changed-files.outputs.changed_files }}" --secret=${{ secrets.GH_SYNC_SECRET }}

View File

@@ -16,6 +16,7 @@
"roadmap-links": "node scripts/roadmap-links.cjs",
"roadmap-dirs": "node scripts/roadmap-dirs.cjs",
"roadmap-assets": "tsx scripts/editor-roadmap-assets.ts",
"refresh-assets": "tsx scripts/refresh-assets.ts",
"editor-roadmap-dirs": "tsx scripts/editor-roadmap-dirs.ts",
"editor-roadmap-content": "tsx scripts/editor-roadmap-content.ts",
"roadmap-content": "node scripts/roadmap-content.cjs",
@@ -28,9 +29,13 @@
"compress:images": "tsx ./scripts/compress-images.ts",
"generate:roadmap-content-json": "tsx ./scripts/editor-roadmap-content-json.ts",
"migrate:editor-roadmaps": "tsx ./scripts/migrate-editor-roadmap.ts",
"sync:content-to-repo": "tsx ./scripts/sync-content-to-repo.ts",
"sync:repo-to-database": "tsx ./scripts/sync-repo-to-database.ts",
"migrate:content-repo-to-database": "tsx ./scripts/migrate-content-repo-to-database.ts",
"test:e2e": "playwright test"
},
"dependencies": {
"@ai-sdk/react": "2.0.0-beta.34",
"@astrojs/node": "^9.2.1",
"@astrojs/react": "^4.2.7",
"@astrojs/sitemap": "^3.4.0",
@@ -42,6 +47,7 @@
"@radix-ui/react-popover": "^1.1.14",
"@resvg/resvg-js": "^2.6.2",
"@roadmapsh/editor": "workspace:*",
"@shikijs/transformers": "^3.9.2",
"@tailwindcss/vite": "^4.1.7",
"@tanstack/react-query": "^5.76.1",
"@tiptap/core": "^2.12.0",
@@ -64,6 +70,7 @@
"image-size": "^2.0.2",
"jose": "^6.0.11",
"js-cookie": "^3.0.5",
"katex": "^0.16.22",
"lucide-react": "^0.511.0",
"luxon": "^3.6.1",
"markdown-it-async": "^2.2.0",
@@ -79,10 +86,14 @@
"react-confetti": "^6.4.0",
"react-dom": "^19.1.0",
"react-dropzone": "^14.3.8",
"react-markdown": "^10.1.0",
"react-resizable-panels": "^3.0.2",
"react-textarea-autosize": "^8.5.9",
"react-tooltip": "^5.28.1",
"rehype-external-links": "^3.0.0",
"rehype-katex": "^7.0.1",
"remark-gfm": "^4.0.1",
"remark-math": "^6.0.0",
"remark-parse": "^11.0.0",
"roadmap-renderer": "^1.0.7",
"sanitize-html": "^2.17.0",
@@ -97,6 +108,7 @@
"tiptap-markdown": "^0.8.10",
"turndown": "^7.2.0",
"unified": "^11.0.5",
"zod": "^4.0.17",
"zustand": "^5.0.4"
},
"devDependencies": {
@@ -112,7 +124,7 @@
"@types/react-slick": "^0.23.13",
"@types/sanitize-html": "^2.16.0",
"@types/turndown": "^5.0.5",
"ai": "^4.3.16",
"ai": "5.0.0-beta.34",
"csv-parser": "^3.2.0",
"gh-pages": "^6.3.0",
"js-yaml": "^4.1.0",

476
pnpm-lock.yaml generated
View File

@@ -8,6 +8,9 @@ importers:
.:
dependencies:
'@ai-sdk/react':
specifier: 2.0.0-beta.34
version: 2.0.0-beta.34(react@19.1.0)(zod@4.0.17)
'@astrojs/node':
specifier: ^9.2.1
version: 9.2.1(astro@5.7.13(@types/node@22.15.17)(jiti@2.4.2)(lightningcss@1.30.1)(rollup@4.40.2)(tsx@4.19.4)(typescript@5.8.3))
@@ -41,6 +44,9 @@ importers:
'@roadmapsh/editor':
specifier: workspace:*
version: link:packages/editor
'@shikijs/transformers':
specifier: ^3.9.2
version: 3.9.2
'@tailwindcss/vite':
specifier: ^4.1.7
version: 4.1.7(vite@6.3.5(@types/node@22.15.17)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.19.4))
@@ -107,6 +113,9 @@ importers:
js-cookie:
specifier: ^3.0.5
version: 3.0.5
katex:
specifier: ^0.16.22
version: 0.16.22
lucide-react:
specifier: ^0.511.0
version: 0.511.0(react@19.1.0)
@@ -152,6 +161,9 @@ importers:
react-dropzone:
specifier: ^14.3.8
version: 14.3.8(react@19.1.0)
react-markdown:
specifier: ^10.1.0
version: 10.1.0(@types/react@19.1.4)(react@19.1.0)
react-resizable-panels:
specifier: ^3.0.2
version: 3.0.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
@@ -164,6 +176,15 @@ importers:
rehype-external-links:
specifier: ^3.0.0
version: 3.0.0
rehype-katex:
specifier: ^7.0.1
version: 7.0.1
remark-gfm:
specifier: ^4.0.1
version: 4.0.1
remark-math:
specifier: ^6.0.0
version: 6.0.0
remark-parse:
specifier: ^11.0.0
version: 11.0.0
@@ -206,13 +227,16 @@ importers:
unified:
specifier: ^11.0.5
version: 11.0.5
zod:
specifier: ^4.0.17
version: 4.0.17
zustand:
specifier: ^5.0.4
version: 5.0.4(@types/react@19.1.4)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0))
devDependencies:
'@ai-sdk/google':
specifier: ^1.2.18
version: 1.2.18(zod@3.24.4)
version: 1.2.18(zod@4.0.17)
'@playwright/test':
specifier: ^1.52.0
version: 1.52.0
@@ -247,8 +271,8 @@ importers:
specifier: ^5.0.5
version: 5.0.5
ai:
specifier: ^4.3.16
version: 4.3.16(react@19.1.0)(zod@3.24.4)
specifier: 5.0.0-beta.34
version: 5.0.0-beta.34(zod@4.0.17)
csv-parser:
specifier: ^3.2.0
version: 3.2.0
@@ -263,7 +287,7 @@ importers:
version: 14.1.0
openai:
specifier: ^4.100.0
version: 4.100.0(zod@3.24.4)
version: 4.100.0(zod@4.0.17)
prettier:
specifier: ^3.5.3
version: 3.5.3
@@ -334,6 +358,12 @@ importers:
packages:
'@ai-sdk/gateway@1.0.0-beta.19':
resolution: {integrity: sha512-felWPMuECZRGx8xnmvH5dW3jywKTkGnw/tXN8szphGzEDr/BfxywuXijfPBG2WBUS6frPXsvSLDRdCm5W38PXA==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4
'@ai-sdk/google@1.2.18':
resolution: {integrity: sha512-8B70+i+uB12Ae6Sn6B9Oc6W0W/XorGgc88Nx0pyUrcxFOdytHBaAVhTPqYsO3LLClfjYN8pQ9GMxd5cpGEnUcA==}
engines: {node: '>=18'}
@@ -346,26 +376,30 @@ packages:
peerDependencies:
zod: ^3.23.8
'@ai-sdk/provider-utils@3.0.0-beta.10':
resolution: {integrity: sha512-e6WSsgM01au04/1L/v5daXHn00eKjPBQXl3jq3BfvQbQ1jo8Rls2pvrdkyVc25jBW4TV4Zm+tw+v6NAh5NPXMA==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4
'@ai-sdk/provider@1.1.3':
resolution: {integrity: sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==}
engines: {node: '>=18'}
'@ai-sdk/react@1.2.12':
resolution: {integrity: sha512-jK1IZZ22evPZoQW3vlkZ7wvjYGYF+tRBKXtrcolduIkQ/m/sOAVcVeVDUDvh1T91xCnWCdUGCPZg2avZ90mv3g==}
'@ai-sdk/provider@2.0.0-beta.2':
resolution: {integrity: sha512-vqhtZA7R24q1XnmfmIb1fZSmHMIaJH1BVQ+0kFnNJgqWsc+V8i+yfetZ37gUc4fXATFmBuS/6O7+RPoHsZ2Fqg==}
engines: {node: '>=18'}
'@ai-sdk/react@2.0.0-beta.34':
resolution: {integrity: sha512-6v55iQbJRJ42nFM7GPzmzaP3NxEgFamKQu2fYc8jl5McQyYka3gZ7jHpy4jTMy+b16HIXKgPqVXd/RN/+uHOEw==}
engines: {node: '>=18'}
peerDependencies:
react: ^18 || ^19 || ^19.0.0-rc
zod: ^3.23.8
zod: ^3.25.76 || ^4
peerDependenciesMeta:
zod:
optional: true
'@ai-sdk/ui-utils@1.2.11':
resolution: {integrity: sha512-3zcwCc8ezzFlwp3ZD15wAPjf2Au4s3vAbKsXQVyhxODHcmu0iyPO2Eua6D/vicq/AUm/BAo60r97O6HU+EI0+w==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.23.8
'@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
@@ -1915,6 +1949,9 @@ packages:
'@shikijs/core@3.4.2':
resolution: {integrity: sha512-AG8vnSi1W2pbgR2B911EfGqtLE9c4hQBYkv/x7Z+Kt0VxhgQKcW7UNDVYsu9YxwV6u+OJrvdJrMq6DNWoBjihQ==}
'@shikijs/core@3.9.2':
resolution: {integrity: sha512-3q/mzmw09B2B6PgFNeiaN8pkNOixWS726IHmJEpjDAcneDPMQmUg2cweT9cWXY4XcyQS3i6mOOUgQz9RRUP6HA==}
'@shikijs/engine-javascript@3.4.2':
resolution: {integrity: sha512-1/adJbSMBOkpScCE/SB6XkjJU17ANln3Wky7lOmrnpl+zBdQ1qXUJg2GXTYVHRq+2j3hd1DesmElTXYDgtfSOQ==}
@@ -1927,9 +1964,15 @@ packages:
'@shikijs/themes@3.4.2':
resolution: {integrity: sha512-qAEuAQh+brd8Jyej2UDDf+b4V2g1Rm8aBIdvt32XhDPrHvDkEnpb7Kzc9hSuHUxz0Iuflmq7elaDuQAP9bHIhg==}
'@shikijs/transformers@3.9.2':
resolution: {integrity: sha512-MW5hT4TyUp6bNAgTExRYLk1NNasVQMTCw1kgbxHcEC0O5cbepPWaB+1k+JzW9r3SP2/R8kiens8/3E6hGKfgsA==}
'@shikijs/types@3.4.2':
resolution: {integrity: sha512-zHC1l7L+eQlDXLnxvM9R91Efh2V4+rN3oMVS2swCBssbj2U/FBwybD1eeLaq8yl/iwT+zih8iUbTBCgGZOYlVg==}
'@shikijs/types@3.9.2':
resolution: {integrity: sha512-/M5L0Uc2ljyn2jKvj4Yiah7ow/W+DJSglVafvWAJ/b8AZDeeRAdMu3c2riDzB7N42VD+jSnWxeP9AKtd4TfYVw==}
'@shikijs/vscode-textmate@10.0.2':
resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
@@ -1938,6 +1981,9 @@ packages:
engines: {node: '>= 8.0.0'}
hasBin: true
'@standard-schema/spec@1.0.0':
resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==}
'@swc/helpers@0.5.17':
resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
@@ -2223,12 +2269,12 @@ packages:
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
'@types/diff-match-patch@1.0.36':
resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==}
'@types/dom-to-image@2.6.7':
resolution: {integrity: sha512-me5VbCv+fcXozblWwG13krNBvuEOm6kA5xoa4RrjDJCNFOZSWR3/QLtOXimBHk1Fisq69Gx3JtOoXtg1N1tijg==}
'@types/estree-jsx@1.0.5':
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
'@types/estree@1.0.7':
resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
@@ -2241,6 +2287,9 @@ packages:
'@types/js-cookie@3.0.6':
resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==}
'@types/katex@0.16.7':
resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==}
'@types/linkify-it@3.0.5':
resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==}
@@ -2309,6 +2358,9 @@ packages:
'@types/turndown@5.0.5':
resolution: {integrity: sha512-TL2IgGgc7B5j78rIccBtlYAnkuv8nUQqhQc+DSYV5j9Be9XOcm/SKOVRuA47xAVI3680Tk9B1d8flK2GWT2+4w==}
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
@@ -2346,15 +2398,11 @@ packages:
resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
engines: {node: '>= 8.0.0'}
ai@4.3.16:
resolution: {integrity: sha512-KUDwlThJ5tr2Vw0A1ZkbDKNME3wzWhuVfAOwIvFUzl1TPVDFAXDFTXio3p+jaKneB+dKNCvFFlolYmmgHttG1g==}
ai@5.0.0-beta.34:
resolution: {integrity: sha512-AFJ4p35AxA+1KFtnoouePLaAUpoj0IxIAoq/xgIv88qzYajTg4Sac5KaV4CDHFRLoF0L2cwhlFXt/Ss/zyBKkA==}
engines: {node: '>=18'}
peerDependencies:
react: ^18 || ^19 || ^19.0.0-rc
zod: ^3.23.8
peerDependenciesMeta:
react:
optional: true
zod: ^3.25.76 || ^4
ansi-align@3.0.1:
resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==}
@@ -2506,6 +2554,9 @@ packages:
character-entities@2.0.2:
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
character-reference-invalid@2.0.1:
resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
chokidar@4.0.3:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
engines: {node: '>= 14.16.0'}
@@ -2565,6 +2616,10 @@ packages:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
commander@8.3.0:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines: {node: '>= 12'}
common-ancestor-path@1.0.1:
resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
@@ -2734,9 +2789,6 @@ packages:
dfa@1.2.0:
resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==}
diff-match-patch@1.0.5:
resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==}
diff@5.2.0:
resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
engines: {node: '>=0.3.1'}
@@ -2864,6 +2916,9 @@ packages:
engines: {node: '>=4'}
hasBin: true
estree-util-is-identifier-name@3.0.0:
resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
@@ -2881,6 +2936,10 @@ packages:
eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
eventsource-parser@3.0.3:
resolution: {integrity: sha512-nVpZkTMM9rF6AQ9gPJpFsNAMt48wIzB5TQgiTLdHiuO8XEDhUgZEhqKlZWXbIzo9VmJ/HvysHqEaVeD5v9TPvA==}
engines: {node: '>=20.0.0'}
extend-shallow@2.0.1:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: '>=0.10.0'}
@@ -3052,6 +3111,12 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
hast-util-from-dom@5.0.1:
resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==}
hast-util-from-html-isomorphic@2.0.0:
resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==}
hast-util-from-html@2.0.3:
resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
@@ -3070,6 +3135,9 @@ packages:
hast-util-to-html@9.0.5:
resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
hast-util-to-jsx-runtime@2.3.6:
resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
hast-util-to-parse5@8.0.0:
resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
@@ -3096,6 +3164,9 @@ packages:
html-escaper@3.0.3:
resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
html-url-attributes@3.0.1:
resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
@@ -3127,6 +3198,9 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
inline-style-parser@0.2.4:
resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
iron-webcrypto@1.2.1:
resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
@@ -3134,9 +3208,18 @@ packages:
resolution: {integrity: sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
is-alphabetical@2.0.1:
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
is-alphanumerical@2.0.1:
resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
is-decimal@2.0.1:
resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
is-docker@3.0.0:
resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -3158,6 +3241,9 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
is-hexadecimal@2.0.1:
resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
is-inside-container@1.0.0:
resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
engines: {node: '>=14.16'}
@@ -3224,14 +3310,13 @@ packages:
engines: {node: '>=6'}
hasBin: true
jsondiffpatch@0.6.0:
resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
katex@0.16.22:
resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==}
hasBin: true
kind-of@6.0.3:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
@@ -3486,6 +3571,18 @@ packages:
mdast-util-gfm@3.1.0:
resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
mdast-util-math@3.0.0:
resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==}
mdast-util-mdx-expression@2.0.1:
resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
mdast-util-mdx-jsx@3.2.0:
resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==}
mdast-util-mdxjs-esm@2.0.1:
resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
mdast-util-phrasing@4.1.0:
resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
@@ -3535,6 +3632,9 @@ packages:
micromark-extension-gfm@3.0.0:
resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
micromark-extension-math@3.1.0:
resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==}
micromark-factory-destination@2.0.1:
resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
@@ -3776,6 +3876,9 @@ packages:
parse-css-color@0.2.1:
resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==}
parse-entities@4.0.2:
resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
parse-latin@7.0.0:
resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==}
@@ -4065,6 +4168,12 @@ packages:
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
react-markdown@10.1.0:
resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==}
peerDependencies:
'@types/react': '>=18'
react: '>=18'
react-refresh@0.17.0:
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
engines: {node: '>=0.10.0'}
@@ -4137,6 +4246,9 @@ packages:
rehype-external-links@3.0.0:
resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==}
rehype-katex@7.0.1:
resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==}
rehype-parse@9.0.1:
resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
@@ -4152,6 +4264,9 @@ packages:
remark-gfm@4.0.1:
resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
remark-math@6.0.0:
resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==}
remark-parse@11.0.0:
resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
@@ -4354,6 +4469,12 @@ packages:
resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==}
engines: {node: '>=0.10.0'}
style-to-js@1.1.17:
resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==}
style-to-object@1.0.9:
resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==}
sucrase@3.35.0:
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -4362,8 +4483,8 @@ packages:
suf-log@2.5.3:
resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==}
swr@2.3.3:
resolution: {integrity: sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==}
swr@2.3.5:
resolution: {integrity: sha512-4e7pjTVulZTIL+b/S0RYFsgDcTcXPLUOvBPqyh9YdD+PkHeEMoaPwDmF9Kv6I1nnPg1OFKhiiEYpsYaaE2W2jA==}
peerDependencies:
react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -4830,6 +4951,9 @@ packages:
zod@3.24.4:
resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==}
zod@4.0.17:
resolution: {integrity: sha512-1PHjlYRevNxxdy2JZ8JcNAw7rX8V9P1AKkP+x/xZfxB0K5FYfuV+Ug6P/6NVSR2jHQ+FzDDoDHS04nYUsOIyLQ==}
zustand@4.5.6:
resolution: {integrity: sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==}
engines: {node: '>=12.7.0'}
@@ -4868,39 +4992,50 @@ packages:
snapshots:
'@ai-sdk/google@1.2.18(zod@3.24.4)':
'@ai-sdk/gateway@1.0.0-beta.19(zod@4.0.17)':
dependencies:
'@ai-sdk/provider': 2.0.0-beta.2
'@ai-sdk/provider-utils': 3.0.0-beta.10(zod@4.0.17)
zod: 4.0.17
'@ai-sdk/google@1.2.18(zod@4.0.17)':
dependencies:
'@ai-sdk/provider': 1.1.3
'@ai-sdk/provider-utils': 2.2.8(zod@3.24.4)
zod: 3.24.4
'@ai-sdk/provider-utils': 2.2.8(zod@4.0.17)
zod: 4.0.17
'@ai-sdk/provider-utils@2.2.8(zod@3.24.4)':
'@ai-sdk/provider-utils@2.2.8(zod@4.0.17)':
dependencies:
'@ai-sdk/provider': 1.1.3
nanoid: 3.3.11
secure-json-parse: 2.7.0
zod: 3.24.4
zod: 4.0.17
'@ai-sdk/provider-utils@3.0.0-beta.10(zod@4.0.17)':
dependencies:
'@ai-sdk/provider': 2.0.0-beta.2
'@standard-schema/spec': 1.0.0
eventsource-parser: 3.0.3
zod: 4.0.17
zod-to-json-schema: 3.24.5(zod@4.0.17)
'@ai-sdk/provider@1.1.3':
dependencies:
json-schema: 0.4.0
'@ai-sdk/react@1.2.12(react@19.1.0)(zod@3.24.4)':
'@ai-sdk/provider@2.0.0-beta.2':
dependencies:
'@ai-sdk/provider-utils': 2.2.8(zod@3.24.4)
'@ai-sdk/ui-utils': 1.2.11(zod@3.24.4)
json-schema: 0.4.0
'@ai-sdk/react@2.0.0-beta.34(react@19.1.0)(zod@4.0.17)':
dependencies:
'@ai-sdk/provider-utils': 3.0.0-beta.10(zod@4.0.17)
ai: 5.0.0-beta.34(zod@4.0.17)
react: 19.1.0
swr: 2.3.3(react@19.1.0)
swr: 2.3.5(react@19.1.0)
throttleit: 2.1.0
optionalDependencies:
zod: 3.24.4
'@ai-sdk/ui-utils@1.2.11(zod@3.24.4)':
dependencies:
'@ai-sdk/provider': 1.1.3
'@ai-sdk/provider-utils': 2.2.8(zod@3.24.4)
zod: 3.24.4
zod-to-json-schema: 3.24.5(zod@3.24.4)
zod: 4.0.17
'@alloc/quick-lru@5.2.0': {}
@@ -6377,6 +6512,13 @@ snapshots:
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
'@shikijs/core@3.9.2':
dependencies:
'@shikijs/types': 3.9.2
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
'@shikijs/engine-javascript@3.4.2':
dependencies:
'@shikijs/types': 3.4.2
@@ -6396,11 +6538,21 @@ snapshots:
dependencies:
'@shikijs/types': 3.4.2
'@shikijs/transformers@3.9.2':
dependencies:
'@shikijs/core': 3.9.2
'@shikijs/types': 3.9.2
'@shikijs/types@3.4.2':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
'@shikijs/types@3.9.2':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
'@shikijs/vscode-textmate@10.0.2': {}
'@shuding/opentype.js@1.4.0-beta.0':
@@ -6408,6 +6560,8 @@ snapshots:
fflate: 0.7.4
string.prototype.codepointat: 0.2.1
'@standard-schema/spec@1.0.0': {}
'@swc/helpers@0.5.17':
dependencies:
tslib: 2.8.1
@@ -6686,10 +6840,12 @@ snapshots:
dependencies:
'@types/ms': 2.1.0
'@types/diff-match-patch@1.0.36': {}
'@types/dom-to-image@2.6.7': {}
'@types/estree-jsx@1.0.5':
dependencies:
'@types/estree': 1.0.7
'@types/estree@1.0.7': {}
'@types/fontkit@2.0.8':
@@ -6702,6 +6858,8 @@ snapshots:
'@types/js-cookie@3.0.6': {}
'@types/katex@0.16.7': {}
'@types/linkify-it@3.0.5': {}
'@types/linkify-it@5.0.0': {}
@@ -6775,6 +6933,8 @@ snapshots:
'@types/turndown@5.0.5': {}
'@types/unist@2.0.11': {}
'@types/unist@3.0.3': {}
'@types/use-sync-external-store@0.0.6': {}
@@ -6823,17 +6983,13 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
ai@4.3.16(react@19.1.0)(zod@3.24.4):
ai@5.0.0-beta.34(zod@4.0.17):
dependencies:
'@ai-sdk/provider': 1.1.3
'@ai-sdk/provider-utils': 2.2.8(zod@3.24.4)
'@ai-sdk/react': 1.2.12(react@19.1.0)(zod@3.24.4)
'@ai-sdk/ui-utils': 1.2.11(zod@3.24.4)
'@ai-sdk/gateway': 1.0.0-beta.19(zod@4.0.17)
'@ai-sdk/provider': 2.0.0-beta.2
'@ai-sdk/provider-utils': 3.0.0-beta.10(zod@4.0.17)
'@opentelemetry/api': 1.9.0
jsondiffpatch: 0.6.0
zod: 3.24.4
optionalDependencies:
react: 19.1.0
zod: 4.0.17
ansi-align@3.0.1:
dependencies:
@@ -7053,6 +7209,8 @@ snapshots:
character-entities@2.0.2: {}
character-reference-invalid@2.0.1: {}
chokidar@4.0.3:
dependencies:
readdirp: 4.1.2
@@ -7097,6 +7255,8 @@ snapshots:
commander@4.1.1: {}
commander@8.3.0: {}
common-ancestor-path@1.0.1: {}
commondir@1.0.1: {}
@@ -7236,8 +7396,6 @@ snapshots:
dfa@1.2.0: {}
diff-match-patch@1.0.5: {}
diff@5.2.0: {}
dir-glob@3.0.1:
@@ -7360,6 +7518,8 @@ snapshots:
esprima@4.0.1: {}
estree-util-is-identifier-name@3.0.0: {}
estree-walker@2.0.2: {}
estree-walker@3.0.3:
@@ -7372,6 +7532,8 @@ snapshots:
eventemitter3@5.0.1: {}
eventsource-parser@3.0.3: {}
extend-shallow@2.0.1:
dependencies:
is-extendable: 0.1.1
@@ -7576,6 +7738,19 @@ snapshots:
dependencies:
function-bind: 1.1.2
hast-util-from-dom@5.0.1:
dependencies:
'@types/hast': 3.0.4
hastscript: 9.0.1
web-namespaces: 2.0.1
hast-util-from-html-isomorphic@2.0.0:
dependencies:
'@types/hast': 3.0.4
hast-util-from-dom: 5.0.1
hast-util-from-html: 2.0.3
unist-util-remove-position: 5.0.0
hast-util-from-html@2.0.3:
dependencies:
'@types/hast': 3.0.4
@@ -7634,6 +7809,26 @@ snapshots:
stringify-entities: 4.0.4
zwitch: 2.0.4
hast-util-to-jsx-runtime@2.3.6:
dependencies:
'@types/estree': 1.0.7
'@types/hast': 3.0.4
'@types/unist': 3.0.3
comma-separated-tokens: 2.0.3
devlop: 1.1.0
estree-util-is-identifier-name: 3.0.0
hast-util-whitespace: 3.0.0
mdast-util-mdx-expression: 2.0.1
mdast-util-mdx-jsx: 3.2.0
mdast-util-mdxjs-esm: 2.0.1
property-information: 7.1.0
space-separated-tokens: 2.0.2
style-to-js: 1.1.17
unist-util-position: 5.0.0
vfile-message: 4.0.2
transitivePeerDependencies:
- supports-color
hast-util-to-parse5@8.0.0:
dependencies:
'@types/hast': 3.0.4
@@ -7671,6 +7866,8 @@ snapshots:
html-escaper@3.0.3: {}
html-url-attributes@3.0.1: {}
html-void-elements@3.0.0: {}
htmlparser2@8.0.2:
@@ -7702,12 +7899,23 @@ snapshots:
inherits@2.0.4: {}
inline-style-parser@0.2.4: {}
iron-webcrypto@1.2.1: {}
is-absolute-url@4.0.1: {}
is-alphabetical@2.0.1: {}
is-alphanumerical@2.0.1:
dependencies:
is-alphabetical: 2.0.1
is-decimal: 2.0.1
is-arrayish@0.3.2: {}
is-decimal@2.0.1: {}
is-docker@3.0.0: {}
is-extendable@0.1.1: {}
@@ -7720,6 +7928,8 @@ snapshots:
dependencies:
is-extglob: 2.1.1
is-hexadecimal@2.0.1: {}
is-inside-container@1.0.0:
dependencies:
is-docker: 3.0.0
@@ -7767,18 +7977,16 @@ snapshots:
json5@2.2.3: {}
jsondiffpatch@0.6.0:
dependencies:
'@types/diff-match-patch': 1.0.36
chalk: 5.4.1
diff-match-patch: 1.0.5
jsonfile@6.1.0:
dependencies:
universalify: 2.0.1
optionalDependencies:
graceful-fs: 4.2.11
katex@0.16.22:
dependencies:
commander: 8.3.0
kind-of@6.0.3: {}
kleur@3.0.3: {}
@@ -8045,6 +8253,57 @@ snapshots:
transitivePeerDependencies:
- supports-color
mdast-util-math@3.0.0:
dependencies:
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
devlop: 1.1.0
longest-streak: 3.1.0
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
unist-util-remove-position: 5.0.0
transitivePeerDependencies:
- supports-color
mdast-util-mdx-expression@2.0.1:
dependencies:
'@types/estree-jsx': 1.0.5
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
mdast-util-mdx-jsx@3.2.0:
dependencies:
'@types/estree-jsx': 1.0.5
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
ccount: 2.0.1
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
parse-entities: 4.0.2
stringify-entities: 4.0.4
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
transitivePeerDependencies:
- supports-color
mdast-util-mdxjs-esm@2.0.1:
dependencies:
'@types/estree-jsx': 1.0.5
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
transitivePeerDependencies:
- supports-color
mdast-util-phrasing@4.1.0:
dependencies:
'@types/mdast': 4.0.4
@@ -8163,6 +8422,16 @@ snapshots:
micromark-util-combine-extensions: 2.0.1
micromark-util-types: 2.0.2
micromark-extension-math@3.1.0:
dependencies:
'@types/katex': 0.16.7
devlop: 1.1.0
katex: 0.16.22
micromark-factory-space: 2.0.1
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.2
micromark-factory-destination@2.0.1:
dependencies:
micromark-util-character: 2.1.1
@@ -8377,7 +8646,7 @@ snapshots:
regex: 6.0.1
regex-recursion: 6.0.2
openai@4.100.0(zod@3.24.4):
openai@4.100.0(zod@4.0.17):
dependencies:
'@types/node': 18.19.100
'@types/node-fetch': 2.6.12
@@ -8387,7 +8656,7 @@ snapshots:
formdata-node: 4.4.1
node-fetch: 2.7.0
optionalDependencies:
zod: 3.24.4
zod: 4.0.17
transitivePeerDependencies:
- encoding
@@ -8425,6 +8694,16 @@ snapshots:
color-name: 1.1.4
hex-rgb: 4.3.0
parse-entities@4.0.2:
dependencies:
'@types/unist': 2.0.11
character-entities-legacy: 3.0.0
character-reference-invalid: 2.0.1
decode-named-character-reference: 1.1.0
is-alphanumerical: 2.0.1
is-decimal: 2.0.1
is-hexadecimal: 2.0.1
parse-latin@7.0.0:
dependencies:
'@types/nlcst': 2.0.3
@@ -8736,6 +9015,24 @@ snapshots:
react-is@16.13.1: {}
react-markdown@10.1.0(@types/react@19.1.4)(react@19.1.0):
dependencies:
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
'@types/react': 19.1.4
devlop: 1.1.0
hast-util-to-jsx-runtime: 2.3.6
html-url-attributes: 3.0.1
mdast-util-to-hast: 13.2.0
react: 19.1.0
remark-parse: 11.0.0
remark-rehype: 11.1.2
unified: 11.0.5
unist-util-visit: 5.0.0
vfile: 6.0.3
transitivePeerDependencies:
- supports-color
react-refresh@0.17.0: {}
react-remove-scroll-bar@2.3.8(@types/react@19.1.4)(react@19.1.0):
@@ -8809,6 +9106,16 @@ snapshots:
space-separated-tokens: 2.0.2
unist-util-visit: 5.0.0
rehype-katex@7.0.1:
dependencies:
'@types/hast': 3.0.4
'@types/katex': 0.16.7
hast-util-from-html-isomorphic: 2.0.0
hast-util-to-text: 4.0.2
katex: 0.16.22
unist-util-visit-parents: 6.0.1
vfile: 6.0.3
rehype-parse@9.0.1:
dependencies:
'@types/hast': 3.0.4
@@ -8845,6 +9152,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
remark-math@6.0.0:
dependencies:
'@types/mdast': 4.0.4
mdast-util-math: 3.0.0
micromark-extension-math: 3.1.0
unified: 11.0.5
transitivePeerDependencies:
- supports-color
remark-parse@11.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -9155,6 +9471,14 @@ snapshots:
dependencies:
escape-string-regexp: 1.0.5
style-to-js@1.1.17:
dependencies:
style-to-object: 1.0.9
style-to-object@1.0.9:
dependencies:
inline-style-parser: 0.2.4
sucrase@3.35.0:
dependencies:
'@jridgewell/gen-mapping': 0.3.8
@@ -9169,7 +9493,7 @@ snapshots:
dependencies:
s.color: 0.0.15
swr@2.3.3(react@19.1.0):
swr@2.3.5(react@19.1.0):
dependencies:
dequal: 2.0.3
react: 19.1.0
@@ -9547,6 +9871,10 @@ snapshots:
dependencies:
zod: 3.24.4
zod-to-json-schema@3.24.5(zod@4.0.17):
dependencies:
zod: 4.0.17
zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.24.4):
dependencies:
typescript: 5.8.3
@@ -9554,6 +9882,8 @@ snapshots:
zod@3.24.4: {}
zod@4.0.17: {}
zustand@4.5.6(@types/react@19.1.4)(react@19.1.0):
dependencies:
use-sync-external-store: 1.5.0(react@19.1.0)
@@ -9567,4 +9897,4 @@ snapshots:
react: 19.1.0
use-sync-external-store: 1.5.0(react@19.1.0)
zwitch@2.0.4: {}
zwitch@2.0.4: {}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 283 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 799 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 756 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 835 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 602 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 516 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More