dhammawatthumpra commited on
Commit
0f2c05e
·
1 Parent(s): cb7868a

feat: markdown rendering for AI responses

Browse files
webapp/tipitaka-api/tests/test_search_service.py CHANGED
@@ -7,7 +7,6 @@ Uses mocked SQLiteDB to test search logic in isolation.
7
  import pytest
8
  from unittest.mock import MagicMock, patch
9
  from app.services.search_service import SearchService
10
- from app.services.pali_utils import to_thai_digits
11
 
12
 
13
  class TestCleanText:
@@ -70,12 +69,10 @@ class TestAutocorrectPipeline:
70
  result = self.service.clean_text(text)
71
  assert result == "ข้อความปกติ"
72
 
73
- def test_search_called_with_corrected_query(self):
74
- """Verify search method exists and runs (mocked DB will raise)."""
75
- with pytest.raises(Exception):
76
- # Will fail on DB mock because connection context manager
77
- # but confirms the method signature is correct
78
- self.service.search("อริยสัจ", limit=5)
79
 
80
 
81
  class TestLogSearch:
 
7
  import pytest
8
  from unittest.mock import MagicMock, patch
9
  from app.services.search_service import SearchService
 
10
 
11
 
12
  class TestCleanText:
 
69
  result = self.service.clean_text(text)
70
  assert result == "ข้อความปกติ"
71
 
72
+ def test_search_accepts_query(self):
73
+ """Verify search method accepts a query without raising."""
74
+ # Will not raise if mock handles context manager properly
75
+ self.service.search("อริยสัจ", limit=5)
 
 
76
 
77
 
78
  class TestLogSearch:
webapp/tipitaka-web/package-lock.json CHANGED
@@ -8,6 +8,7 @@
8
  "name": "tipitaka-web",
9
  "version": "0.0.0",
10
  "dependencies": {
 
11
  "@tanstack/react-query": "^5.100.6",
12
  "axios": "^1.15.2",
13
  "clsx": "^2.1.1",
@@ -15,6 +16,8 @@
15
  "lucide-react": "^1.12.0",
16
  "react": "^19.2.5",
17
  "react-dom": "^19.2.5",
 
 
18
  "tailwind-merge": "^3.5.0",
19
  "zustand": "^5.0.12"
20
  },
@@ -1133,6 +1136,18 @@
1133
  "node": ">= 20"
1134
  }
1135
  },
 
 
 
 
 
 
 
 
 
 
 
 
1136
  "node_modules/@tailwindcss/vite": {
1137
  "version": "4.2.4",
1138
  "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.4.tgz",
@@ -1185,6 +1200,15 @@
1185
  "tslib": "^2.4.0"
1186
  }
1187
  },
 
 
 
 
 
 
 
 
 
1188
  "node_modules/@types/esrecurse": {
1189
  "version": "4.3.1",
1190
  "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
@@ -1196,9 +1220,26 @@
1196
  "version": "1.0.8",
1197
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
1198
  "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
1199
- "dev": true,
1200
  "license": "MIT"
1201
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1202
  "node_modules/@types/json-schema": {
1203
  "version": "7.0.15",
1204
  "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
@@ -1206,6 +1247,21 @@
1206
  "dev": true,
1207
  "license": "MIT"
1208
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1209
  "node_modules/@types/node": {
1210
  "version": "24.12.2",
1211
  "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz",
@@ -1220,7 +1276,6 @@
1220
  "version": "19.2.14",
1221
  "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
1222
  "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
1223
- "devOptional": true,
1224
  "license": "MIT",
1225
  "dependencies": {
1226
  "csstype": "^3.2.2"
@@ -1236,6 +1291,12 @@
1236
  "@types/react": "^19.2.0"
1237
  }
1238
  },
 
 
 
 
 
 
1239
  "node_modules/@typescript-eslint/eslint-plugin": {
1240
  "version": "8.59.1",
1241
  "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.1.tgz",
@@ -1479,6 +1540,12 @@
1479
  "url": "https://opencollective.com/typescript-eslint"
1480
  }
1481
  },
 
 
 
 
 
 
1482
  "node_modules/@vitejs/plugin-react": {
1483
  "version": "6.0.1",
1484
  "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz",
@@ -1562,6 +1629,16 @@
1562
  "proxy-from-env": "^2.1.0"
1563
  }
1564
  },
 
 
 
 
 
 
 
 
 
 
1565
  "node_modules/balanced-match": {
1566
  "version": "4.0.4",
1567
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
@@ -1666,6 +1743,56 @@
1666
  ],
1667
  "license": "CC-BY-4.0"
1668
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1669
  "node_modules/clsx": {
1670
  "version": "2.1.1",
1671
  "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
@@ -1687,6 +1814,16 @@
1687
  "node": ">= 0.8"
1688
  }
1689
  },
 
 
 
 
 
 
 
 
 
 
1690
  "node_modules/convert-source-map": {
1691
  "version": "2.0.0",
1692
  "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@@ -1709,18 +1846,28 @@
1709
  "node": ">= 8"
1710
  }
1711
  },
 
 
 
 
 
 
 
 
 
 
 
 
1712
  "node_modules/csstype": {
1713
  "version": "3.2.3",
1714
  "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
1715
  "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
1716
- "devOptional": true,
1717
  "license": "MIT"
1718
  },
1719
  "node_modules/debug": {
1720
  "version": "4.4.3",
1721
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
1722
  "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
1723
- "dev": true,
1724
  "license": "MIT",
1725
  "dependencies": {
1726
  "ms": "^2.1.3"
@@ -1734,6 +1881,19 @@
1734
  }
1735
  }
1736
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
1737
  "node_modules/deep-is": {
1738
  "version": "0.1.4",
1739
  "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -1750,6 +1910,15 @@
1750
  "node": ">=0.4.0"
1751
  }
1752
  },
 
 
 
 
 
 
 
 
 
1753
  "node_modules/detect-libc": {
1754
  "version": "2.1.2",
1755
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
@@ -1760,6 +1929,19 @@
1760
  "node": ">=8"
1761
  }
1762
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
1763
  "node_modules/dunder-proto": {
1764
  "version": "1.0.1",
1765
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -2035,6 +2217,16 @@
2035
  "node": ">=4.0"
2036
  }
2037
  },
 
 
 
 
 
 
 
 
 
 
2038
  "node_modules/esutils": {
2039
  "version": "2.0.3",
2040
  "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
@@ -2045,6 +2237,12 @@
2045
  "node": ">=0.10.0"
2046
  }
2047
  },
 
 
 
 
 
 
2048
  "node_modules/fast-deep-equal": {
2049
  "version": "3.1.3",
2050
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -2353,6 +2551,46 @@
2353
  "node": ">= 0.4"
2354
  }
2355
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2356
  "node_modules/hermes-estree": {
2357
  "version": "0.25.1",
2358
  "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz",
@@ -2370,6 +2608,16 @@
2370
  "hermes-estree": "0.25.1"
2371
  }
2372
  },
 
 
 
 
 
 
 
 
 
 
2373
  "node_modules/ignore": {
2374
  "version": "5.3.2",
2375
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -2390,6 +2638,46 @@
2390
  "node": ">=0.8.19"
2391
  }
2392
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2393
  "node_modules/is-extglob": {
2394
  "version": "2.1.1",
2395
  "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -2413,6 +2701,28 @@
2413
  "node": ">=0.10.0"
2414
  }
2415
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2416
  "node_modules/isexe": {
2417
  "version": "2.0.0",
2418
  "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -2797,6 +3107,16 @@
2797
  "url": "https://github.com/sponsors/sindresorhus"
2798
  }
2799
  },
 
 
 
 
 
 
 
 
 
 
2800
  "node_modules/lru-cache": {
2801
  "version": "5.1.1",
2802
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -2826,6 +3146,16 @@
2826
  "@jridgewell/sourcemap-codec": "^1.5.5"
2827
  }
2828
  },
 
 
 
 
 
 
 
 
 
 
2829
  "node_modules/math-intrinsics": {
2830
  "version": "1.1.0",
2831
  "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@@ -2835,86 +3165,930 @@
2835
  "node": ">= 0.4"
2836
  }
2837
  },
2838
- "node_modules/mime-db": {
2839
- "version": "1.52.0",
2840
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
2841
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2842
  "license": "MIT",
2843
  "engines": {
2844
- "node": ">= 0.6"
 
 
 
2845
  }
2846
  },
2847
- "node_modules/mime-types": {
2848
- "version": "2.1.35",
2849
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
2850
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
2851
  "license": "MIT",
2852
  "dependencies": {
2853
- "mime-db": "1.52.0"
 
 
 
 
 
 
 
 
 
 
 
2854
  },
2855
- "engines": {
2856
- "node": ">= 0.6"
 
2857
  }
2858
  },
2859
- "node_modules/minimatch": {
2860
- "version": "10.2.5",
2861
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
2862
- "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
2863
- "dev": true,
2864
- "license": "BlueOak-1.0.0",
2865
  "dependencies": {
2866
- "brace-expansion": "^5.0.5"
2867
- },
2868
- "engines": {
2869
- "node": "18 || 20 || >=22"
 
 
 
2870
  },
2871
  "funding": {
2872
- "url": "https://github.com/sponsors/isaacs"
 
2873
  }
2874
  },
2875
- "node_modules/motion-dom": {
2876
- "version": "12.38.0",
2877
- "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.38.0.tgz",
2878
- "integrity": "sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==",
2879
  "license": "MIT",
2880
  "dependencies": {
2881
- "motion-utils": "^12.36.0"
 
 
 
 
 
 
 
 
2882
  }
2883
  },
2884
- "node_modules/motion-utils": {
2885
- "version": "12.36.0",
2886
- "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.36.0.tgz",
2887
- "integrity": "sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==",
2888
- "license": "MIT"
2889
- },
2890
- "node_modules/ms": {
2891
- "version": "2.1.3",
2892
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2893
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2894
- "dev": true,
2895
- "license": "MIT"
2896
- },
2897
- "node_modules/nanoid": {
2898
- "version": "3.3.11",
2899
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
2900
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
2901
- "dev": true,
2902
- "funding": [
2903
- {
2904
- "type": "github",
2905
- "url": "https://github.com/sponsors/ai"
2906
- }
2907
- ],
2908
  "license": "MIT",
2909
- "bin": {
2910
- "nanoid": "bin/nanoid.cjs"
 
 
 
 
2911
  },
2912
- "engines": {
2913
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
 
2914
  }
2915
  },
2916
- "node_modules/natural-compare": {
2917
- "version": "1.4.0",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2918
  "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
2919
  "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
2920
  "dev": true,
@@ -2977,6 +4151,31 @@
2977
  "url": "https://github.com/sponsors/sindresorhus"
2978
  }
2979
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2980
  "node_modules/path-exists": {
2981
  "version": "4.0.0",
2982
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -3046,6 +4245,19 @@
3046
  "node": "^10 || ^12 || >=14"
3047
  }
3048
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
3049
  "node_modules/prelude-ls": {
3050
  "version": "1.2.1",
3051
  "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -3056,6 +4268,16 @@
3056
  "node": ">= 0.8.0"
3057
  }
3058
  },
 
 
 
 
 
 
 
 
 
 
3059
  "node_modules/proxy-from-env": {
3060
  "version": "2.1.0",
3061
  "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
@@ -3096,6 +4318,99 @@
3096
  "react": "^19.2.5"
3097
  }
3098
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3099
  "node_modules/rolldown": {
3100
  "version": "1.0.0-rc.17",
3101
  "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz",
@@ -3186,6 +4501,48 @@
3186
  "node": ">=0.10.0"
3187
  }
3188
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3189
  "node_modules/tailwind-merge": {
3190
  "version": "3.5.0",
3191
  "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz",
@@ -3200,7 +4557,6 @@
3200
  "version": "4.2.4",
3201
  "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz",
3202
  "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==",
3203
- "dev": true,
3204
  "license": "MIT"
3205
  },
3206
  "node_modules/tapable": {
@@ -3234,6 +4590,26 @@
3234
  "url": "https://github.com/sponsors/SuperchupuDev"
3235
  }
3236
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3237
  "node_modules/ts-api-utils": {
3238
  "version": "2.5.0",
3239
  "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
@@ -3311,6 +4687,93 @@
3311
  "dev": true,
3312
  "license": "MIT"
3313
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3314
  "node_modules/update-browserslist-db": {
3315
  "version": "1.2.3",
3316
  "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
@@ -3352,6 +4815,40 @@
3352
  "punycode": "^2.1.0"
3353
  }
3354
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3355
  "node_modules/vite": {
3356
  "version": "8.0.10",
3357
  "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.10.tgz",
@@ -3527,6 +5024,16 @@
3527
  "optional": true
3528
  }
3529
  }
 
 
 
 
 
 
 
 
 
 
3530
  }
3531
  }
3532
  }
 
8
  "name": "tipitaka-web",
9
  "version": "0.0.0",
10
  "dependencies": {
11
+ "@tailwindcss/typography": "^0.5.19",
12
  "@tanstack/react-query": "^5.100.6",
13
  "axios": "^1.15.2",
14
  "clsx": "^2.1.1",
 
16
  "lucide-react": "^1.12.0",
17
  "react": "^19.2.5",
18
  "react-dom": "^19.2.5",
19
+ "react-markdown": "^10.1.0",
20
+ "remark-gfm": "^4.0.1",
21
  "tailwind-merge": "^3.5.0",
22
  "zustand": "^5.0.12"
23
  },
 
1136
  "node": ">= 20"
1137
  }
1138
  },
1139
+ "node_modules/@tailwindcss/typography": {
1140
+ "version": "0.5.19",
1141
+ "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.19.tgz",
1142
+ "integrity": "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==",
1143
+ "license": "MIT",
1144
+ "dependencies": {
1145
+ "postcss-selector-parser": "6.0.10"
1146
+ },
1147
+ "peerDependencies": {
1148
+ "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1"
1149
+ }
1150
+ },
1151
  "node_modules/@tailwindcss/vite": {
1152
  "version": "4.2.4",
1153
  "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.4.tgz",
 
1200
  "tslib": "^2.4.0"
1201
  }
1202
  },
1203
+ "node_modules/@types/debug": {
1204
+ "version": "4.1.13",
1205
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz",
1206
+ "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==",
1207
+ "license": "MIT",
1208
+ "dependencies": {
1209
+ "@types/ms": "*"
1210
+ }
1211
+ },
1212
  "node_modules/@types/esrecurse": {
1213
  "version": "4.3.1",
1214
  "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
 
1220
  "version": "1.0.8",
1221
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
1222
  "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
 
1223
  "license": "MIT"
1224
  },
1225
+ "node_modules/@types/estree-jsx": {
1226
+ "version": "1.0.5",
1227
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
1228
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
1229
+ "license": "MIT",
1230
+ "dependencies": {
1231
+ "@types/estree": "*"
1232
+ }
1233
+ },
1234
+ "node_modules/@types/hast": {
1235
+ "version": "3.0.4",
1236
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
1237
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
1238
+ "license": "MIT",
1239
+ "dependencies": {
1240
+ "@types/unist": "*"
1241
+ }
1242
+ },
1243
  "node_modules/@types/json-schema": {
1244
  "version": "7.0.15",
1245
  "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
 
1247
  "dev": true,
1248
  "license": "MIT"
1249
  },
1250
+ "node_modules/@types/mdast": {
1251
+ "version": "4.0.4",
1252
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
1253
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
1254
+ "license": "MIT",
1255
+ "dependencies": {
1256
+ "@types/unist": "*"
1257
+ }
1258
+ },
1259
+ "node_modules/@types/ms": {
1260
+ "version": "2.1.0",
1261
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
1262
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
1263
+ "license": "MIT"
1264
+ },
1265
  "node_modules/@types/node": {
1266
  "version": "24.12.2",
1267
  "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz",
 
1276
  "version": "19.2.14",
1277
  "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
1278
  "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
 
1279
  "license": "MIT",
1280
  "dependencies": {
1281
  "csstype": "^3.2.2"
 
1291
  "@types/react": "^19.2.0"
1292
  }
1293
  },
1294
+ "node_modules/@types/unist": {
1295
+ "version": "3.0.3",
1296
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
1297
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
1298
+ "license": "MIT"
1299
+ },
1300
  "node_modules/@typescript-eslint/eslint-plugin": {
1301
  "version": "8.59.1",
1302
  "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.59.1.tgz",
 
1540
  "url": "https://opencollective.com/typescript-eslint"
1541
  }
1542
  },
1543
+ "node_modules/@ungap/structured-clone": {
1544
+ "version": "1.3.1",
1545
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.1.tgz",
1546
+ "integrity": "sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==",
1547
+ "license": "ISC"
1548
+ },
1549
  "node_modules/@vitejs/plugin-react": {
1550
  "version": "6.0.1",
1551
  "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz",
 
1629
  "proxy-from-env": "^2.1.0"
1630
  }
1631
  },
1632
+ "node_modules/bail": {
1633
+ "version": "2.0.2",
1634
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
1635
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
1636
+ "license": "MIT",
1637
+ "funding": {
1638
+ "type": "github",
1639
+ "url": "https://github.com/sponsors/wooorm"
1640
+ }
1641
+ },
1642
  "node_modules/balanced-match": {
1643
  "version": "4.0.4",
1644
  "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
 
1743
  ],
1744
  "license": "CC-BY-4.0"
1745
  },
1746
+ "node_modules/ccount": {
1747
+ "version": "2.0.1",
1748
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
1749
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
1750
+ "license": "MIT",
1751
+ "funding": {
1752
+ "type": "github",
1753
+ "url": "https://github.com/sponsors/wooorm"
1754
+ }
1755
+ },
1756
+ "node_modules/character-entities": {
1757
+ "version": "2.0.2",
1758
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
1759
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
1760
+ "license": "MIT",
1761
+ "funding": {
1762
+ "type": "github",
1763
+ "url": "https://github.com/sponsors/wooorm"
1764
+ }
1765
+ },
1766
+ "node_modules/character-entities-html4": {
1767
+ "version": "2.1.0",
1768
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
1769
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
1770
+ "license": "MIT",
1771
+ "funding": {
1772
+ "type": "github",
1773
+ "url": "https://github.com/sponsors/wooorm"
1774
+ }
1775
+ },
1776
+ "node_modules/character-entities-legacy": {
1777
+ "version": "3.0.0",
1778
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
1779
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
1780
+ "license": "MIT",
1781
+ "funding": {
1782
+ "type": "github",
1783
+ "url": "https://github.com/sponsors/wooorm"
1784
+ }
1785
+ },
1786
+ "node_modules/character-reference-invalid": {
1787
+ "version": "2.0.1",
1788
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
1789
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
1790
+ "license": "MIT",
1791
+ "funding": {
1792
+ "type": "github",
1793
+ "url": "https://github.com/sponsors/wooorm"
1794
+ }
1795
+ },
1796
  "node_modules/clsx": {
1797
  "version": "2.1.1",
1798
  "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
 
1814
  "node": ">= 0.8"
1815
  }
1816
  },
1817
+ "node_modules/comma-separated-tokens": {
1818
+ "version": "2.0.3",
1819
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
1820
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
1821
+ "license": "MIT",
1822
+ "funding": {
1823
+ "type": "github",
1824
+ "url": "https://github.com/sponsors/wooorm"
1825
+ }
1826
+ },
1827
  "node_modules/convert-source-map": {
1828
  "version": "2.0.0",
1829
  "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
 
1846
  "node": ">= 8"
1847
  }
1848
  },
1849
+ "node_modules/cssesc": {
1850
+ "version": "3.0.0",
1851
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
1852
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
1853
+ "license": "MIT",
1854
+ "bin": {
1855
+ "cssesc": "bin/cssesc"
1856
+ },
1857
+ "engines": {
1858
+ "node": ">=4"
1859
+ }
1860
+ },
1861
  "node_modules/csstype": {
1862
  "version": "3.2.3",
1863
  "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
1864
  "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
 
1865
  "license": "MIT"
1866
  },
1867
  "node_modules/debug": {
1868
  "version": "4.4.3",
1869
  "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
1870
  "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
 
1871
  "license": "MIT",
1872
  "dependencies": {
1873
  "ms": "^2.1.3"
 
1881
  }
1882
  }
1883
  },
1884
+ "node_modules/decode-named-character-reference": {
1885
+ "version": "1.3.0",
1886
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz",
1887
+ "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==",
1888
+ "license": "MIT",
1889
+ "dependencies": {
1890
+ "character-entities": "^2.0.0"
1891
+ },
1892
+ "funding": {
1893
+ "type": "github",
1894
+ "url": "https://github.com/sponsors/wooorm"
1895
+ }
1896
+ },
1897
  "node_modules/deep-is": {
1898
  "version": "0.1.4",
1899
  "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
 
1910
  "node": ">=0.4.0"
1911
  }
1912
  },
1913
+ "node_modules/dequal": {
1914
+ "version": "2.0.3",
1915
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
1916
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
1917
+ "license": "MIT",
1918
+ "engines": {
1919
+ "node": ">=6"
1920
+ }
1921
+ },
1922
  "node_modules/detect-libc": {
1923
  "version": "2.1.2",
1924
  "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
 
1929
  "node": ">=8"
1930
  }
1931
  },
1932
+ "node_modules/devlop": {
1933
+ "version": "1.1.0",
1934
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
1935
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
1936
+ "license": "MIT",
1937
+ "dependencies": {
1938
+ "dequal": "^2.0.0"
1939
+ },
1940
+ "funding": {
1941
+ "type": "github",
1942
+ "url": "https://github.com/sponsors/wooorm"
1943
+ }
1944
+ },
1945
  "node_modules/dunder-proto": {
1946
  "version": "1.0.1",
1947
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
 
2217
  "node": ">=4.0"
2218
  }
2219
  },
2220
+ "node_modules/estree-util-is-identifier-name": {
2221
+ "version": "3.0.0",
2222
+ "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
2223
+ "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
2224
+ "license": "MIT",
2225
+ "funding": {
2226
+ "type": "opencollective",
2227
+ "url": "https://opencollective.com/unified"
2228
+ }
2229
+ },
2230
  "node_modules/esutils": {
2231
  "version": "2.0.3",
2232
  "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
 
2237
  "node": ">=0.10.0"
2238
  }
2239
  },
2240
+ "node_modules/extend": {
2241
+ "version": "3.0.2",
2242
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
2243
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
2244
+ "license": "MIT"
2245
+ },
2246
  "node_modules/fast-deep-equal": {
2247
  "version": "3.1.3",
2248
  "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
 
2551
  "node": ">= 0.4"
2552
  }
2553
  },
2554
+ "node_modules/hast-util-to-jsx-runtime": {
2555
+ "version": "2.3.6",
2556
+ "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
2557
+ "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
2558
+ "license": "MIT",
2559
+ "dependencies": {
2560
+ "@types/estree": "^1.0.0",
2561
+ "@types/hast": "^3.0.0",
2562
+ "@types/unist": "^3.0.0",
2563
+ "comma-separated-tokens": "^2.0.0",
2564
+ "devlop": "^1.0.0",
2565
+ "estree-util-is-identifier-name": "^3.0.0",
2566
+ "hast-util-whitespace": "^3.0.0",
2567
+ "mdast-util-mdx-expression": "^2.0.0",
2568
+ "mdast-util-mdx-jsx": "^3.0.0",
2569
+ "mdast-util-mdxjs-esm": "^2.0.0",
2570
+ "property-information": "^7.0.0",
2571
+ "space-separated-tokens": "^2.0.0",
2572
+ "style-to-js": "^1.0.0",
2573
+ "unist-util-position": "^5.0.0",
2574
+ "vfile-message": "^4.0.0"
2575
+ },
2576
+ "funding": {
2577
+ "type": "opencollective",
2578
+ "url": "https://opencollective.com/unified"
2579
+ }
2580
+ },
2581
+ "node_modules/hast-util-whitespace": {
2582
+ "version": "3.0.0",
2583
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
2584
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
2585
+ "license": "MIT",
2586
+ "dependencies": {
2587
+ "@types/hast": "^3.0.0"
2588
+ },
2589
+ "funding": {
2590
+ "type": "opencollective",
2591
+ "url": "https://opencollective.com/unified"
2592
+ }
2593
+ },
2594
  "node_modules/hermes-estree": {
2595
  "version": "0.25.1",
2596
  "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz",
 
2608
  "hermes-estree": "0.25.1"
2609
  }
2610
  },
2611
+ "node_modules/html-url-attributes": {
2612
+ "version": "3.0.1",
2613
+ "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
2614
+ "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
2615
+ "license": "MIT",
2616
+ "funding": {
2617
+ "type": "opencollective",
2618
+ "url": "https://opencollective.com/unified"
2619
+ }
2620
+ },
2621
  "node_modules/ignore": {
2622
  "version": "5.3.2",
2623
  "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
 
2638
  "node": ">=0.8.19"
2639
  }
2640
  },
2641
+ "node_modules/inline-style-parser": {
2642
+ "version": "0.2.7",
2643
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz",
2644
+ "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==",
2645
+ "license": "MIT"
2646
+ },
2647
+ "node_modules/is-alphabetical": {
2648
+ "version": "2.0.1",
2649
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
2650
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
2651
+ "license": "MIT",
2652
+ "funding": {
2653
+ "type": "github",
2654
+ "url": "https://github.com/sponsors/wooorm"
2655
+ }
2656
+ },
2657
+ "node_modules/is-alphanumerical": {
2658
+ "version": "2.0.1",
2659
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
2660
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
2661
+ "license": "MIT",
2662
+ "dependencies": {
2663
+ "is-alphabetical": "^2.0.0",
2664
+ "is-decimal": "^2.0.0"
2665
+ },
2666
+ "funding": {
2667
+ "type": "github",
2668
+ "url": "https://github.com/sponsors/wooorm"
2669
+ }
2670
+ },
2671
+ "node_modules/is-decimal": {
2672
+ "version": "2.0.1",
2673
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
2674
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
2675
+ "license": "MIT",
2676
+ "funding": {
2677
+ "type": "github",
2678
+ "url": "https://github.com/sponsors/wooorm"
2679
+ }
2680
+ },
2681
  "node_modules/is-extglob": {
2682
  "version": "2.1.1",
2683
  "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
 
2701
  "node": ">=0.10.0"
2702
  }
2703
  },
2704
+ "node_modules/is-hexadecimal": {
2705
+ "version": "2.0.1",
2706
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
2707
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
2708
+ "license": "MIT",
2709
+ "funding": {
2710
+ "type": "github",
2711
+ "url": "https://github.com/sponsors/wooorm"
2712
+ }
2713
+ },
2714
+ "node_modules/is-plain-obj": {
2715
+ "version": "4.1.0",
2716
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
2717
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
2718
+ "license": "MIT",
2719
+ "engines": {
2720
+ "node": ">=12"
2721
+ },
2722
+ "funding": {
2723
+ "url": "https://github.com/sponsors/sindresorhus"
2724
+ }
2725
+ },
2726
  "node_modules/isexe": {
2727
  "version": "2.0.0",
2728
  "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
 
3107
  "url": "https://github.com/sponsors/sindresorhus"
3108
  }
3109
  },
3110
+ "node_modules/longest-streak": {
3111
+ "version": "3.1.0",
3112
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
3113
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
3114
+ "license": "MIT",
3115
+ "funding": {
3116
+ "type": "github",
3117
+ "url": "https://github.com/sponsors/wooorm"
3118
+ }
3119
+ },
3120
  "node_modules/lru-cache": {
3121
  "version": "5.1.1",
3122
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
 
3146
  "@jridgewell/sourcemap-codec": "^1.5.5"
3147
  }
3148
  },
3149
+ "node_modules/markdown-table": {
3150
+ "version": "3.0.4",
3151
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
3152
+ "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
3153
+ "license": "MIT",
3154
+ "funding": {
3155
+ "type": "github",
3156
+ "url": "https://github.com/sponsors/wooorm"
3157
+ }
3158
+ },
3159
  "node_modules/math-intrinsics": {
3160
  "version": "1.1.0",
3161
  "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
 
3165
  "node": ">= 0.4"
3166
  }
3167
  },
3168
+ "node_modules/mdast-util-find-and-replace": {
3169
+ "version": "3.0.2",
3170
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
3171
+ "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
3172
+ "license": "MIT",
3173
+ "dependencies": {
3174
+ "@types/mdast": "^4.0.0",
3175
+ "escape-string-regexp": "^5.0.0",
3176
+ "unist-util-is": "^6.0.0",
3177
+ "unist-util-visit-parents": "^6.0.0"
3178
+ },
3179
+ "funding": {
3180
+ "type": "opencollective",
3181
+ "url": "https://opencollective.com/unified"
3182
+ }
3183
+ },
3184
+ "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": {
3185
+ "version": "5.0.0",
3186
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
3187
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
3188
  "license": "MIT",
3189
  "engines": {
3190
+ "node": ">=12"
3191
+ },
3192
+ "funding": {
3193
+ "url": "https://github.com/sponsors/sindresorhus"
3194
  }
3195
  },
3196
+ "node_modules/mdast-util-from-markdown": {
3197
+ "version": "2.0.3",
3198
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz",
3199
+ "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==",
3200
  "license": "MIT",
3201
  "dependencies": {
3202
+ "@types/mdast": "^4.0.0",
3203
+ "@types/unist": "^3.0.0",
3204
+ "decode-named-character-reference": "^1.0.0",
3205
+ "devlop": "^1.0.0",
3206
+ "mdast-util-to-string": "^4.0.0",
3207
+ "micromark": "^4.0.0",
3208
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
3209
+ "micromark-util-decode-string": "^2.0.0",
3210
+ "micromark-util-normalize-identifier": "^2.0.0",
3211
+ "micromark-util-symbol": "^2.0.0",
3212
+ "micromark-util-types": "^2.0.0",
3213
+ "unist-util-stringify-position": "^4.0.0"
3214
  },
3215
+ "funding": {
3216
+ "type": "opencollective",
3217
+ "url": "https://opencollective.com/unified"
3218
  }
3219
  },
3220
+ "node_modules/mdast-util-gfm": {
3221
+ "version": "3.1.0",
3222
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
3223
+ "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
3224
+ "license": "MIT",
 
3225
  "dependencies": {
3226
+ "mdast-util-from-markdown": "^2.0.0",
3227
+ "mdast-util-gfm-autolink-literal": "^2.0.0",
3228
+ "mdast-util-gfm-footnote": "^2.0.0",
3229
+ "mdast-util-gfm-strikethrough": "^2.0.0",
3230
+ "mdast-util-gfm-table": "^2.0.0",
3231
+ "mdast-util-gfm-task-list-item": "^2.0.0",
3232
+ "mdast-util-to-markdown": "^2.0.0"
3233
  },
3234
  "funding": {
3235
+ "type": "opencollective",
3236
+ "url": "https://opencollective.com/unified"
3237
  }
3238
  },
3239
+ "node_modules/mdast-util-gfm-autolink-literal": {
3240
+ "version": "2.0.1",
3241
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
3242
+ "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
3243
  "license": "MIT",
3244
  "dependencies": {
3245
+ "@types/mdast": "^4.0.0",
3246
+ "ccount": "^2.0.0",
3247
+ "devlop": "^1.0.0",
3248
+ "mdast-util-find-and-replace": "^3.0.0",
3249
+ "micromark-util-character": "^2.0.0"
3250
+ },
3251
+ "funding": {
3252
+ "type": "opencollective",
3253
+ "url": "https://opencollective.com/unified"
3254
  }
3255
  },
3256
+ "node_modules/mdast-util-gfm-footnote": {
3257
+ "version": "2.1.0",
3258
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
3259
+ "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3260
  "license": "MIT",
3261
+ "dependencies": {
3262
+ "@types/mdast": "^4.0.0",
3263
+ "devlop": "^1.1.0",
3264
+ "mdast-util-from-markdown": "^2.0.0",
3265
+ "mdast-util-to-markdown": "^2.0.0",
3266
+ "micromark-util-normalize-identifier": "^2.0.0"
3267
  },
3268
+ "funding": {
3269
+ "type": "opencollective",
3270
+ "url": "https://opencollective.com/unified"
3271
  }
3272
  },
3273
+ "node_modules/mdast-util-gfm-strikethrough": {
3274
+ "version": "2.0.0",
3275
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
3276
+ "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
3277
+ "license": "MIT",
3278
+ "dependencies": {
3279
+ "@types/mdast": "^4.0.0",
3280
+ "mdast-util-from-markdown": "^2.0.0",
3281
+ "mdast-util-to-markdown": "^2.0.0"
3282
+ },
3283
+ "funding": {
3284
+ "type": "opencollective",
3285
+ "url": "https://opencollective.com/unified"
3286
+ }
3287
+ },
3288
+ "node_modules/mdast-util-gfm-table": {
3289
+ "version": "2.0.0",
3290
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
3291
+ "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
3292
+ "license": "MIT",
3293
+ "dependencies": {
3294
+ "@types/mdast": "^4.0.0",
3295
+ "devlop": "^1.0.0",
3296
+ "markdown-table": "^3.0.0",
3297
+ "mdast-util-from-markdown": "^2.0.0",
3298
+ "mdast-util-to-markdown": "^2.0.0"
3299
+ },
3300
+ "funding": {
3301
+ "type": "opencollective",
3302
+ "url": "https://opencollective.com/unified"
3303
+ }
3304
+ },
3305
+ "node_modules/mdast-util-gfm-task-list-item": {
3306
+ "version": "2.0.0",
3307
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
3308
+ "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
3309
+ "license": "MIT",
3310
+ "dependencies": {
3311
+ "@types/mdast": "^4.0.0",
3312
+ "devlop": "^1.0.0",
3313
+ "mdast-util-from-markdown": "^2.0.0",
3314
+ "mdast-util-to-markdown": "^2.0.0"
3315
+ },
3316
+ "funding": {
3317
+ "type": "opencollective",
3318
+ "url": "https://opencollective.com/unified"
3319
+ }
3320
+ },
3321
+ "node_modules/mdast-util-mdx-expression": {
3322
+ "version": "2.0.1",
3323
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
3324
+ "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
3325
+ "license": "MIT",
3326
+ "dependencies": {
3327
+ "@types/estree-jsx": "^1.0.0",
3328
+ "@types/hast": "^3.0.0",
3329
+ "@types/mdast": "^4.0.0",
3330
+ "devlop": "^1.0.0",
3331
+ "mdast-util-from-markdown": "^2.0.0",
3332
+ "mdast-util-to-markdown": "^2.0.0"
3333
+ },
3334
+ "funding": {
3335
+ "type": "opencollective",
3336
+ "url": "https://opencollective.com/unified"
3337
+ }
3338
+ },
3339
+ "node_modules/mdast-util-mdx-jsx": {
3340
+ "version": "3.2.0",
3341
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
3342
+ "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
3343
+ "license": "MIT",
3344
+ "dependencies": {
3345
+ "@types/estree-jsx": "^1.0.0",
3346
+ "@types/hast": "^3.0.0",
3347
+ "@types/mdast": "^4.0.0",
3348
+ "@types/unist": "^3.0.0",
3349
+ "ccount": "^2.0.0",
3350
+ "devlop": "^1.1.0",
3351
+ "mdast-util-from-markdown": "^2.0.0",
3352
+ "mdast-util-to-markdown": "^2.0.0",
3353
+ "parse-entities": "^4.0.0",
3354
+ "stringify-entities": "^4.0.0",
3355
+ "unist-util-stringify-position": "^4.0.0",
3356
+ "vfile-message": "^4.0.0"
3357
+ },
3358
+ "funding": {
3359
+ "type": "opencollective",
3360
+ "url": "https://opencollective.com/unified"
3361
+ }
3362
+ },
3363
+ "node_modules/mdast-util-mdxjs-esm": {
3364
+ "version": "2.0.1",
3365
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
3366
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
3367
+ "license": "MIT",
3368
+ "dependencies": {
3369
+ "@types/estree-jsx": "^1.0.0",
3370
+ "@types/hast": "^3.0.0",
3371
+ "@types/mdast": "^4.0.0",
3372
+ "devlop": "^1.0.0",
3373
+ "mdast-util-from-markdown": "^2.0.0",
3374
+ "mdast-util-to-markdown": "^2.0.0"
3375
+ },
3376
+ "funding": {
3377
+ "type": "opencollective",
3378
+ "url": "https://opencollective.com/unified"
3379
+ }
3380
+ },
3381
+ "node_modules/mdast-util-phrasing": {
3382
+ "version": "4.1.0",
3383
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
3384
+ "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
3385
+ "license": "MIT",
3386
+ "dependencies": {
3387
+ "@types/mdast": "^4.0.0",
3388
+ "unist-util-is": "^6.0.0"
3389
+ },
3390
+ "funding": {
3391
+ "type": "opencollective",
3392
+ "url": "https://opencollective.com/unified"
3393
+ }
3394
+ },
3395
+ "node_modules/mdast-util-to-hast": {
3396
+ "version": "13.2.1",
3397
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
3398
+ "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
3399
+ "license": "MIT",
3400
+ "dependencies": {
3401
+ "@types/hast": "^3.0.0",
3402
+ "@types/mdast": "^4.0.0",
3403
+ "@ungap/structured-clone": "^1.0.0",
3404
+ "devlop": "^1.0.0",
3405
+ "micromark-util-sanitize-uri": "^2.0.0",
3406
+ "trim-lines": "^3.0.0",
3407
+ "unist-util-position": "^5.0.0",
3408
+ "unist-util-visit": "^5.0.0",
3409
+ "vfile": "^6.0.0"
3410
+ },
3411
+ "funding": {
3412
+ "type": "opencollective",
3413
+ "url": "https://opencollective.com/unified"
3414
+ }
3415
+ },
3416
+ "node_modules/mdast-util-to-markdown": {
3417
+ "version": "2.1.2",
3418
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
3419
+ "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
3420
+ "license": "MIT",
3421
+ "dependencies": {
3422
+ "@types/mdast": "^4.0.0",
3423
+ "@types/unist": "^3.0.0",
3424
+ "longest-streak": "^3.0.0",
3425
+ "mdast-util-phrasing": "^4.0.0",
3426
+ "mdast-util-to-string": "^4.0.0",
3427
+ "micromark-util-classify-character": "^2.0.0",
3428
+ "micromark-util-decode-string": "^2.0.0",
3429
+ "unist-util-visit": "^5.0.0",
3430
+ "zwitch": "^2.0.0"
3431
+ },
3432
+ "funding": {
3433
+ "type": "opencollective",
3434
+ "url": "https://opencollective.com/unified"
3435
+ }
3436
+ },
3437
+ "node_modules/mdast-util-to-string": {
3438
+ "version": "4.0.0",
3439
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
3440
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
3441
+ "license": "MIT",
3442
+ "dependencies": {
3443
+ "@types/mdast": "^4.0.0"
3444
+ },
3445
+ "funding": {
3446
+ "type": "opencollective",
3447
+ "url": "https://opencollective.com/unified"
3448
+ }
3449
+ },
3450
+ "node_modules/micromark": {
3451
+ "version": "4.0.2",
3452
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
3453
+ "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
3454
+ "funding": [
3455
+ {
3456
+ "type": "GitHub Sponsors",
3457
+ "url": "https://github.com/sponsors/unifiedjs"
3458
+ },
3459
+ {
3460
+ "type": "OpenCollective",
3461
+ "url": "https://opencollective.com/unified"
3462
+ }
3463
+ ],
3464
+ "license": "MIT",
3465
+ "dependencies": {
3466
+ "@types/debug": "^4.0.0",
3467
+ "debug": "^4.0.0",
3468
+ "decode-named-character-reference": "^1.0.0",
3469
+ "devlop": "^1.0.0",
3470
+ "micromark-core-commonmark": "^2.0.0",
3471
+ "micromark-factory-space": "^2.0.0",
3472
+ "micromark-util-character": "^2.0.0",
3473
+ "micromark-util-chunked": "^2.0.0",
3474
+ "micromark-util-combine-extensions": "^2.0.0",
3475
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
3476
+ "micromark-util-encode": "^2.0.0",
3477
+ "micromark-util-normalize-identifier": "^2.0.0",
3478
+ "micromark-util-resolve-all": "^2.0.0",
3479
+ "micromark-util-sanitize-uri": "^2.0.0",
3480
+ "micromark-util-subtokenize": "^2.0.0",
3481
+ "micromark-util-symbol": "^2.0.0",
3482
+ "micromark-util-types": "^2.0.0"
3483
+ }
3484
+ },
3485
+ "node_modules/micromark-core-commonmark": {
3486
+ "version": "2.0.3",
3487
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
3488
+ "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
3489
+ "funding": [
3490
+ {
3491
+ "type": "GitHub Sponsors",
3492
+ "url": "https://github.com/sponsors/unifiedjs"
3493
+ },
3494
+ {
3495
+ "type": "OpenCollective",
3496
+ "url": "https://opencollective.com/unified"
3497
+ }
3498
+ ],
3499
+ "license": "MIT",
3500
+ "dependencies": {
3501
+ "decode-named-character-reference": "^1.0.0",
3502
+ "devlop": "^1.0.0",
3503
+ "micromark-factory-destination": "^2.0.0",
3504
+ "micromark-factory-label": "^2.0.0",
3505
+ "micromark-factory-space": "^2.0.0",
3506
+ "micromark-factory-title": "^2.0.0",
3507
+ "micromark-factory-whitespace": "^2.0.0",
3508
+ "micromark-util-character": "^2.0.0",
3509
+ "micromark-util-chunked": "^2.0.0",
3510
+ "micromark-util-classify-character": "^2.0.0",
3511
+ "micromark-util-html-tag-name": "^2.0.0",
3512
+ "micromark-util-normalize-identifier": "^2.0.0",
3513
+ "micromark-util-resolve-all": "^2.0.0",
3514
+ "micromark-util-subtokenize": "^2.0.0",
3515
+ "micromark-util-symbol": "^2.0.0",
3516
+ "micromark-util-types": "^2.0.0"
3517
+ }
3518
+ },
3519
+ "node_modules/micromark-extension-gfm": {
3520
+ "version": "3.0.0",
3521
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
3522
+ "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
3523
+ "license": "MIT",
3524
+ "dependencies": {
3525
+ "micromark-extension-gfm-autolink-literal": "^2.0.0",
3526
+ "micromark-extension-gfm-footnote": "^2.0.0",
3527
+ "micromark-extension-gfm-strikethrough": "^2.0.0",
3528
+ "micromark-extension-gfm-table": "^2.0.0",
3529
+ "micromark-extension-gfm-tagfilter": "^2.0.0",
3530
+ "micromark-extension-gfm-task-list-item": "^2.0.0",
3531
+ "micromark-util-combine-extensions": "^2.0.0",
3532
+ "micromark-util-types": "^2.0.0"
3533
+ },
3534
+ "funding": {
3535
+ "type": "opencollective",
3536
+ "url": "https://opencollective.com/unified"
3537
+ }
3538
+ },
3539
+ "node_modules/micromark-extension-gfm-autolink-literal": {
3540
+ "version": "2.1.0",
3541
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
3542
+ "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
3543
+ "license": "MIT",
3544
+ "dependencies": {
3545
+ "micromark-util-character": "^2.0.0",
3546
+ "micromark-util-sanitize-uri": "^2.0.0",
3547
+ "micromark-util-symbol": "^2.0.0",
3548
+ "micromark-util-types": "^2.0.0"
3549
+ },
3550
+ "funding": {
3551
+ "type": "opencollective",
3552
+ "url": "https://opencollective.com/unified"
3553
+ }
3554
+ },
3555
+ "node_modules/micromark-extension-gfm-footnote": {
3556
+ "version": "2.1.0",
3557
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
3558
+ "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
3559
+ "license": "MIT",
3560
+ "dependencies": {
3561
+ "devlop": "^1.0.0",
3562
+ "micromark-core-commonmark": "^2.0.0",
3563
+ "micromark-factory-space": "^2.0.0",
3564
+ "micromark-util-character": "^2.0.0",
3565
+ "micromark-util-normalize-identifier": "^2.0.0",
3566
+ "micromark-util-sanitize-uri": "^2.0.0",
3567
+ "micromark-util-symbol": "^2.0.0",
3568
+ "micromark-util-types": "^2.0.0"
3569
+ },
3570
+ "funding": {
3571
+ "type": "opencollective",
3572
+ "url": "https://opencollective.com/unified"
3573
+ }
3574
+ },
3575
+ "node_modules/micromark-extension-gfm-strikethrough": {
3576
+ "version": "2.1.0",
3577
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
3578
+ "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
3579
+ "license": "MIT",
3580
+ "dependencies": {
3581
+ "devlop": "^1.0.0",
3582
+ "micromark-util-chunked": "^2.0.0",
3583
+ "micromark-util-classify-character": "^2.0.0",
3584
+ "micromark-util-resolve-all": "^2.0.0",
3585
+ "micromark-util-symbol": "^2.0.0",
3586
+ "micromark-util-types": "^2.0.0"
3587
+ },
3588
+ "funding": {
3589
+ "type": "opencollective",
3590
+ "url": "https://opencollective.com/unified"
3591
+ }
3592
+ },
3593
+ "node_modules/micromark-extension-gfm-table": {
3594
+ "version": "2.1.1",
3595
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
3596
+ "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
3597
+ "license": "MIT",
3598
+ "dependencies": {
3599
+ "devlop": "^1.0.0",
3600
+ "micromark-factory-space": "^2.0.0",
3601
+ "micromark-util-character": "^2.0.0",
3602
+ "micromark-util-symbol": "^2.0.0",
3603
+ "micromark-util-types": "^2.0.0"
3604
+ },
3605
+ "funding": {
3606
+ "type": "opencollective",
3607
+ "url": "https://opencollective.com/unified"
3608
+ }
3609
+ },
3610
+ "node_modules/micromark-extension-gfm-tagfilter": {
3611
+ "version": "2.0.0",
3612
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
3613
+ "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
3614
+ "license": "MIT",
3615
+ "dependencies": {
3616
+ "micromark-util-types": "^2.0.0"
3617
+ },
3618
+ "funding": {
3619
+ "type": "opencollective",
3620
+ "url": "https://opencollective.com/unified"
3621
+ }
3622
+ },
3623
+ "node_modules/micromark-extension-gfm-task-list-item": {
3624
+ "version": "2.1.0",
3625
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
3626
+ "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
3627
+ "license": "MIT",
3628
+ "dependencies": {
3629
+ "devlop": "^1.0.0",
3630
+ "micromark-factory-space": "^2.0.0",
3631
+ "micromark-util-character": "^2.0.0",
3632
+ "micromark-util-symbol": "^2.0.0",
3633
+ "micromark-util-types": "^2.0.0"
3634
+ },
3635
+ "funding": {
3636
+ "type": "opencollective",
3637
+ "url": "https://opencollective.com/unified"
3638
+ }
3639
+ },
3640
+ "node_modules/micromark-factory-destination": {
3641
+ "version": "2.0.1",
3642
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
3643
+ "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
3644
+ "funding": [
3645
+ {
3646
+ "type": "GitHub Sponsors",
3647
+ "url": "https://github.com/sponsors/unifiedjs"
3648
+ },
3649
+ {
3650
+ "type": "OpenCollective",
3651
+ "url": "https://opencollective.com/unified"
3652
+ }
3653
+ ],
3654
+ "license": "MIT",
3655
+ "dependencies": {
3656
+ "micromark-util-character": "^2.0.0",
3657
+ "micromark-util-symbol": "^2.0.0",
3658
+ "micromark-util-types": "^2.0.0"
3659
+ }
3660
+ },
3661
+ "node_modules/micromark-factory-label": {
3662
+ "version": "2.0.1",
3663
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
3664
+ "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
3665
+ "funding": [
3666
+ {
3667
+ "type": "GitHub Sponsors",
3668
+ "url": "https://github.com/sponsors/unifiedjs"
3669
+ },
3670
+ {
3671
+ "type": "OpenCollective",
3672
+ "url": "https://opencollective.com/unified"
3673
+ }
3674
+ ],
3675
+ "license": "MIT",
3676
+ "dependencies": {
3677
+ "devlop": "^1.0.0",
3678
+ "micromark-util-character": "^2.0.0",
3679
+ "micromark-util-symbol": "^2.0.0",
3680
+ "micromark-util-types": "^2.0.0"
3681
+ }
3682
+ },
3683
+ "node_modules/micromark-factory-space": {
3684
+ "version": "2.0.1",
3685
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
3686
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
3687
+ "funding": [
3688
+ {
3689
+ "type": "GitHub Sponsors",
3690
+ "url": "https://github.com/sponsors/unifiedjs"
3691
+ },
3692
+ {
3693
+ "type": "OpenCollective",
3694
+ "url": "https://opencollective.com/unified"
3695
+ }
3696
+ ],
3697
+ "license": "MIT",
3698
+ "dependencies": {
3699
+ "micromark-util-character": "^2.0.0",
3700
+ "micromark-util-types": "^2.0.0"
3701
+ }
3702
+ },
3703
+ "node_modules/micromark-factory-title": {
3704
+ "version": "2.0.1",
3705
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
3706
+ "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
3707
+ "funding": [
3708
+ {
3709
+ "type": "GitHub Sponsors",
3710
+ "url": "https://github.com/sponsors/unifiedjs"
3711
+ },
3712
+ {
3713
+ "type": "OpenCollective",
3714
+ "url": "https://opencollective.com/unified"
3715
+ }
3716
+ ],
3717
+ "license": "MIT",
3718
+ "dependencies": {
3719
+ "micromark-factory-space": "^2.0.0",
3720
+ "micromark-util-character": "^2.0.0",
3721
+ "micromark-util-symbol": "^2.0.0",
3722
+ "micromark-util-types": "^2.0.0"
3723
+ }
3724
+ },
3725
+ "node_modules/micromark-factory-whitespace": {
3726
+ "version": "2.0.1",
3727
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
3728
+ "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
3729
+ "funding": [
3730
+ {
3731
+ "type": "GitHub Sponsors",
3732
+ "url": "https://github.com/sponsors/unifiedjs"
3733
+ },
3734
+ {
3735
+ "type": "OpenCollective",
3736
+ "url": "https://opencollective.com/unified"
3737
+ }
3738
+ ],
3739
+ "license": "MIT",
3740
+ "dependencies": {
3741
+ "micromark-factory-space": "^2.0.0",
3742
+ "micromark-util-character": "^2.0.0",
3743
+ "micromark-util-symbol": "^2.0.0",
3744
+ "micromark-util-types": "^2.0.0"
3745
+ }
3746
+ },
3747
+ "node_modules/micromark-util-character": {
3748
+ "version": "2.1.1",
3749
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
3750
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
3751
+ "funding": [
3752
+ {
3753
+ "type": "GitHub Sponsors",
3754
+ "url": "https://github.com/sponsors/unifiedjs"
3755
+ },
3756
+ {
3757
+ "type": "OpenCollective",
3758
+ "url": "https://opencollective.com/unified"
3759
+ }
3760
+ ],
3761
+ "license": "MIT",
3762
+ "dependencies": {
3763
+ "micromark-util-symbol": "^2.0.0",
3764
+ "micromark-util-types": "^2.0.0"
3765
+ }
3766
+ },
3767
+ "node_modules/micromark-util-chunked": {
3768
+ "version": "2.0.1",
3769
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
3770
+ "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
3771
+ "funding": [
3772
+ {
3773
+ "type": "GitHub Sponsors",
3774
+ "url": "https://github.com/sponsors/unifiedjs"
3775
+ },
3776
+ {
3777
+ "type": "OpenCollective",
3778
+ "url": "https://opencollective.com/unified"
3779
+ }
3780
+ ],
3781
+ "license": "MIT",
3782
+ "dependencies": {
3783
+ "micromark-util-symbol": "^2.0.0"
3784
+ }
3785
+ },
3786
+ "node_modules/micromark-util-classify-character": {
3787
+ "version": "2.0.1",
3788
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
3789
+ "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
3790
+ "funding": [
3791
+ {
3792
+ "type": "GitHub Sponsors",
3793
+ "url": "https://github.com/sponsors/unifiedjs"
3794
+ },
3795
+ {
3796
+ "type": "OpenCollective",
3797
+ "url": "https://opencollective.com/unified"
3798
+ }
3799
+ ],
3800
+ "license": "MIT",
3801
+ "dependencies": {
3802
+ "micromark-util-character": "^2.0.0",
3803
+ "micromark-util-symbol": "^2.0.0",
3804
+ "micromark-util-types": "^2.0.0"
3805
+ }
3806
+ },
3807
+ "node_modules/micromark-util-combine-extensions": {
3808
+ "version": "2.0.1",
3809
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
3810
+ "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
3811
+ "funding": [
3812
+ {
3813
+ "type": "GitHub Sponsors",
3814
+ "url": "https://github.com/sponsors/unifiedjs"
3815
+ },
3816
+ {
3817
+ "type": "OpenCollective",
3818
+ "url": "https://opencollective.com/unified"
3819
+ }
3820
+ ],
3821
+ "license": "MIT",
3822
+ "dependencies": {
3823
+ "micromark-util-chunked": "^2.0.0",
3824
+ "micromark-util-types": "^2.0.0"
3825
+ }
3826
+ },
3827
+ "node_modules/micromark-util-decode-numeric-character-reference": {
3828
+ "version": "2.0.2",
3829
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
3830
+ "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
3831
+ "funding": [
3832
+ {
3833
+ "type": "GitHub Sponsors",
3834
+ "url": "https://github.com/sponsors/unifiedjs"
3835
+ },
3836
+ {
3837
+ "type": "OpenCollective",
3838
+ "url": "https://opencollective.com/unified"
3839
+ }
3840
+ ],
3841
+ "license": "MIT",
3842
+ "dependencies": {
3843
+ "micromark-util-symbol": "^2.0.0"
3844
+ }
3845
+ },
3846
+ "node_modules/micromark-util-decode-string": {
3847
+ "version": "2.0.1",
3848
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
3849
+ "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
3850
+ "funding": [
3851
+ {
3852
+ "type": "GitHub Sponsors",
3853
+ "url": "https://github.com/sponsors/unifiedjs"
3854
+ },
3855
+ {
3856
+ "type": "OpenCollective",
3857
+ "url": "https://opencollective.com/unified"
3858
+ }
3859
+ ],
3860
+ "license": "MIT",
3861
+ "dependencies": {
3862
+ "decode-named-character-reference": "^1.0.0",
3863
+ "micromark-util-character": "^2.0.0",
3864
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
3865
+ "micromark-util-symbol": "^2.0.0"
3866
+ }
3867
+ },
3868
+ "node_modules/micromark-util-encode": {
3869
+ "version": "2.0.1",
3870
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
3871
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
3872
+ "funding": [
3873
+ {
3874
+ "type": "GitHub Sponsors",
3875
+ "url": "https://github.com/sponsors/unifiedjs"
3876
+ },
3877
+ {
3878
+ "type": "OpenCollective",
3879
+ "url": "https://opencollective.com/unified"
3880
+ }
3881
+ ],
3882
+ "license": "MIT"
3883
+ },
3884
+ "node_modules/micromark-util-html-tag-name": {
3885
+ "version": "2.0.1",
3886
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
3887
+ "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
3888
+ "funding": [
3889
+ {
3890
+ "type": "GitHub Sponsors",
3891
+ "url": "https://github.com/sponsors/unifiedjs"
3892
+ },
3893
+ {
3894
+ "type": "OpenCollective",
3895
+ "url": "https://opencollective.com/unified"
3896
+ }
3897
+ ],
3898
+ "license": "MIT"
3899
+ },
3900
+ "node_modules/micromark-util-normalize-identifier": {
3901
+ "version": "2.0.1",
3902
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
3903
+ "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
3904
+ "funding": [
3905
+ {
3906
+ "type": "GitHub Sponsors",
3907
+ "url": "https://github.com/sponsors/unifiedjs"
3908
+ },
3909
+ {
3910
+ "type": "OpenCollective",
3911
+ "url": "https://opencollective.com/unified"
3912
+ }
3913
+ ],
3914
+ "license": "MIT",
3915
+ "dependencies": {
3916
+ "micromark-util-symbol": "^2.0.0"
3917
+ }
3918
+ },
3919
+ "node_modules/micromark-util-resolve-all": {
3920
+ "version": "2.0.1",
3921
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
3922
+ "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
3923
+ "funding": [
3924
+ {
3925
+ "type": "GitHub Sponsors",
3926
+ "url": "https://github.com/sponsors/unifiedjs"
3927
+ },
3928
+ {
3929
+ "type": "OpenCollective",
3930
+ "url": "https://opencollective.com/unified"
3931
+ }
3932
+ ],
3933
+ "license": "MIT",
3934
+ "dependencies": {
3935
+ "micromark-util-types": "^2.0.0"
3936
+ }
3937
+ },
3938
+ "node_modules/micromark-util-sanitize-uri": {
3939
+ "version": "2.0.1",
3940
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
3941
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
3942
+ "funding": [
3943
+ {
3944
+ "type": "GitHub Sponsors",
3945
+ "url": "https://github.com/sponsors/unifiedjs"
3946
+ },
3947
+ {
3948
+ "type": "OpenCollective",
3949
+ "url": "https://opencollective.com/unified"
3950
+ }
3951
+ ],
3952
+ "license": "MIT",
3953
+ "dependencies": {
3954
+ "micromark-util-character": "^2.0.0",
3955
+ "micromark-util-encode": "^2.0.0",
3956
+ "micromark-util-symbol": "^2.0.0"
3957
+ }
3958
+ },
3959
+ "node_modules/micromark-util-subtokenize": {
3960
+ "version": "2.1.0",
3961
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
3962
+ "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
3963
+ "funding": [
3964
+ {
3965
+ "type": "GitHub Sponsors",
3966
+ "url": "https://github.com/sponsors/unifiedjs"
3967
+ },
3968
+ {
3969
+ "type": "OpenCollective",
3970
+ "url": "https://opencollective.com/unified"
3971
+ }
3972
+ ],
3973
+ "license": "MIT",
3974
+ "dependencies": {
3975
+ "devlop": "^1.0.0",
3976
+ "micromark-util-chunked": "^2.0.0",
3977
+ "micromark-util-symbol": "^2.0.0",
3978
+ "micromark-util-types": "^2.0.0"
3979
+ }
3980
+ },
3981
+ "node_modules/micromark-util-symbol": {
3982
+ "version": "2.0.1",
3983
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
3984
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
3985
+ "funding": [
3986
+ {
3987
+ "type": "GitHub Sponsors",
3988
+ "url": "https://github.com/sponsors/unifiedjs"
3989
+ },
3990
+ {
3991
+ "type": "OpenCollective",
3992
+ "url": "https://opencollective.com/unified"
3993
+ }
3994
+ ],
3995
+ "license": "MIT"
3996
+ },
3997
+ "node_modules/micromark-util-types": {
3998
+ "version": "2.0.2",
3999
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
4000
+ "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
4001
+ "funding": [
4002
+ {
4003
+ "type": "GitHub Sponsors",
4004
+ "url": "https://github.com/sponsors/unifiedjs"
4005
+ },
4006
+ {
4007
+ "type": "OpenCollective",
4008
+ "url": "https://opencollective.com/unified"
4009
+ }
4010
+ ],
4011
+ "license": "MIT"
4012
+ },
4013
+ "node_modules/mime-db": {
4014
+ "version": "1.52.0",
4015
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
4016
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
4017
+ "license": "MIT",
4018
+ "engines": {
4019
+ "node": ">= 0.6"
4020
+ }
4021
+ },
4022
+ "node_modules/mime-types": {
4023
+ "version": "2.1.35",
4024
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
4025
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
4026
+ "license": "MIT",
4027
+ "dependencies": {
4028
+ "mime-db": "1.52.0"
4029
+ },
4030
+ "engines": {
4031
+ "node": ">= 0.6"
4032
+ }
4033
+ },
4034
+ "node_modules/minimatch": {
4035
+ "version": "10.2.5",
4036
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
4037
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
4038
+ "dev": true,
4039
+ "license": "BlueOak-1.0.0",
4040
+ "dependencies": {
4041
+ "brace-expansion": "^5.0.5"
4042
+ },
4043
+ "engines": {
4044
+ "node": "18 || 20 || >=22"
4045
+ },
4046
+ "funding": {
4047
+ "url": "https://github.com/sponsors/isaacs"
4048
+ }
4049
+ },
4050
+ "node_modules/motion-dom": {
4051
+ "version": "12.38.0",
4052
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.38.0.tgz",
4053
+ "integrity": "sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==",
4054
+ "license": "MIT",
4055
+ "dependencies": {
4056
+ "motion-utils": "^12.36.0"
4057
+ }
4058
+ },
4059
+ "node_modules/motion-utils": {
4060
+ "version": "12.36.0",
4061
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.36.0.tgz",
4062
+ "integrity": "sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==",
4063
+ "license": "MIT"
4064
+ },
4065
+ "node_modules/ms": {
4066
+ "version": "2.1.3",
4067
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
4068
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
4069
+ "license": "MIT"
4070
+ },
4071
+ "node_modules/nanoid": {
4072
+ "version": "3.3.11",
4073
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
4074
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
4075
+ "dev": true,
4076
+ "funding": [
4077
+ {
4078
+ "type": "github",
4079
+ "url": "https://github.com/sponsors/ai"
4080
+ }
4081
+ ],
4082
+ "license": "MIT",
4083
+ "bin": {
4084
+ "nanoid": "bin/nanoid.cjs"
4085
+ },
4086
+ "engines": {
4087
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
4088
+ }
4089
+ },
4090
+ "node_modules/natural-compare": {
4091
+ "version": "1.4.0",
4092
  "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
4093
  "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
4094
  "dev": true,
 
4151
  "url": "https://github.com/sponsors/sindresorhus"
4152
  }
4153
  },
4154
+ "node_modules/parse-entities": {
4155
+ "version": "4.0.2",
4156
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
4157
+ "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
4158
+ "license": "MIT",
4159
+ "dependencies": {
4160
+ "@types/unist": "^2.0.0",
4161
+ "character-entities-legacy": "^3.0.0",
4162
+ "character-reference-invalid": "^2.0.0",
4163
+ "decode-named-character-reference": "^1.0.0",
4164
+ "is-alphanumerical": "^2.0.0",
4165
+ "is-decimal": "^2.0.0",
4166
+ "is-hexadecimal": "^2.0.0"
4167
+ },
4168
+ "funding": {
4169
+ "type": "github",
4170
+ "url": "https://github.com/sponsors/wooorm"
4171
+ }
4172
+ },
4173
+ "node_modules/parse-entities/node_modules/@types/unist": {
4174
+ "version": "2.0.11",
4175
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
4176
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
4177
+ "license": "MIT"
4178
+ },
4179
  "node_modules/path-exists": {
4180
  "version": "4.0.0",
4181
  "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
 
4245
  "node": "^10 || ^12 || >=14"
4246
  }
4247
  },
4248
+ "node_modules/postcss-selector-parser": {
4249
+ "version": "6.0.10",
4250
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
4251
+ "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
4252
+ "license": "MIT",
4253
+ "dependencies": {
4254
+ "cssesc": "^3.0.0",
4255
+ "util-deprecate": "^1.0.2"
4256
+ },
4257
+ "engines": {
4258
+ "node": ">=4"
4259
+ }
4260
+ },
4261
  "node_modules/prelude-ls": {
4262
  "version": "1.2.1",
4263
  "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
 
4268
  "node": ">= 0.8.0"
4269
  }
4270
  },
4271
+ "node_modules/property-information": {
4272
+ "version": "7.1.0",
4273
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
4274
+ "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
4275
+ "license": "MIT",
4276
+ "funding": {
4277
+ "type": "github",
4278
+ "url": "https://github.com/sponsors/wooorm"
4279
+ }
4280
+ },
4281
  "node_modules/proxy-from-env": {
4282
  "version": "2.1.0",
4283
  "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
 
4318
  "react": "^19.2.5"
4319
  }
4320
  },
4321
+ "node_modules/react-markdown": {
4322
+ "version": "10.1.0",
4323
+ "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz",
4324
+ "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==",
4325
+ "license": "MIT",
4326
+ "dependencies": {
4327
+ "@types/hast": "^3.0.0",
4328
+ "@types/mdast": "^4.0.0",
4329
+ "devlop": "^1.0.0",
4330
+ "hast-util-to-jsx-runtime": "^2.0.0",
4331
+ "html-url-attributes": "^3.0.0",
4332
+ "mdast-util-to-hast": "^13.0.0",
4333
+ "remark-parse": "^11.0.0",
4334
+ "remark-rehype": "^11.0.0",
4335
+ "unified": "^11.0.0",
4336
+ "unist-util-visit": "^5.0.0",
4337
+ "vfile": "^6.0.0"
4338
+ },
4339
+ "funding": {
4340
+ "type": "opencollective",
4341
+ "url": "https://opencollective.com/unified"
4342
+ },
4343
+ "peerDependencies": {
4344
+ "@types/react": ">=18",
4345
+ "react": ">=18"
4346
+ }
4347
+ },
4348
+ "node_modules/remark-gfm": {
4349
+ "version": "4.0.1",
4350
+ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz",
4351
+ "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
4352
+ "license": "MIT",
4353
+ "dependencies": {
4354
+ "@types/mdast": "^4.0.0",
4355
+ "mdast-util-gfm": "^3.0.0",
4356
+ "micromark-extension-gfm": "^3.0.0",
4357
+ "remark-parse": "^11.0.0",
4358
+ "remark-stringify": "^11.0.0",
4359
+ "unified": "^11.0.0"
4360
+ },
4361
+ "funding": {
4362
+ "type": "opencollective",
4363
+ "url": "https://opencollective.com/unified"
4364
+ }
4365
+ },
4366
+ "node_modules/remark-parse": {
4367
+ "version": "11.0.0",
4368
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
4369
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
4370
+ "license": "MIT",
4371
+ "dependencies": {
4372
+ "@types/mdast": "^4.0.0",
4373
+ "mdast-util-from-markdown": "^2.0.0",
4374
+ "micromark-util-types": "^2.0.0",
4375
+ "unified": "^11.0.0"
4376
+ },
4377
+ "funding": {
4378
+ "type": "opencollective",
4379
+ "url": "https://opencollective.com/unified"
4380
+ }
4381
+ },
4382
+ "node_modules/remark-rehype": {
4383
+ "version": "11.1.2",
4384
+ "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz",
4385
+ "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==",
4386
+ "license": "MIT",
4387
+ "dependencies": {
4388
+ "@types/hast": "^3.0.0",
4389
+ "@types/mdast": "^4.0.0",
4390
+ "mdast-util-to-hast": "^13.0.0",
4391
+ "unified": "^11.0.0",
4392
+ "vfile": "^6.0.0"
4393
+ },
4394
+ "funding": {
4395
+ "type": "opencollective",
4396
+ "url": "https://opencollective.com/unified"
4397
+ }
4398
+ },
4399
+ "node_modules/remark-stringify": {
4400
+ "version": "11.0.0",
4401
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
4402
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
4403
+ "license": "MIT",
4404
+ "dependencies": {
4405
+ "@types/mdast": "^4.0.0",
4406
+ "mdast-util-to-markdown": "^2.0.0",
4407
+ "unified": "^11.0.0"
4408
+ },
4409
+ "funding": {
4410
+ "type": "opencollective",
4411
+ "url": "https://opencollective.com/unified"
4412
+ }
4413
+ },
4414
  "node_modules/rolldown": {
4415
  "version": "1.0.0-rc.17",
4416
  "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.17.tgz",
 
4501
  "node": ">=0.10.0"
4502
  }
4503
  },
4504
+ "node_modules/space-separated-tokens": {
4505
+ "version": "2.0.2",
4506
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
4507
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
4508
+ "license": "MIT",
4509
+ "funding": {
4510
+ "type": "github",
4511
+ "url": "https://github.com/sponsors/wooorm"
4512
+ }
4513
+ },
4514
+ "node_modules/stringify-entities": {
4515
+ "version": "4.0.4",
4516
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
4517
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
4518
+ "license": "MIT",
4519
+ "dependencies": {
4520
+ "character-entities-html4": "^2.0.0",
4521
+ "character-entities-legacy": "^3.0.0"
4522
+ },
4523
+ "funding": {
4524
+ "type": "github",
4525
+ "url": "https://github.com/sponsors/wooorm"
4526
+ }
4527
+ },
4528
+ "node_modules/style-to-js": {
4529
+ "version": "1.1.21",
4530
+ "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz",
4531
+ "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==",
4532
+ "license": "MIT",
4533
+ "dependencies": {
4534
+ "style-to-object": "1.0.14"
4535
+ }
4536
+ },
4537
+ "node_modules/style-to-object": {
4538
+ "version": "1.0.14",
4539
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz",
4540
+ "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==",
4541
+ "license": "MIT",
4542
+ "dependencies": {
4543
+ "inline-style-parser": "0.2.7"
4544
+ }
4545
+ },
4546
  "node_modules/tailwind-merge": {
4547
  "version": "3.5.0",
4548
  "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.5.0.tgz",
 
4557
  "version": "4.2.4",
4558
  "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz",
4559
  "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==",
 
4560
  "license": "MIT"
4561
  },
4562
  "node_modules/tapable": {
 
4590
  "url": "https://github.com/sponsors/SuperchupuDev"
4591
  }
4592
  },
4593
+ "node_modules/trim-lines": {
4594
+ "version": "3.0.1",
4595
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
4596
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
4597
+ "license": "MIT",
4598
+ "funding": {
4599
+ "type": "github",
4600
+ "url": "https://github.com/sponsors/wooorm"
4601
+ }
4602
+ },
4603
+ "node_modules/trough": {
4604
+ "version": "2.2.0",
4605
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
4606
+ "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
4607
+ "license": "MIT",
4608
+ "funding": {
4609
+ "type": "github",
4610
+ "url": "https://github.com/sponsors/wooorm"
4611
+ }
4612
+ },
4613
  "node_modules/ts-api-utils": {
4614
  "version": "2.5.0",
4615
  "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz",
 
4687
  "dev": true,
4688
  "license": "MIT"
4689
  },
4690
+ "node_modules/unified": {
4691
+ "version": "11.0.5",
4692
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
4693
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
4694
+ "license": "MIT",
4695
+ "dependencies": {
4696
+ "@types/unist": "^3.0.0",
4697
+ "bail": "^2.0.0",
4698
+ "devlop": "^1.0.0",
4699
+ "extend": "^3.0.0",
4700
+ "is-plain-obj": "^4.0.0",
4701
+ "trough": "^2.0.0",
4702
+ "vfile": "^6.0.0"
4703
+ },
4704
+ "funding": {
4705
+ "type": "opencollective",
4706
+ "url": "https://opencollective.com/unified"
4707
+ }
4708
+ },
4709
+ "node_modules/unist-util-is": {
4710
+ "version": "6.0.1",
4711
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
4712
+ "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
4713
+ "license": "MIT",
4714
+ "dependencies": {
4715
+ "@types/unist": "^3.0.0"
4716
+ },
4717
+ "funding": {
4718
+ "type": "opencollective",
4719
+ "url": "https://opencollective.com/unified"
4720
+ }
4721
+ },
4722
+ "node_modules/unist-util-position": {
4723
+ "version": "5.0.0",
4724
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
4725
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
4726
+ "license": "MIT",
4727
+ "dependencies": {
4728
+ "@types/unist": "^3.0.0"
4729
+ },
4730
+ "funding": {
4731
+ "type": "opencollective",
4732
+ "url": "https://opencollective.com/unified"
4733
+ }
4734
+ },
4735
+ "node_modules/unist-util-stringify-position": {
4736
+ "version": "4.0.0",
4737
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
4738
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
4739
+ "license": "MIT",
4740
+ "dependencies": {
4741
+ "@types/unist": "^3.0.0"
4742
+ },
4743
+ "funding": {
4744
+ "type": "opencollective",
4745
+ "url": "https://opencollective.com/unified"
4746
+ }
4747
+ },
4748
+ "node_modules/unist-util-visit": {
4749
+ "version": "5.1.0",
4750
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz",
4751
+ "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==",
4752
+ "license": "MIT",
4753
+ "dependencies": {
4754
+ "@types/unist": "^3.0.0",
4755
+ "unist-util-is": "^6.0.0",
4756
+ "unist-util-visit-parents": "^6.0.0"
4757
+ },
4758
+ "funding": {
4759
+ "type": "opencollective",
4760
+ "url": "https://opencollective.com/unified"
4761
+ }
4762
+ },
4763
+ "node_modules/unist-util-visit-parents": {
4764
+ "version": "6.0.2",
4765
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
4766
+ "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
4767
+ "license": "MIT",
4768
+ "dependencies": {
4769
+ "@types/unist": "^3.0.0",
4770
+ "unist-util-is": "^6.0.0"
4771
+ },
4772
+ "funding": {
4773
+ "type": "opencollective",
4774
+ "url": "https://opencollective.com/unified"
4775
+ }
4776
+ },
4777
  "node_modules/update-browserslist-db": {
4778
  "version": "1.2.3",
4779
  "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
 
4815
  "punycode": "^2.1.0"
4816
  }
4817
  },
4818
+ "node_modules/util-deprecate": {
4819
+ "version": "1.0.2",
4820
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4821
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
4822
+ "license": "MIT"
4823
+ },
4824
+ "node_modules/vfile": {
4825
+ "version": "6.0.3",
4826
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
4827
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
4828
+ "license": "MIT",
4829
+ "dependencies": {
4830
+ "@types/unist": "^3.0.0",
4831
+ "vfile-message": "^4.0.0"
4832
+ },
4833
+ "funding": {
4834
+ "type": "opencollective",
4835
+ "url": "https://opencollective.com/unified"
4836
+ }
4837
+ },
4838
+ "node_modules/vfile-message": {
4839
+ "version": "4.0.3",
4840
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
4841
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
4842
+ "license": "MIT",
4843
+ "dependencies": {
4844
+ "@types/unist": "^3.0.0",
4845
+ "unist-util-stringify-position": "^4.0.0"
4846
+ },
4847
+ "funding": {
4848
+ "type": "opencollective",
4849
+ "url": "https://opencollective.com/unified"
4850
+ }
4851
+ },
4852
  "node_modules/vite": {
4853
  "version": "8.0.10",
4854
  "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.10.tgz",
 
5024
  "optional": true
5025
  }
5026
  }
5027
+ },
5028
+ "node_modules/zwitch": {
5029
+ "version": "2.0.4",
5030
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
5031
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
5032
+ "license": "MIT",
5033
+ "funding": {
5034
+ "type": "github",
5035
+ "url": "https://github.com/sponsors/wooorm"
5036
+ }
5037
  }
5038
  }
5039
  }
webapp/tipitaka-web/package.json CHANGED
@@ -10,6 +10,7 @@
10
  "preview": "vite preview"
11
  },
12
  "dependencies": {
 
13
  "@tanstack/react-query": "^5.100.6",
14
  "axios": "^1.15.2",
15
  "clsx": "^2.1.1",
@@ -17,6 +18,8 @@
17
  "lucide-react": "^1.12.0",
18
  "react": "^19.2.5",
19
  "react-dom": "^19.2.5",
 
 
20
  "tailwind-merge": "^3.5.0",
21
  "zustand": "^5.0.12"
22
  },
 
10
  "preview": "vite preview"
11
  },
12
  "dependencies": {
13
+ "@tailwindcss/typography": "^0.5.19",
14
  "@tanstack/react-query": "^5.100.6",
15
  "axios": "^1.15.2",
16
  "clsx": "^2.1.1",
 
18
  "lucide-react": "^1.12.0",
19
  "react": "^19.2.5",
20
  "react-dom": "^19.2.5",
21
+ "react-markdown": "^10.1.0",
22
+ "remark-gfm": "^4.0.1",
23
  "tailwind-merge": "^3.5.0",
24
  "zustand": "^5.0.12"
25
  },
webapp/tipitaka-web/src/components/ai/AIPopup.tsx CHANGED
@@ -1,4 +1,6 @@
1
  import React, { useState, useRef, useEffect, useCallback } from 'react';
 
 
2
  import { useAIStore } from '../../stores/aiStore';
3
  import { useReaderStore, useThemeStore } from '../../stores/appStore';
4
  import { X, Send, Sparkles, Trash2, Zap, Brain, Maximize2, ChevronLeft, BookOpen, Minimize2 } from 'lucide-react';
@@ -180,8 +182,12 @@ const AIPopup: React.FC = () => {
180
  {messages[expandedIndex].thinking}
181
  </div>
182
  )}
183
- <div className="text-lg md:text-xl leading-relaxed whitespace-pre-wrap font-serif">
184
- {messages[expandedIndex]?.content}
 
 
 
 
185
  </div>
186
 
187
  {/* Progress indicator or metadata if needed */}
@@ -363,8 +369,12 @@ const AIPopup: React.FC = () => {
363
  {msg.thinking}
364
  </div>
365
  )}
366
- <div className="whitespace-pre-wrap leading-relaxed">
367
- {msg.content || (isStreaming && i === messages.length - 1 ? '...' : '')}
 
 
 
 
368
  </div>
369
  </div>
370
  </div>
 
1
  import React, { useState, useRef, useEffect, useCallback } from 'react';
2
+ import ReactMarkdown from 'react-markdown';
3
+ import remarkGfm from 'remark-gfm';
4
  import { useAIStore } from '../../stores/aiStore';
5
  import { useReaderStore, useThemeStore } from '../../stores/appStore';
6
  import { X, Send, Sparkles, Trash2, Zap, Brain, Maximize2, ChevronLeft, BookOpen, Minimize2 } from 'lucide-react';
 
182
  {messages[expandedIndex].thinking}
183
  </div>
184
  )}
185
+ <div className="text-lg md:text-xl leading-relaxed font-serif prose prose-lg max-w-none prose-headings:text-inherit prose-headings:font-bold prose-headings:mt-4 prose-headings:mb-2 prose-p:my-2 prose-ul:my-2 prose-li:my-1 prose-table:text-sm prose-table:border-collapse prose-th:border prose-th:border-[#c8860a]/30 prose-th:bg-[#c8860a]/10 prose-th:px-3 prose-th:py-1.5 prose-td:border prose-td:border-[#c8860a]/20 prose-td:px-3 prose-td:py-1.5 prose-code:bg-[#c8860a]/10 prose-code:px-1.5 prose-code:rounded prose-pre:bg-black/20 prose-pre:rounded-xl prose-pre:p-4 prose-pre:text-sm prose-strong:text-inherit prose-a:text-[#c8860a]">
186
+ {messages[expandedIndex]?.content ? (
187
+ <ReactMarkdown remarkPlugins={[remarkGfm]}>
188
+ {messages[expandedIndex].content}
189
+ </ReactMarkdown>
190
+ ) : null}
191
  </div>
192
 
193
  {/* Progress indicator or metadata if needed */}
 
369
  {msg.thinking}
370
  </div>
371
  )}
372
+ <div className="prose prose-sm max-w-none prose-headings:text-inherit prose-headings:font-bold prose-headings:mt-3 prose-headings:mb-1 prose-p:my-1 prose-ul:my-1 prose-li:my-0.5 prose-table:text-xs prose-table:border-collapse prose-th:border prose-th:border-[#c8860a]/30 prose-th:bg-[#c8860a]/10 prose-th:px-2 prose-th:py-1 prose-td:border prose-td:border-[#c8860a]/20 prose-td:px-2 prose-td:py-1 prose-code:bg-[#c8860a]/10 prose-code:px-1 prose-code:rounded prose-pre:bg-black/20 prose-pre:rounded-xl prose-pre:p-3 prose-pre:text-xs prose-strong:text-inherit prose-a:text-[#c8860a] leading-relaxed">
373
+ {msg.content || (isStreaming && i === messages.length - 1 ? '...' : '') ? (
374
+ <ReactMarkdown remarkPlugins={[remarkGfm]}>
375
+ {msg.content || (isStreaming && i === messages.length - 1 ? '...' : '')}
376
+ </ReactMarkdown>
377
+ ) : null}
378
  </div>
379
  </div>
380
  </div>
webapp/tipitaka-web/src/index.css CHANGED
@@ -1,4 +1,5 @@
1
  @import "tailwindcss";
 
2
 
3
  @theme {
4
  --color-sacred-gold: #D4AF37;
 
1
  @import "tailwindcss";
2
+ @plugin "@tailwindcss/typography";
3
 
4
  @theme {
5
  --color-sacred-gold: #D4AF37;