@itsmrtr/bunkoshelf 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1115) hide show
  1. package/README.md +0 -9
  2. package/dist/.next/BUILD_ID +1 -1
  3. package/dist/.next/app-path-routes-manifest.json +7 -0
  4. package/dist/.next/build-manifest.json +5 -5
  5. package/dist/.next/prerender-manifest.json +1014 -187
  6. package/dist/.next/routes-manifest.json +199 -0
  7. package/dist/.next/server/app/[lang]/books/page/build-manifest.json +2 -2
  8. package/dist/.next/server/app/[lang]/books/page/server-reference-manifest.json +20 -8
  9. package/dist/.next/server/app/[lang]/books/page.js +7 -7
  10. package/dist/.next/server/app/[lang]/books/page.js.nft.json +1 -1
  11. package/dist/.next/server/app/[lang]/books/page_client-reference-manifest.js +1 -1
  12. package/dist/.next/server/app/[lang]/books.meta +2 -2
  13. package/dist/.next/server/app/[lang]/books.segments/$d$lang/books/__PAGE__.segment.rsc +1 -1
  14. package/dist/.next/server/app/[lang]/books.segments/$d$lang/books.segment.rsc +1 -1
  15. package/dist/.next/server/app/[lang]/books.segments/$d$lang.segment.rsc +2 -2
  16. package/dist/.next/server/app/[lang]/books.segments/_full.segment.rsc +2 -2
  17. package/dist/.next/server/app/[lang]/books.segments/_head.segment.rsc +1 -1
  18. package/dist/.next/server/app/[lang]/books.segments/_index.segment.rsc +1 -1
  19. package/dist/.next/server/app/[lang]/books.segments/_tree.segment.rsc +2 -2
  20. package/dist/.next/server/app/[lang]/favorites/books/page/build-manifest.json +2 -2
  21. package/dist/.next/server/app/[lang]/favorites/books/page/server-reference-manifest.json +20 -8
  22. package/dist/.next/server/app/[lang]/favorites/books/page.js +8 -8
  23. package/dist/.next/server/app/[lang]/favorites/books/page.js.nft.json +1 -1
  24. package/dist/.next/server/app/[lang]/favorites/books/page_client-reference-manifest.js +1 -1
  25. package/dist/.next/server/app/[lang]/favorites/books.meta +2 -2
  26. package/dist/.next/server/app/[lang]/favorites/books.segments/$d$lang/favorites/books/__PAGE__.segment.rsc +1 -1
  27. package/dist/.next/server/app/[lang]/favorites/books.segments/$d$lang/favorites/books.segment.rsc +1 -1
  28. package/dist/.next/server/app/[lang]/favorites/books.segments/$d$lang/favorites.segment.rsc +1 -1
  29. package/dist/.next/server/app/[lang]/favorites/books.segments/$d$lang.segment.rsc +2 -2
  30. package/dist/.next/server/app/[lang]/favorites/books.segments/_full.segment.rsc +2 -2
  31. package/dist/.next/server/app/[lang]/favorites/books.segments/_head.segment.rsc +1 -1
  32. package/dist/.next/server/app/[lang]/favorites/books.segments/_index.segment.rsc +1 -1
  33. package/dist/.next/server/app/[lang]/favorites/books.segments/_tree.segment.rsc +2 -2
  34. package/dist/.next/server/app/[lang]/favorites/others/page/app-paths-manifest.json +3 -0
  35. package/dist/.next/server/app/[lang]/favorites/others/page/build-manifest.json +19 -0
  36. package/dist/.next/server/app/[lang]/favorites/others/page/next-font-manifest.json +12 -0
  37. package/dist/.next/server/app/[lang]/favorites/others/page/react-loadable-manifest.json +1 -0
  38. package/dist/.next/server/app/[lang]/favorites/others/page/server-reference-manifest.json +125 -0
  39. package/dist/.next/server/app/[lang]/favorites/others/page.js +22 -0
  40. package/dist/.next/server/app/[lang]/favorites/others/page.js.map +5 -0
  41. package/dist/.next/server/app/[lang]/favorites/others/page.js.nft.json +1 -0
  42. package/dist/.next/server/app/[lang]/favorites/others/page_client-reference-manifest.js +3 -0
  43. package/dist/.next/server/app/[lang]/favorites/others.html +0 -0
  44. package/dist/.next/server/app/[lang]/favorites/others.meta +20 -0
  45. package/dist/.next/server/app/[lang]/favorites/others.segments/$d$lang/favorites/others/__PAGE__.segment.rsc +6 -0
  46. package/dist/.next/server/app/[lang]/favorites/others.segments/$d$lang/favorites/others.segment.rsc +5 -0
  47. package/dist/.next/server/app/[lang]/favorites/others.segments/$d$lang/favorites.segment.rsc +3 -0
  48. package/dist/.next/server/app/[lang]/favorites/others.segments/$d$lang.segment.rsc +4 -0
  49. package/dist/.next/server/app/[lang]/favorites/others.segments/_full.segment.rsc +27 -0
  50. package/dist/.next/server/app/[lang]/favorites/others.segments/_head.segment.rsc +7 -0
  51. package/dist/.next/server/app/[lang]/favorites/others.segments/_index.segment.rsc +5 -0
  52. package/dist/.next/server/app/[lang]/favorites/others.segments/_tree.segment.rsc +5 -0
  53. package/dist/.next/server/app/[lang]/favorites/page/build-manifest.json +2 -2
  54. package/dist/.next/server/app/[lang]/favorites/page/server-reference-manifest.json +32 -44
  55. package/dist/.next/server/app/[lang]/favorites/page.js +9 -12
  56. package/dist/.next/server/app/[lang]/favorites/page.js.nft.json +1 -1
  57. package/dist/.next/server/app/[lang]/favorites/page_client-reference-manifest.js +1 -1
  58. package/dist/.next/server/app/[lang]/favorites.meta +2 -2
  59. package/dist/.next/server/app/[lang]/favorites.segments/$d$lang/favorites/__PAGE__.segment.rsc +1 -1
  60. package/dist/.next/server/app/[lang]/favorites.segments/$d$lang/favorites.segment.rsc +1 -1
  61. package/dist/.next/server/app/[lang]/favorites.segments/$d$lang.segment.rsc +2 -2
  62. package/dist/.next/server/app/[lang]/favorites.segments/_full.segment.rsc +2 -2
  63. package/dist/.next/server/app/[lang]/favorites.segments/_head.segment.rsc +1 -1
  64. package/dist/.next/server/app/[lang]/favorites.segments/_index.segment.rsc +1 -1
  65. package/dist/.next/server/app/[lang]/favorites.segments/_tree.segment.rsc +2 -2
  66. package/dist/.next/server/app/[lang]/login/page/build-manifest.json +2 -2
  67. package/dist/.next/server/app/[lang]/login/page/server-reference-manifest.json +22 -10
  68. package/dist/.next/server/app/[lang]/login/page.js +8 -8
  69. package/dist/.next/server/app/[lang]/login/page.js.nft.json +1 -1
  70. package/dist/.next/server/app/[lang]/login/page_client-reference-manifest.js +1 -1
  71. package/dist/.next/server/app/[lang]/login.meta +2 -2
  72. package/dist/.next/server/app/[lang]/login.segments/$d$lang/login/__PAGE__.segment.rsc +2 -2
  73. package/dist/.next/server/app/[lang]/login.segments/$d$lang/login.segment.rsc +1 -1
  74. package/dist/.next/server/app/[lang]/login.segments/$d$lang.segment.rsc +2 -2
  75. package/dist/.next/server/app/[lang]/login.segments/_full.segment.rsc +3 -3
  76. package/dist/.next/server/app/[lang]/login.segments/_head.segment.rsc +1 -1
  77. package/dist/.next/server/app/[lang]/login.segments/_index.segment.rsc +1 -1
  78. package/dist/.next/server/app/[lang]/login.segments/_tree.segment.rsc +2 -2
  79. package/dist/.next/server/app/[lang]/manga/[series]/page/build-manifest.json +2 -2
  80. package/dist/.next/server/app/[lang]/manga/[series]/page/server-reference-manifest.json +50 -62
  81. package/dist/.next/server/app/[lang]/manga/[series]/page.js +12 -12
  82. package/dist/.next/server/app/[lang]/manga/[series]/page.js.nft.json +1 -1
  83. package/dist/.next/server/app/[lang]/manga/[series]/page_client-reference-manifest.js +1 -1
  84. package/dist/.next/server/app/[lang]/manga/[series].meta +2 -2
  85. package/dist/.next/server/app/[lang]/manga/[series].segments/$d$lang/manga/$d$series/__PAGE__.segment.rsc +1 -1
  86. package/dist/.next/server/app/[lang]/manga/[series].segments/$d$lang/manga/$d$series.segment.rsc +1 -1
  87. package/dist/.next/server/app/[lang]/manga/[series].segments/$d$lang/manga.segment.rsc +1 -1
  88. package/dist/.next/server/app/[lang]/manga/[series].segments/$d$lang.segment.rsc +2 -2
  89. package/dist/.next/server/app/[lang]/manga/[series].segments/_full.segment.rsc +2 -2
  90. package/dist/.next/server/app/[lang]/manga/[series].segments/_head.segment.rsc +1 -1
  91. package/dist/.next/server/app/[lang]/manga/[series].segments/_index.segment.rsc +1 -1
  92. package/dist/.next/server/app/[lang]/manga/[series].segments/_tree.segment.rsc +2 -2
  93. package/dist/.next/server/app/[lang]/manga/page/build-manifest.json +2 -2
  94. package/dist/.next/server/app/[lang]/manga/page/server-reference-manifest.json +46 -58
  95. package/dist/.next/server/app/[lang]/manga/page.js +10 -12
  96. package/dist/.next/server/app/[lang]/manga/page.js.nft.json +1 -1
  97. package/dist/.next/server/app/[lang]/manga/page_client-reference-manifest.js +1 -1
  98. package/dist/.next/server/app/[lang]/manga/series/page/build-manifest.json +2 -2
  99. package/dist/.next/server/app/[lang]/manga/series/page/server-reference-manifest.json +38 -50
  100. package/dist/.next/server/app/[lang]/manga/series/page.js +9 -11
  101. package/dist/.next/server/app/[lang]/manga/series/page.js.nft.json +1 -1
  102. package/dist/.next/server/app/[lang]/manga/series/page_client-reference-manifest.js +1 -1
  103. package/dist/.next/server/app/[lang]/manga/series.meta +2 -2
  104. package/dist/.next/server/app/[lang]/manga/series.segments/$d$lang/manga/series/__PAGE__.segment.rsc +1 -1
  105. package/dist/.next/server/app/[lang]/manga/series.segments/$d$lang/manga/series.segment.rsc +1 -1
  106. package/dist/.next/server/app/[lang]/manga/series.segments/$d$lang/manga.segment.rsc +1 -1
  107. package/dist/.next/server/app/[lang]/manga/series.segments/$d$lang.segment.rsc +2 -2
  108. package/dist/.next/server/app/[lang]/manga/series.segments/_full.segment.rsc +2 -2
  109. package/dist/.next/server/app/[lang]/manga/series.segments/_head.segment.rsc +1 -1
  110. package/dist/.next/server/app/[lang]/manga/series.segments/_index.segment.rsc +1 -1
  111. package/dist/.next/server/app/[lang]/manga/series.segments/_tree.segment.rsc +2 -2
  112. package/dist/.next/server/app/[lang]/manga/toread/page/build-manifest.json +2 -2
  113. package/dist/.next/server/app/[lang]/manga/toread/page/server-reference-manifest.json +38 -50
  114. package/dist/.next/server/app/[lang]/manga/toread/page.js +9 -11
  115. package/dist/.next/server/app/[lang]/manga/toread/page.js.nft.json +1 -1
  116. package/dist/.next/server/app/[lang]/manga/toread/page_client-reference-manifest.js +1 -1
  117. package/dist/.next/server/app/[lang]/manga/toread.meta +2 -2
  118. package/dist/.next/server/app/[lang]/manga/toread.segments/$d$lang/manga/toread/__PAGE__.segment.rsc +1 -1
  119. package/dist/.next/server/app/[lang]/manga/toread.segments/$d$lang/manga/toread.segment.rsc +1 -1
  120. package/dist/.next/server/app/[lang]/manga/toread.segments/$d$lang/manga.segment.rsc +1 -1
  121. package/dist/.next/server/app/[lang]/manga/toread.segments/$d$lang.segment.rsc +2 -2
  122. package/dist/.next/server/app/[lang]/manga/toread.segments/_full.segment.rsc +2 -2
  123. package/dist/.next/server/app/[lang]/manga/toread.segments/_head.segment.rsc +1 -1
  124. package/dist/.next/server/app/[lang]/manga/toread.segments/_index.segment.rsc +1 -1
  125. package/dist/.next/server/app/[lang]/manga/toread.segments/_tree.segment.rsc +2 -2
  126. package/dist/.next/server/app/[lang]/manga/volume/[slug]/page/build-manifest.json +2 -2
  127. package/dist/.next/server/app/[lang]/manga/volume/[slug]/page/server-reference-manifest.json +74 -74
  128. package/dist/.next/server/app/[lang]/manga/volume/[slug]/page.js +14 -13
  129. package/dist/.next/server/app/[lang]/manga/volume/[slug]/page.js.nft.json +1 -1
  130. package/dist/.next/server/app/[lang]/manga/volume/[slug]/page_client-reference-manifest.js +1 -1
  131. package/dist/.next/server/app/[lang]/manga/volume/[slug].meta +2 -2
  132. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/$d$lang/manga/volume/$d$slug/__PAGE__.segment.rsc +1 -1
  133. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/$d$lang/manga/volume/$d$slug.segment.rsc +1 -1
  134. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/$d$lang/manga/volume.segment.rsc +1 -1
  135. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/$d$lang/manga.segment.rsc +1 -1
  136. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/$d$lang.segment.rsc +2 -2
  137. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/_full.segment.rsc +2 -2
  138. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/_head.segment.rsc +1 -1
  139. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/_index.segment.rsc +1 -1
  140. package/dist/.next/server/app/[lang]/manga/volume/[slug].segments/_tree.segment.rsc +2 -2
  141. package/dist/.next/server/app/[lang]/manga/volumes/page/build-manifest.json +2 -2
  142. package/dist/.next/server/app/[lang]/manga/volumes/page/server-reference-manifest.json +38 -50
  143. package/dist/.next/server/app/[lang]/manga/volumes/page.js +9 -11
  144. package/dist/.next/server/app/[lang]/manga/volumes/page.js.nft.json +1 -1
  145. package/dist/.next/server/app/[lang]/manga/volumes/page_client-reference-manifest.js +1 -1
  146. package/dist/.next/server/app/[lang]/manga/volumes.meta +2 -2
  147. package/dist/.next/server/app/[lang]/manga/volumes.segments/$d$lang/manga/volumes/__PAGE__.segment.rsc +1 -1
  148. package/dist/.next/server/app/[lang]/manga/volumes.segments/$d$lang/manga/volumes.segment.rsc +1 -1
  149. package/dist/.next/server/app/[lang]/manga/volumes.segments/$d$lang/manga.segment.rsc +1 -1
  150. package/dist/.next/server/app/[lang]/manga/volumes.segments/$d$lang.segment.rsc +2 -2
  151. package/dist/.next/server/app/[lang]/manga/volumes.segments/_full.segment.rsc +2 -2
  152. package/dist/.next/server/app/[lang]/manga/volumes.segments/_head.segment.rsc +1 -1
  153. package/dist/.next/server/app/[lang]/manga/volumes.segments/_index.segment.rsc +1 -1
  154. package/dist/.next/server/app/[lang]/manga/volumes.segments/_tree.segment.rsc +2 -2
  155. package/dist/.next/server/app/[lang]/manga.meta +2 -2
  156. package/dist/.next/server/app/[lang]/manga.segments/$d$lang/manga/__PAGE__.segment.rsc +1 -1
  157. package/dist/.next/server/app/[lang]/manga.segments/$d$lang/manga.segment.rsc +1 -1
  158. package/dist/.next/server/app/[lang]/manga.segments/$d$lang.segment.rsc +2 -2
  159. package/dist/.next/server/app/[lang]/manga.segments/_full.segment.rsc +2 -2
  160. package/dist/.next/server/app/[lang]/manga.segments/_head.segment.rsc +1 -1
  161. package/dist/.next/server/app/[lang]/manga.segments/_index.segment.rsc +1 -1
  162. package/dist/.next/server/app/[lang]/manga.segments/_tree.segment.rsc +2 -2
  163. package/dist/.next/server/app/[lang]/others/[series]/page/app-paths-manifest.json +3 -0
  164. package/dist/.next/server/app/[lang]/others/[series]/page/build-manifest.json +19 -0
  165. package/dist/.next/server/app/[lang]/others/[series]/page/next-font-manifest.json +12 -0
  166. package/dist/.next/server/app/[lang]/others/[series]/page/react-loadable-manifest.json +1 -0
  167. package/dist/.next/server/app/[lang]/others/[series]/page/server-reference-manifest.json +233 -0
  168. package/dist/.next/server/app/[lang]/others/[series]/page.js +26 -0
  169. package/dist/.next/server/app/[lang]/others/[series]/page.js.map +5 -0
  170. package/dist/.next/server/app/[lang]/others/[series]/page.js.nft.json +1 -0
  171. package/dist/.next/server/app/[lang]/others/[series]/page_client-reference-manifest.js +3 -0
  172. package/dist/.next/server/app/[lang]/others/[series].html +0 -0
  173. package/dist/.next/server/app/[lang]/others/[series].meta +20 -0
  174. package/dist/.next/server/app/[lang]/others/[series].segments/$d$lang/others/$d$series/__PAGE__.segment.rsc +6 -0
  175. package/dist/.next/server/app/[lang]/others/[series].segments/$d$lang/others/$d$series.segment.rsc +5 -0
  176. package/dist/.next/server/app/[lang]/others/[series].segments/$d$lang/others.segment.rsc +3 -0
  177. package/dist/.next/server/app/[lang]/others/[series].segments/$d$lang.segment.rsc +4 -0
  178. package/dist/.next/server/app/[lang]/others/[series].segments/_full.segment.rsc +27 -0
  179. package/dist/.next/server/app/[lang]/others/[series].segments/_head.segment.rsc +7 -0
  180. package/dist/.next/server/app/[lang]/others/[series].segments/_index.segment.rsc +5 -0
  181. package/dist/.next/server/app/[lang]/others/[series].segments/_tree.segment.rsc +5 -0
  182. package/dist/.next/server/app/[lang]/others/page/app-paths-manifest.json +3 -0
  183. package/dist/.next/server/app/[lang]/others/page/build-manifest.json +19 -0
  184. package/dist/.next/server/app/[lang]/others/page/next-font-manifest.json +12 -0
  185. package/dist/.next/server/app/[lang]/others/page/react-loadable-manifest.json +1 -0
  186. package/dist/.next/server/app/[lang]/others/page/server-reference-manifest.json +185 -0
  187. package/dist/.next/server/app/[lang]/others/page.js +23 -0
  188. package/dist/.next/server/app/[lang]/others/page.js.map +5 -0
  189. package/dist/.next/server/app/[lang]/others/page.js.nft.json +1 -0
  190. package/dist/.next/server/app/[lang]/others/page_client-reference-manifest.js +3 -0
  191. package/dist/.next/server/app/[lang]/others/series/page/app-paths-manifest.json +3 -0
  192. package/dist/.next/server/app/[lang]/others/series/page/build-manifest.json +19 -0
  193. package/dist/.next/server/app/[lang]/others/series/page/next-font-manifest.json +12 -0
  194. package/dist/.next/server/app/[lang]/others/series/page/react-loadable-manifest.json +1 -0
  195. package/dist/.next/server/app/[lang]/others/series/page/server-reference-manifest.json +161 -0
  196. package/dist/.next/server/app/[lang]/others/series/page.js +23 -0
  197. package/dist/.next/server/app/[lang]/others/series/page.js.map +5 -0
  198. package/dist/.next/server/app/[lang]/others/series/page.js.nft.json +1 -0
  199. package/dist/.next/server/app/[lang]/others/series/page_client-reference-manifest.js +3 -0
  200. package/dist/.next/server/app/[lang]/others/series.html +0 -0
  201. package/dist/.next/server/app/[lang]/others/series.meta +20 -0
  202. package/dist/.next/server/app/[lang]/others/series.segments/$d$lang/others/series/__PAGE__.segment.rsc +6 -0
  203. package/dist/.next/server/app/[lang]/others/series.segments/$d$lang/others/series.segment.rsc +5 -0
  204. package/dist/.next/server/app/[lang]/others/series.segments/$d$lang/others.segment.rsc +3 -0
  205. package/dist/.next/server/app/[lang]/others/series.segments/$d$lang.segment.rsc +4 -0
  206. package/dist/.next/server/app/[lang]/others/series.segments/_full.segment.rsc +27 -0
  207. package/dist/.next/server/app/[lang]/others/series.segments/_head.segment.rsc +7 -0
  208. package/dist/.next/server/app/[lang]/others/series.segments/_index.segment.rsc +5 -0
  209. package/dist/.next/server/app/[lang]/others/series.segments/_tree.segment.rsc +5 -0
  210. package/dist/.next/server/app/[lang]/others/toread/page/app-paths-manifest.json +3 -0
  211. package/dist/.next/server/app/[lang]/others/toread/page/build-manifest.json +19 -0
  212. package/dist/.next/server/app/[lang]/others/toread/page/next-font-manifest.json +12 -0
  213. package/dist/.next/server/app/[lang]/others/toread/page/react-loadable-manifest.json +1 -0
  214. package/dist/.next/server/app/[lang]/others/toread/page/server-reference-manifest.json +161 -0
  215. package/dist/.next/server/app/[lang]/others/toread/page.js +23 -0
  216. package/dist/.next/server/app/[lang]/others/toread/page.js.map +5 -0
  217. package/dist/.next/server/app/[lang]/others/toread/page.js.nft.json +1 -0
  218. package/dist/.next/server/app/[lang]/others/toread/page_client-reference-manifest.js +3 -0
  219. package/dist/.next/server/app/[lang]/others/toread.html +0 -0
  220. package/dist/.next/server/app/[lang]/others/toread.meta +20 -0
  221. package/dist/.next/server/app/[lang]/others/toread.segments/$d$lang/others/toread/__PAGE__.segment.rsc +6 -0
  222. package/dist/.next/server/app/[lang]/others/toread.segments/$d$lang/others/toread.segment.rsc +5 -0
  223. package/dist/.next/server/app/[lang]/others/toread.segments/$d$lang/others.segment.rsc +3 -0
  224. package/dist/.next/server/app/[lang]/others/toread.segments/$d$lang.segment.rsc +4 -0
  225. package/dist/.next/server/app/[lang]/others/toread.segments/_full.segment.rsc +27 -0
  226. package/dist/.next/server/app/[lang]/others/toread.segments/_head.segment.rsc +7 -0
  227. package/dist/.next/server/app/[lang]/others/toread.segments/_index.segment.rsc +5 -0
  228. package/dist/.next/server/app/[lang]/others/toread.segments/_tree.segment.rsc +5 -0
  229. package/dist/.next/server/app/[lang]/others/volume/[slug]/page/app-paths-manifest.json +3 -0
  230. package/dist/.next/server/app/[lang]/others/volume/[slug]/page/build-manifest.json +19 -0
  231. package/dist/.next/server/app/[lang]/others/volume/[slug]/page/next-font-manifest.json +12 -0
  232. package/dist/.next/server/app/[lang]/others/volume/[slug]/page/react-loadable-manifest.json +1 -0
  233. package/dist/.next/server/app/[lang]/others/volume/[slug]/page/server-reference-manifest.json +317 -0
  234. package/dist/.next/server/app/[lang]/others/volume/[slug]/page.js +27 -0
  235. package/dist/.next/server/app/[lang]/others/volume/[slug]/page.js.map +5 -0
  236. package/dist/.next/server/app/[lang]/others/volume/[slug]/page.js.nft.json +1 -0
  237. package/dist/.next/server/app/[lang]/others/volume/[slug]/page_client-reference-manifest.js +3 -0
  238. package/dist/.next/server/app/[lang]/others/volume/[slug].html +0 -0
  239. package/dist/.next/server/app/[lang]/others/volume/[slug].meta +21 -0
  240. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/$d$lang/others/volume/$d$slug/__PAGE__.segment.rsc +6 -0
  241. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/$d$lang/others/volume/$d$slug.segment.rsc +5 -0
  242. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/$d$lang/others/volume.segment.rsc +5 -0
  243. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/$d$lang/others.segment.rsc +3 -0
  244. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/$d$lang.segment.rsc +4 -0
  245. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/_full.segment.rsc +27 -0
  246. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/_head.segment.rsc +7 -0
  247. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/_index.segment.rsc +5 -0
  248. package/dist/.next/server/app/[lang]/others/volume/[slug].segments/_tree.segment.rsc +5 -0
  249. package/dist/.next/server/app/[lang]/others/volumes/page/app-paths-manifest.json +3 -0
  250. package/dist/.next/server/app/[lang]/others/volumes/page/build-manifest.json +19 -0
  251. package/dist/.next/server/app/[lang]/others/volumes/page/next-font-manifest.json +12 -0
  252. package/dist/.next/server/app/[lang]/others/volumes/page/react-loadable-manifest.json +1 -0
  253. package/dist/.next/server/app/[lang]/others/volumes/page/server-reference-manifest.json +161 -0
  254. package/dist/.next/server/app/[lang]/others/volumes/page.js +23 -0
  255. package/dist/.next/server/app/[lang]/others/volumes/page.js.map +5 -0
  256. package/dist/.next/server/app/[lang]/others/volumes/page.js.nft.json +1 -0
  257. package/dist/.next/server/app/[lang]/others/volumes/page_client-reference-manifest.js +3 -0
  258. package/dist/.next/server/app/[lang]/others/volumes.html +0 -0
  259. package/dist/.next/server/app/[lang]/others/volumes.meta +20 -0
  260. package/dist/.next/server/app/[lang]/others/volumes.segments/$d$lang/others/volumes/__PAGE__.segment.rsc +6 -0
  261. package/dist/.next/server/app/[lang]/others/volumes.segments/$d$lang/others/volumes.segment.rsc +5 -0
  262. package/dist/.next/server/app/[lang]/others/volumes.segments/$d$lang/others.segment.rsc +3 -0
  263. package/dist/.next/server/app/[lang]/others/volumes.segments/$d$lang.segment.rsc +4 -0
  264. package/dist/.next/server/app/[lang]/others/volumes.segments/_full.segment.rsc +27 -0
  265. package/dist/.next/server/app/[lang]/others/volumes.segments/_head.segment.rsc +7 -0
  266. package/dist/.next/server/app/[lang]/others/volumes.segments/_index.segment.rsc +5 -0
  267. package/dist/.next/server/app/[lang]/others/volumes.segments/_tree.segment.rsc +5 -0
  268. package/dist/.next/server/app/[lang]/others.html +0 -0
  269. package/dist/.next/server/app/[lang]/others.meta +19 -0
  270. package/dist/.next/server/app/[lang]/others.segments/$d$lang/others/__PAGE__.segment.rsc +6 -0
  271. package/dist/.next/server/app/[lang]/others.segments/$d$lang/others.segment.rsc +3 -0
  272. package/dist/.next/server/app/[lang]/others.segments/$d$lang.segment.rsc +4 -0
  273. package/dist/.next/server/app/[lang]/others.segments/_full.segment.rsc +27 -0
  274. package/dist/.next/server/app/[lang]/others.segments/_head.segment.rsc +7 -0
  275. package/dist/.next/server/app/[lang]/others.segments/_index.segment.rsc +5 -0
  276. package/dist/.next/server/app/[lang]/others.segments/_tree.segment.rsc +5 -0
  277. package/dist/.next/server/app/[lang]/page/build-manifest.json +2 -2
  278. package/dist/.next/server/app/[lang]/page/server-reference-manifest.json +76 -88
  279. package/dist/.next/server/app/[lang]/page.js +9 -10
  280. package/dist/.next/server/app/[lang]/page.js.nft.json +1 -1
  281. package/dist/.next/server/app/[lang]/page_client-reference-manifest.js +1 -1
  282. package/dist/.next/server/app/[lang]/profile/notifications/page/build-manifest.json +2 -2
  283. package/dist/.next/server/app/[lang]/profile/notifications/page/server-reference-manifest.json +46 -34
  284. package/dist/.next/server/app/[lang]/profile/notifications/page.js +8 -8
  285. package/dist/.next/server/app/[lang]/profile/notifications/page.js.nft.json +1 -1
  286. package/dist/.next/server/app/[lang]/profile/notifications/page_client-reference-manifest.js +1 -1
  287. package/dist/.next/server/app/[lang]/profile/notifications.meta +2 -2
  288. package/dist/.next/server/app/[lang]/profile/notifications.segments/$d$lang/profile/notifications/__PAGE__.segment.rsc +1 -1
  289. package/dist/.next/server/app/[lang]/profile/notifications.segments/$d$lang/profile/notifications.segment.rsc +1 -1
  290. package/dist/.next/server/app/[lang]/profile/notifications.segments/$d$lang/profile.segment.rsc +1 -1
  291. package/dist/.next/server/app/[lang]/profile/notifications.segments/$d$lang.segment.rsc +2 -2
  292. package/dist/.next/server/app/[lang]/profile/notifications.segments/_full.segment.rsc +2 -2
  293. package/dist/.next/server/app/[lang]/profile/notifications.segments/_head.segment.rsc +1 -1
  294. package/dist/.next/server/app/[lang]/profile/notifications.segments/_index.segment.rsc +1 -1
  295. package/dist/.next/server/app/[lang]/profile/notifications.segments/_tree.segment.rsc +2 -2
  296. package/dist/.next/server/app/[lang]/profile/page/build-manifest.json +2 -2
  297. package/dist/.next/server/app/[lang]/profile/page/server-reference-manifest.json +30 -18
  298. package/dist/.next/server/app/[lang]/profile/page.js +8 -7
  299. package/dist/.next/server/app/[lang]/profile/page.js.nft.json +1 -1
  300. package/dist/.next/server/app/[lang]/profile/page_client-reference-manifest.js +1 -1
  301. package/dist/.next/server/app/[lang]/profile/update/page/build-manifest.json +2 -2
  302. package/dist/.next/server/app/[lang]/profile/update/page/server-reference-manifest.json +22 -10
  303. package/dist/.next/server/app/[lang]/profile/update/page.js +7 -7
  304. package/dist/.next/server/app/[lang]/profile/update/page.js.nft.json +1 -1
  305. package/dist/.next/server/app/[lang]/profile/update/page_client-reference-manifest.js +1 -1
  306. package/dist/.next/server/app/[lang]/profile/update.meta +2 -2
  307. package/dist/.next/server/app/[lang]/profile/update.segments/$d$lang/profile/update/__PAGE__.segment.rsc +1 -1
  308. package/dist/.next/server/app/[lang]/profile/update.segments/$d$lang/profile/update.segment.rsc +1 -1
  309. package/dist/.next/server/app/[lang]/profile/update.segments/$d$lang/profile.segment.rsc +1 -1
  310. package/dist/.next/server/app/[lang]/profile/update.segments/$d$lang.segment.rsc +2 -2
  311. package/dist/.next/server/app/[lang]/profile/update.segments/_full.segment.rsc +2 -2
  312. package/dist/.next/server/app/[lang]/profile/update.segments/_head.segment.rsc +1 -1
  313. package/dist/.next/server/app/[lang]/profile/update.segments/_index.segment.rsc +1 -1
  314. package/dist/.next/server/app/[lang]/profile/update.segments/_tree.segment.rsc +2 -2
  315. package/dist/.next/server/app/[lang]/profile.meta +2 -2
  316. package/dist/.next/server/app/[lang]/profile.segments/$d$lang/profile/__PAGE__.segment.rsc +1 -1
  317. package/dist/.next/server/app/[lang]/profile.segments/$d$lang/profile.segment.rsc +1 -1
  318. package/dist/.next/server/app/[lang]/profile.segments/$d$lang.segment.rsc +2 -2
  319. package/dist/.next/server/app/[lang]/profile.segments/_full.segment.rsc +2 -2
  320. package/dist/.next/server/app/[lang]/profile.segments/_head.segment.rsc +1 -1
  321. package/dist/.next/server/app/[lang]/profile.segments/_index.segment.rsc +1 -1
  322. package/dist/.next/server/app/[lang]/profile.segments/_tree.segment.rsc +2 -2
  323. package/dist/.next/server/app/[lang]/search/page/build-manifest.json +2 -2
  324. package/dist/.next/server/app/[lang]/search/page/server-reference-manifest.json +20 -8
  325. package/dist/.next/server/app/[lang]/search/page.js +7 -7
  326. package/dist/.next/server/app/[lang]/search/page.js.nft.json +1 -1
  327. package/dist/.next/server/app/[lang]/search/page_client-reference-manifest.js +1 -1
  328. package/dist/.next/server/app/[lang]/search.meta +2 -2
  329. package/dist/.next/server/app/[lang]/search.segments/$d$lang/search/__PAGE__.segment.rsc +1 -1
  330. package/dist/.next/server/app/[lang]/search.segments/$d$lang/search.segment.rsc +1 -1
  331. package/dist/.next/server/app/[lang]/search.segments/$d$lang.segment.rsc +2 -2
  332. package/dist/.next/server/app/[lang]/search.segments/_full.segment.rsc +2 -2
  333. package/dist/.next/server/app/[lang]/search.segments/_head.segment.rsc +1 -1
  334. package/dist/.next/server/app/[lang]/search.segments/_index.segment.rsc +1 -1
  335. package/dist/.next/server/app/[lang]/search.segments/_tree.segment.rsc +2 -2
  336. package/dist/.next/server/app/[lang]/settings/library/page/build-manifest.json +2 -2
  337. package/dist/.next/server/app/[lang]/settings/library/page/server-reference-manifest.json +44 -20
  338. package/dist/.next/server/app/[lang]/settings/library/page.js +9 -9
  339. package/dist/.next/server/app/[lang]/settings/library/page.js.nft.json +1 -1
  340. package/dist/.next/server/app/[lang]/settings/library/page_client-reference-manifest.js +1 -1
  341. package/dist/.next/server/app/[lang]/settings/library.meta +2 -2
  342. package/dist/.next/server/app/[lang]/settings/library.segments/$d$lang/settings/library/__PAGE__.segment.rsc +3 -3
  343. package/dist/.next/server/app/[lang]/settings/library.segments/$d$lang/settings/library.segment.rsc +1 -1
  344. package/dist/.next/server/app/[lang]/settings/library.segments/$d$lang/settings.segment.rsc +1 -1
  345. package/dist/.next/server/app/[lang]/settings/library.segments/$d$lang.segment.rsc +2 -2
  346. package/dist/.next/server/app/[lang]/settings/library.segments/_full.segment.rsc +4 -4
  347. package/dist/.next/server/app/[lang]/settings/library.segments/_head.segment.rsc +1 -1
  348. package/dist/.next/server/app/[lang]/settings/library.segments/_index.segment.rsc +1 -1
  349. package/dist/.next/server/app/[lang]/settings/library.segments/_tree.segment.rsc +2 -2
  350. package/dist/.next/server/app/[lang]/settings/page/build-manifest.json +2 -2
  351. package/dist/.next/server/app/[lang]/settings/page/server-reference-manifest.json +30 -18
  352. package/dist/.next/server/app/[lang]/settings/page.js +8 -8
  353. package/dist/.next/server/app/[lang]/settings/page.js.nft.json +1 -1
  354. package/dist/.next/server/app/[lang]/settings/page_client-reference-manifest.js +1 -1
  355. package/dist/.next/server/app/[lang]/settings.meta +2 -2
  356. package/dist/.next/server/app/[lang]/settings.segments/$d$lang/settings/__PAGE__.segment.rsc +1 -1
  357. package/dist/.next/server/app/[lang]/settings.segments/$d$lang/settings.segment.rsc +1 -1
  358. package/dist/.next/server/app/[lang]/settings.segments/$d$lang.segment.rsc +2 -2
  359. package/dist/.next/server/app/[lang]/settings.segments/_full.segment.rsc +2 -2
  360. package/dist/.next/server/app/[lang]/settings.segments/_head.segment.rsc +1 -1
  361. package/dist/.next/server/app/[lang]/settings.segments/_index.segment.rsc +1 -1
  362. package/dist/.next/server/app/[lang]/settings.segments/_tree.segment.rsc +2 -2
  363. package/dist/.next/server/app/[lang].meta +2 -2
  364. package/dist/.next/server/app/[lang].segments/$d$lang/__PAGE__.segment.rsc +1 -1
  365. package/dist/.next/server/app/[lang].segments/$d$lang.segment.rsc +2 -2
  366. package/dist/.next/server/app/[lang].segments/_full.segment.rsc +2 -2
  367. package/dist/.next/server/app/[lang].segments/_head.segment.rsc +1 -1
  368. package/dist/.next/server/app/[lang].segments/_index.segment.rsc +1 -1
  369. package/dist/.next/server/app/[lang].segments/_tree.segment.rsc +2 -2
  370. package/dist/.next/server/app/_global-error/page/build-manifest.json +2 -2
  371. package/dist/.next/server/app/_global-error/page.js +1 -1
  372. package/dist/.next/server/app/_global-error/page.js.nft.json +1 -1
  373. package/dist/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  374. package/dist/.next/server/app/_global-error.html +1 -1
  375. package/dist/.next/server/app/_global-error.rsc +1 -1
  376. package/dist/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  377. package/dist/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  378. package/dist/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  379. package/dist/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  380. package/dist/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  381. package/dist/.next/server/app/_not-found/page/build-manifest.json +2 -2
  382. package/dist/.next/server/app/_not-found/page.js +1 -1
  383. package/dist/.next/server/app/_not-found/page.js.nft.json +1 -1
  384. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  385. package/dist/.next/server/app/_not-found.html +1 -1
  386. package/dist/.next/server/app/_not-found.rsc +1 -1
  387. package/dist/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  388. package/dist/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  389. package/dist/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  390. package/dist/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  391. package/dist/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  392. package/dist/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  393. package/dist/.next/server/app/api/admin/scan-manga/extract-cover/route.js +2 -2
  394. package/dist/.next/server/app/api/admin/scan-manga/extract-cover/route.js.nft.json +1 -1
  395. package/dist/.next/server/app/api/admin/scan-manga/extract-meta/route.js +2 -2
  396. package/dist/.next/server/app/api/admin/scan-manga/extract-meta/route.js.nft.json +1 -1
  397. package/dist/.next/server/app/api/admin/scan-manga/index-library/route.js +2 -2
  398. package/dist/.next/server/app/api/admin/scan-manga/index-library/route.js.nft.json +1 -1
  399. package/dist/.next/server/app/api/admin/scan-manga/start/route.js +2 -2
  400. package/dist/.next/server/app/api/admin/scan-manga/start/route.js.nft.json +1 -1
  401. package/dist/.next/server/app/api/admin/scan-manga/status/route.js +1 -1
  402. package/dist/.next/server/app/api/admin/scan-manga/status/route.js.nft.json +1 -1
  403. package/dist/.next/server/app/api/admin/upload/confirm/route.js +2 -2
  404. package/dist/.next/server/app/api/admin/upload/confirm/route.js.nft.json +1 -1
  405. package/dist/.next/server/app/api/admin/upload/library/chunk/route.js +2 -2
  406. package/dist/.next/server/app/api/admin/upload/library/chunk/route.js.nft.json +1 -1
  407. package/dist/.next/server/app/api/admin/upload/library/route.js +1 -1
  408. package/dist/.next/server/app/api/admin/upload/library/route.js.nft.json +1 -1
  409. package/dist/.next/server/app/api/admin/upload/presigned/route.js +1 -1
  410. package/dist/.next/server/app/api/admin/upload/presigned/route.js.nft.json +1 -1
  411. package/dist/.next/server/app/api/library/manga/cover/[...slug]/route.js +2 -2
  412. package/dist/.next/server/app/api/library/manga/cover/[...slug]/route.js.nft.json +1 -1
  413. package/dist/.next/server/app/api/profile/[file]/route.js +1 -1
  414. package/dist/.next/server/app/api/profile/[file]/route.js.nft.json +1 -1
  415. package/dist/.next/server/app/api/reader/manga/route.js +1 -1
  416. package/dist/.next/server/app/api/reader/manga/route.js.nft.json +1 -1
  417. package/dist/.next/server/app/api/reader/temp-image/route.js +1 -1
  418. package/dist/.next/server/app/api/reader/temp-image/route.js.nft.json +1 -1
  419. package/dist/.next/server/app/en/books.html +1 -1
  420. package/dist/.next/server/app/en/books.meta +1 -1
  421. package/dist/.next/server/app/en/books.segments/$d$lang/books/__PAGE__.segment.rsc +2 -2
  422. package/dist/.next/server/app/en/books.segments/$d$lang/books.segment.rsc +1 -1
  423. package/dist/.next/server/app/en/books.segments/$d$lang.segment.rsc +3 -3
  424. package/dist/.next/server/app/en/books.segments/_full.segment.rsc +4 -4
  425. package/dist/.next/server/app/en/books.segments/_head.segment.rsc +1 -1
  426. package/dist/.next/server/app/en/books.segments/_index.segment.rsc +1 -1
  427. package/dist/.next/server/app/en/books.segments/_tree.segment.rsc +2 -2
  428. package/dist/.next/server/app/en/favorites/books.html +1 -1
  429. package/dist/.next/server/app/en/favorites/books.meta +2 -2
  430. package/dist/.next/server/app/en/favorites/books.segments/$d$lang/favorites/books/__PAGE__.segment.rsc +2 -2
  431. package/dist/.next/server/app/en/favorites/books.segments/$d$lang/favorites/books.segment.rsc +1 -1
  432. package/dist/.next/server/app/en/favorites/books.segments/$d$lang/favorites.segment.rsc +3 -3
  433. package/dist/.next/server/app/en/favorites/books.segments/$d$lang.segment.rsc +3 -3
  434. package/dist/.next/server/app/en/favorites/books.segments/_full.segment.rsc +6 -6
  435. package/dist/.next/server/app/en/favorites/books.segments/_head.segment.rsc +1 -1
  436. package/dist/.next/server/app/en/favorites/books.segments/_index.segment.rsc +1 -1
  437. package/dist/.next/server/app/en/favorites/books.segments/_tree.segment.rsc +2 -2
  438. package/dist/.next/server/app/en/favorites/others.html +1 -0
  439. package/dist/.next/server/app/en/favorites/others.meta +14 -0
  440. package/dist/.next/server/app/en/favorites/others.rsc +13 -0
  441. package/dist/.next/server/app/en/favorites/others.segments/_full.segment.rsc +13 -0
  442. package/dist/.next/server/app/en/favorites/others.segments/_tree.segment.rsc +1 -0
  443. package/dist/.next/server/app/en/favorites/others.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  444. package/dist/.next/server/app/en/favorites.html +1 -1
  445. package/dist/.next/server/app/en/favorites.meta +2 -2
  446. package/dist/.next/server/app/en/favorites.segments/$d$lang/favorites/__PAGE__.segment.rsc +1 -1
  447. package/dist/.next/server/app/en/favorites.segments/$d$lang/favorites.segment.rsc +3 -3
  448. package/dist/.next/server/app/en/favorites.segments/$d$lang.segment.rsc +3 -3
  449. package/dist/.next/server/app/en/favorites.segments/_full.segment.rsc +6 -6
  450. package/dist/.next/server/app/en/favorites.segments/_head.segment.rsc +1 -1
  451. package/dist/.next/server/app/en/favorites.segments/_index.segment.rsc +1 -1
  452. package/dist/.next/server/app/en/favorites.segments/_tree.segment.rsc +2 -2
  453. package/dist/.next/server/app/en/login.html +1 -1
  454. package/dist/.next/server/app/en/login.meta +1 -1
  455. package/dist/.next/server/app/en/login.segments/$d$lang/login/__PAGE__.segment.rsc +4 -4
  456. package/dist/.next/server/app/en/login.segments/$d$lang/login.segment.rsc +1 -1
  457. package/dist/.next/server/app/en/login.segments/$d$lang.segment.rsc +3 -3
  458. package/dist/.next/server/app/en/login.segments/_full.segment.rsc +6 -6
  459. package/dist/.next/server/app/en/login.segments/_head.segment.rsc +1 -1
  460. package/dist/.next/server/app/en/login.segments/_index.segment.rsc +1 -1
  461. package/dist/.next/server/app/en/login.segments/_tree.segment.rsc +2 -2
  462. package/dist/.next/server/app/en/manga/[series].html +1 -1
  463. package/dist/.next/server/app/en/manga/[series].meta +2 -2
  464. package/dist/.next/server/app/en/manga/[series].segments/$d$lang/manga/$d$series/__PAGE__.segment.rsc +1 -1
  465. package/dist/.next/server/app/en/manga/[series].segments/$d$lang/manga/$d$series.segment.rsc +1 -1
  466. package/dist/.next/server/app/en/manga/[series].segments/$d$lang/manga.segment.rsc +2 -2
  467. package/dist/.next/server/app/en/manga/[series].segments/$d$lang.segment.rsc +3 -3
  468. package/dist/.next/server/app/en/manga/[series].segments/_full.segment.rsc +5 -5
  469. package/dist/.next/server/app/en/manga/[series].segments/_head.segment.rsc +1 -1
  470. package/dist/.next/server/app/en/manga/[series].segments/_index.segment.rsc +1 -1
  471. package/dist/.next/server/app/en/manga/[series].segments/_tree.segment.rsc +2 -2
  472. package/dist/.next/server/app/en/manga/series.html +1 -1
  473. package/dist/.next/server/app/en/manga/series.meta +2 -2
  474. package/dist/.next/server/app/en/manga/series.segments/$d$lang/manga/series/__PAGE__.segment.rsc +1 -1
  475. package/dist/.next/server/app/en/manga/series.segments/$d$lang/manga/series.segment.rsc +1 -1
  476. package/dist/.next/server/app/en/manga/series.segments/$d$lang/manga.segment.rsc +2 -2
  477. package/dist/.next/server/app/en/manga/series.segments/$d$lang.segment.rsc +3 -3
  478. package/dist/.next/server/app/en/manga/series.segments/_full.segment.rsc +5 -5
  479. package/dist/.next/server/app/en/manga/series.segments/_head.segment.rsc +1 -1
  480. package/dist/.next/server/app/en/manga/series.segments/_index.segment.rsc +1 -1
  481. package/dist/.next/server/app/en/manga/series.segments/_tree.segment.rsc +2 -2
  482. package/dist/.next/server/app/en/manga/toread.html +1 -1
  483. package/dist/.next/server/app/en/manga/toread.meta +2 -2
  484. package/dist/.next/server/app/en/manga/toread.segments/$d$lang/manga/toread/__PAGE__.segment.rsc +1 -1
  485. package/dist/.next/server/app/en/manga/toread.segments/$d$lang/manga/toread.segment.rsc +1 -1
  486. package/dist/.next/server/app/en/manga/toread.segments/$d$lang/manga.segment.rsc +2 -2
  487. package/dist/.next/server/app/en/manga/toread.segments/$d$lang.segment.rsc +3 -3
  488. package/dist/.next/server/app/en/manga/toread.segments/_full.segment.rsc +5 -5
  489. package/dist/.next/server/app/en/manga/toread.segments/_head.segment.rsc +1 -1
  490. package/dist/.next/server/app/en/manga/toread.segments/_index.segment.rsc +1 -1
  491. package/dist/.next/server/app/en/manga/toread.segments/_tree.segment.rsc +2 -2
  492. package/dist/.next/server/app/en/manga/volume/[slug].html +1 -1
  493. package/dist/.next/server/app/en/manga/volume/[slug].meta +2 -2
  494. package/dist/.next/server/app/en/manga/volume/[slug].segments/$d$lang/manga/volume/$d$slug/__PAGE__.segment.rsc +1 -1
  495. package/dist/.next/server/app/en/manga/volume/[slug].segments/$d$lang/manga/volume/$d$slug.segment.rsc +1 -1
  496. package/dist/.next/server/app/en/manga/volume/[slug].segments/$d$lang/manga/volume.segment.rsc +1 -1
  497. package/dist/.next/server/app/en/manga/volume/[slug].segments/$d$lang/manga.segment.rsc +2 -2
  498. package/dist/.next/server/app/en/manga/volume/[slug].segments/$d$lang.segment.rsc +3 -3
  499. package/dist/.next/server/app/en/manga/volume/[slug].segments/_full.segment.rsc +5 -5
  500. package/dist/.next/server/app/en/manga/volume/[slug].segments/_head.segment.rsc +1 -1
  501. package/dist/.next/server/app/en/manga/volume/[slug].segments/_index.segment.rsc +1 -1
  502. package/dist/.next/server/app/en/manga/volume/[slug].segments/_tree.segment.rsc +2 -2
  503. package/dist/.next/server/app/en/manga/volumes.html +1 -1
  504. package/dist/.next/server/app/en/manga/volumes.meta +2 -2
  505. package/dist/.next/server/app/en/manga/volumes.segments/$d$lang/manga/volumes/__PAGE__.segment.rsc +1 -1
  506. package/dist/.next/server/app/en/manga/volumes.segments/$d$lang/manga/volumes.segment.rsc +1 -1
  507. package/dist/.next/server/app/en/manga/volumes.segments/$d$lang/manga.segment.rsc +2 -2
  508. package/dist/.next/server/app/en/manga/volumes.segments/$d$lang.segment.rsc +3 -3
  509. package/dist/.next/server/app/en/manga/volumes.segments/_full.segment.rsc +5 -5
  510. package/dist/.next/server/app/en/manga/volumes.segments/_head.segment.rsc +1 -1
  511. package/dist/.next/server/app/en/manga/volumes.segments/_index.segment.rsc +1 -1
  512. package/dist/.next/server/app/en/manga/volumes.segments/_tree.segment.rsc +2 -2
  513. package/dist/.next/server/app/en/manga.html +1 -1
  514. package/dist/.next/server/app/en/manga.meta +2 -2
  515. package/dist/.next/server/app/en/manga.segments/$d$lang/manga/__PAGE__.segment.rsc +3 -3
  516. package/dist/.next/server/app/en/manga.segments/$d$lang/manga.segment.rsc +2 -2
  517. package/dist/.next/server/app/en/manga.segments/$d$lang.segment.rsc +3 -3
  518. package/dist/.next/server/app/en/manga.segments/_full.segment.rsc +6 -6
  519. package/dist/.next/server/app/en/manga.segments/_head.segment.rsc +1 -1
  520. package/dist/.next/server/app/en/manga.segments/_index.segment.rsc +1 -1
  521. package/dist/.next/server/app/en/manga.segments/_tree.segment.rsc +2 -2
  522. package/dist/.next/server/app/en/others/[series].html +1 -0
  523. package/dist/.next/server/app/en/others/[series].meta +14 -0
  524. package/dist/.next/server/app/en/others/[series].segments/_full.segment.rsc +13 -0
  525. package/dist/.next/server/app/en/others/[series].segments/_tree.segment.rsc +1 -0
  526. package/dist/.next/server/app/en/others/[series].segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  527. package/dist/.next/server/app/en/others/series.html +1 -0
  528. package/dist/.next/server/app/en/others/series.meta +14 -0
  529. package/dist/.next/server/app/en/others/series.rsc +13 -0
  530. package/dist/.next/server/app/en/others/series.segments/_full.segment.rsc +13 -0
  531. package/dist/.next/server/app/en/others/series.segments/_tree.segment.rsc +1 -0
  532. package/dist/.next/server/app/en/others/series.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  533. package/dist/.next/server/app/en/others/toread.html +1 -0
  534. package/dist/.next/server/app/en/others/toread.meta +14 -0
  535. package/dist/.next/server/app/en/others/toread.rsc +13 -0
  536. package/dist/.next/server/app/en/others/toread.segments/_full.segment.rsc +13 -0
  537. package/dist/.next/server/app/en/others/toread.segments/_tree.segment.rsc +1 -0
  538. package/dist/.next/server/app/en/others/toread.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  539. package/dist/.next/server/app/en/others/volume/[slug].html +1 -0
  540. package/dist/.next/server/app/en/others/volume/[slug].meta +14 -0
  541. package/dist/.next/server/app/en/others/volume/[slug].segments/_full.segment.rsc +13 -0
  542. package/dist/.next/server/app/en/others/volume/[slug].segments/_tree.segment.rsc +1 -0
  543. package/dist/.next/server/app/en/others/volume/[slug].segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  544. package/dist/.next/server/app/en/others/volumes.html +1 -0
  545. package/dist/.next/server/app/en/others/volumes.meta +14 -0
  546. package/dist/.next/server/app/en/others/volumes.rsc +13 -0
  547. package/dist/.next/server/app/en/others/volumes.segments/_full.segment.rsc +13 -0
  548. package/dist/.next/server/app/en/others/volumes.segments/_tree.segment.rsc +1 -0
  549. package/dist/.next/server/app/en/others/volumes.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  550. package/dist/.next/server/app/en/others.html +1 -0
  551. package/dist/.next/server/app/en/others.meta +14 -0
  552. package/dist/.next/server/app/en/others.rsc +13 -0
  553. package/dist/.next/server/app/en/others.segments/_full.segment.rsc +13 -0
  554. package/dist/.next/server/app/en/others.segments/_tree.segment.rsc +1 -0
  555. package/dist/.next/server/app/en/others.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  556. package/dist/.next/server/app/en/profile/notifications.html +1 -1
  557. package/dist/.next/server/app/en/profile/notifications.meta +1 -1
  558. package/dist/.next/server/app/en/profile/notifications.segments/$d$lang/profile/notifications/__PAGE__.segment.rsc +1 -1
  559. package/dist/.next/server/app/en/profile/notifications.segments/$d$lang/profile/notifications.segment.rsc +1 -1
  560. package/dist/.next/server/app/en/profile/notifications.segments/$d$lang/profile.segment.rsc +3 -3
  561. package/dist/.next/server/app/en/profile/notifications.segments/$d$lang.segment.rsc +3 -3
  562. package/dist/.next/server/app/en/profile/notifications.segments/_full.segment.rsc +6 -6
  563. package/dist/.next/server/app/en/profile/notifications.segments/_head.segment.rsc +1 -1
  564. package/dist/.next/server/app/en/profile/notifications.segments/_index.segment.rsc +1 -1
  565. package/dist/.next/server/app/en/profile/notifications.segments/_tree.segment.rsc +2 -2
  566. package/dist/.next/server/app/en/profile/update.html +1 -1
  567. package/dist/.next/server/app/en/profile/update.meta +1 -1
  568. package/dist/.next/server/app/en/profile/update.segments/$d$lang/profile/update/__PAGE__.segment.rsc +1 -1
  569. package/dist/.next/server/app/en/profile/update.segments/$d$lang/profile/update.segment.rsc +1 -1
  570. package/dist/.next/server/app/en/profile/update.segments/$d$lang/profile.segment.rsc +3 -3
  571. package/dist/.next/server/app/en/profile/update.segments/$d$lang.segment.rsc +3 -3
  572. package/dist/.next/server/app/en/profile/update.segments/_full.segment.rsc +6 -6
  573. package/dist/.next/server/app/en/profile/update.segments/_head.segment.rsc +1 -1
  574. package/dist/.next/server/app/en/profile/update.segments/_index.segment.rsc +1 -1
  575. package/dist/.next/server/app/en/profile/update.segments/_tree.segment.rsc +2 -2
  576. package/dist/.next/server/app/en/profile.html +1 -1
  577. package/dist/.next/server/app/en/profile.meta +1 -1
  578. package/dist/.next/server/app/en/profile.segments/$d$lang/profile/__PAGE__.segment.rsc +7 -7
  579. package/dist/.next/server/app/en/profile.segments/$d$lang/profile.segment.rsc +3 -3
  580. package/dist/.next/server/app/en/profile.segments/$d$lang.segment.rsc +3 -3
  581. package/dist/.next/server/app/en/profile.segments/_full.segment.rsc +10 -10
  582. package/dist/.next/server/app/en/profile.segments/_head.segment.rsc +1 -1
  583. package/dist/.next/server/app/en/profile.segments/_index.segment.rsc +1 -1
  584. package/dist/.next/server/app/en/profile.segments/_tree.segment.rsc +2 -2
  585. package/dist/.next/server/app/en/search.html +1 -1
  586. package/dist/.next/server/app/en/search.meta +1 -1
  587. package/dist/.next/server/app/en/search.segments/$d$lang/search/__PAGE__.segment.rsc +3 -3
  588. package/dist/.next/server/app/en/search.segments/$d$lang/search.segment.rsc +1 -1
  589. package/dist/.next/server/app/en/search.segments/$d$lang.segment.rsc +3 -3
  590. package/dist/.next/server/app/en/search.segments/_full.segment.rsc +5 -5
  591. package/dist/.next/server/app/en/search.segments/_head.segment.rsc +1 -1
  592. package/dist/.next/server/app/en/search.segments/_index.segment.rsc +1 -1
  593. package/dist/.next/server/app/en/search.segments/_tree.segment.rsc +2 -2
  594. package/dist/.next/server/app/en/settings/library.html +1 -1
  595. package/dist/.next/server/app/en/settings/library.meta +1 -1
  596. package/dist/.next/server/app/en/settings/library.segments/$d$lang/settings/library/__PAGE__.segment.rsc +5 -10
  597. package/dist/.next/server/app/en/settings/library.segments/$d$lang/settings/library.segment.rsc +1 -1
  598. package/dist/.next/server/app/en/settings/library.segments/$d$lang/settings.segment.rsc +3 -3
  599. package/dist/.next/server/app/en/settings/library.segments/$d$lang.segment.rsc +3 -3
  600. package/dist/.next/server/app/en/settings/library.segments/_full.segment.rsc +18 -20
  601. package/dist/.next/server/app/en/settings/library.segments/_head.segment.rsc +1 -1
  602. package/dist/.next/server/app/en/settings/library.segments/_index.segment.rsc +1 -1
  603. package/dist/.next/server/app/en/settings/library.segments/_tree.segment.rsc +2 -2
  604. package/dist/.next/server/app/en/settings.html +1 -1
  605. package/dist/.next/server/app/en/settings.meta +1 -1
  606. package/dist/.next/server/app/en/settings.segments/$d$lang/settings/__PAGE__.segment.rsc +1 -1
  607. package/dist/.next/server/app/en/settings.segments/$d$lang/settings.segment.rsc +3 -3
  608. package/dist/.next/server/app/en/settings.segments/$d$lang.segment.rsc +3 -3
  609. package/dist/.next/server/app/en/settings.segments/_full.segment.rsc +6 -6
  610. package/dist/.next/server/app/en/settings.segments/_head.segment.rsc +1 -1
  611. package/dist/.next/server/app/en/settings.segments/_index.segment.rsc +1 -1
  612. package/dist/.next/server/app/en/settings.segments/_tree.segment.rsc +2 -2
  613. package/dist/.next/server/app/en.html +1 -1
  614. package/dist/.next/server/app/en.meta +1 -1
  615. package/dist/.next/server/app/en.segments/$d$lang/__PAGE__.segment.rsc +4 -14
  616. package/dist/.next/server/app/en.segments/$d$lang.segment.rsc +3 -3
  617. package/dist/.next/server/app/en.segments/_full.segment.rsc +12 -20
  618. package/dist/.next/server/app/en.segments/_head.segment.rsc +1 -1
  619. package/dist/.next/server/app/en.segments/_index.segment.rsc +1 -1
  620. package/dist/.next/server/app/en.segments/_tree.segment.rsc +2 -2
  621. package/dist/.next/server/app/es/books.html +1 -1
  622. package/dist/.next/server/app/es/books.meta +1 -1
  623. package/dist/.next/server/app/es/books.segments/$d$lang/books/__PAGE__.segment.rsc +2 -2
  624. package/dist/.next/server/app/es/books.segments/$d$lang/books.segment.rsc +1 -1
  625. package/dist/.next/server/app/es/books.segments/$d$lang.segment.rsc +3 -3
  626. package/dist/.next/server/app/es/books.segments/_full.segment.rsc +4 -4
  627. package/dist/.next/server/app/es/books.segments/_head.segment.rsc +1 -1
  628. package/dist/.next/server/app/es/books.segments/_index.segment.rsc +1 -1
  629. package/dist/.next/server/app/es/books.segments/_tree.segment.rsc +2 -2
  630. package/dist/.next/server/app/es/favorites/books.html +1 -1
  631. package/dist/.next/server/app/es/favorites/books.meta +2 -2
  632. package/dist/.next/server/app/es/favorites/books.segments/$d$lang/favorites/books/__PAGE__.segment.rsc +2 -2
  633. package/dist/.next/server/app/es/favorites/books.segments/$d$lang/favorites/books.segment.rsc +1 -1
  634. package/dist/.next/server/app/es/favorites/books.segments/$d$lang/favorites.segment.rsc +3 -3
  635. package/dist/.next/server/app/es/favorites/books.segments/$d$lang.segment.rsc +3 -3
  636. package/dist/.next/server/app/es/favorites/books.segments/_full.segment.rsc +6 -6
  637. package/dist/.next/server/app/es/favorites/books.segments/_head.segment.rsc +1 -1
  638. package/dist/.next/server/app/es/favorites/books.segments/_index.segment.rsc +1 -1
  639. package/dist/.next/server/app/es/favorites/books.segments/_tree.segment.rsc +2 -2
  640. package/dist/.next/server/app/es/favorites/others.html +1 -0
  641. package/dist/.next/server/app/es/favorites/others.meta +14 -0
  642. package/dist/.next/server/app/es/favorites/others.rsc +13 -0
  643. package/dist/.next/server/app/es/favorites/others.segments/_full.segment.rsc +13 -0
  644. package/dist/.next/server/app/es/favorites/others.segments/_tree.segment.rsc +1 -0
  645. package/dist/.next/server/app/es/favorites/others.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  646. package/dist/.next/server/app/es/favorites.html +1 -1
  647. package/dist/.next/server/app/es/favorites.meta +2 -2
  648. package/dist/.next/server/app/es/favorites.segments/$d$lang/favorites/__PAGE__.segment.rsc +1 -1
  649. package/dist/.next/server/app/es/favorites.segments/$d$lang/favorites.segment.rsc +3 -3
  650. package/dist/.next/server/app/es/favorites.segments/$d$lang.segment.rsc +3 -3
  651. package/dist/.next/server/app/es/favorites.segments/_full.segment.rsc +6 -6
  652. package/dist/.next/server/app/es/favorites.segments/_head.segment.rsc +1 -1
  653. package/dist/.next/server/app/es/favorites.segments/_index.segment.rsc +1 -1
  654. package/dist/.next/server/app/es/favorites.segments/_tree.segment.rsc +2 -2
  655. package/dist/.next/server/app/es/login.html +1 -1
  656. package/dist/.next/server/app/es/login.meta +1 -1
  657. package/dist/.next/server/app/es/login.segments/$d$lang/login/__PAGE__.segment.rsc +4 -4
  658. package/dist/.next/server/app/es/login.segments/$d$lang/login.segment.rsc +1 -1
  659. package/dist/.next/server/app/es/login.segments/$d$lang.segment.rsc +3 -3
  660. package/dist/.next/server/app/es/login.segments/_full.segment.rsc +6 -6
  661. package/dist/.next/server/app/es/login.segments/_head.segment.rsc +1 -1
  662. package/dist/.next/server/app/es/login.segments/_index.segment.rsc +1 -1
  663. package/dist/.next/server/app/es/login.segments/_tree.segment.rsc +2 -2
  664. package/dist/.next/server/app/es/manga/[series].html +1 -1
  665. package/dist/.next/server/app/es/manga/[series].meta +2 -2
  666. package/dist/.next/server/app/es/manga/[series].segments/$d$lang/manga/$d$series/__PAGE__.segment.rsc +1 -1
  667. package/dist/.next/server/app/es/manga/[series].segments/$d$lang/manga/$d$series.segment.rsc +1 -1
  668. package/dist/.next/server/app/es/manga/[series].segments/$d$lang/manga.segment.rsc +2 -2
  669. package/dist/.next/server/app/es/manga/[series].segments/$d$lang.segment.rsc +3 -3
  670. package/dist/.next/server/app/es/manga/[series].segments/_full.segment.rsc +5 -5
  671. package/dist/.next/server/app/es/manga/[series].segments/_head.segment.rsc +1 -1
  672. package/dist/.next/server/app/es/manga/[series].segments/_index.segment.rsc +1 -1
  673. package/dist/.next/server/app/es/manga/[series].segments/_tree.segment.rsc +2 -2
  674. package/dist/.next/server/app/es/manga/series.html +1 -1
  675. package/dist/.next/server/app/es/manga/series.meta +2 -2
  676. package/dist/.next/server/app/es/manga/series.segments/$d$lang/manga/series/__PAGE__.segment.rsc +1 -1
  677. package/dist/.next/server/app/es/manga/series.segments/$d$lang/manga/series.segment.rsc +1 -1
  678. package/dist/.next/server/app/es/manga/series.segments/$d$lang/manga.segment.rsc +2 -2
  679. package/dist/.next/server/app/es/manga/series.segments/$d$lang.segment.rsc +3 -3
  680. package/dist/.next/server/app/es/manga/series.segments/_full.segment.rsc +5 -5
  681. package/dist/.next/server/app/es/manga/series.segments/_head.segment.rsc +1 -1
  682. package/dist/.next/server/app/es/manga/series.segments/_index.segment.rsc +1 -1
  683. package/dist/.next/server/app/es/manga/series.segments/_tree.segment.rsc +2 -2
  684. package/dist/.next/server/app/es/manga/toread.html +1 -1
  685. package/dist/.next/server/app/es/manga/toread.meta +2 -2
  686. package/dist/.next/server/app/es/manga/toread.segments/$d$lang/manga/toread/__PAGE__.segment.rsc +1 -1
  687. package/dist/.next/server/app/es/manga/toread.segments/$d$lang/manga/toread.segment.rsc +1 -1
  688. package/dist/.next/server/app/es/manga/toread.segments/$d$lang/manga.segment.rsc +2 -2
  689. package/dist/.next/server/app/es/manga/toread.segments/$d$lang.segment.rsc +3 -3
  690. package/dist/.next/server/app/es/manga/toread.segments/_full.segment.rsc +5 -5
  691. package/dist/.next/server/app/es/manga/toread.segments/_head.segment.rsc +1 -1
  692. package/dist/.next/server/app/es/manga/toread.segments/_index.segment.rsc +1 -1
  693. package/dist/.next/server/app/es/manga/toread.segments/_tree.segment.rsc +2 -2
  694. package/dist/.next/server/app/es/manga/volume/[slug].html +1 -1
  695. package/dist/.next/server/app/es/manga/volume/[slug].meta +2 -2
  696. package/dist/.next/server/app/es/manga/volume/[slug].segments/$d$lang/manga/volume/$d$slug/__PAGE__.segment.rsc +1 -1
  697. package/dist/.next/server/app/es/manga/volume/[slug].segments/$d$lang/manga/volume/$d$slug.segment.rsc +1 -1
  698. package/dist/.next/server/app/es/manga/volume/[slug].segments/$d$lang/manga/volume.segment.rsc +1 -1
  699. package/dist/.next/server/app/es/manga/volume/[slug].segments/$d$lang/manga.segment.rsc +2 -2
  700. package/dist/.next/server/app/es/manga/volume/[slug].segments/$d$lang.segment.rsc +3 -3
  701. package/dist/.next/server/app/es/manga/volume/[slug].segments/_full.segment.rsc +5 -5
  702. package/dist/.next/server/app/es/manga/volume/[slug].segments/_head.segment.rsc +1 -1
  703. package/dist/.next/server/app/es/manga/volume/[slug].segments/_index.segment.rsc +1 -1
  704. package/dist/.next/server/app/es/manga/volume/[slug].segments/_tree.segment.rsc +2 -2
  705. package/dist/.next/server/app/es/manga/volumes.html +1 -1
  706. package/dist/.next/server/app/es/manga/volumes.meta +2 -2
  707. package/dist/.next/server/app/es/manga/volumes.segments/$d$lang/manga/volumes/__PAGE__.segment.rsc +1 -1
  708. package/dist/.next/server/app/es/manga/volumes.segments/$d$lang/manga/volumes.segment.rsc +1 -1
  709. package/dist/.next/server/app/es/manga/volumes.segments/$d$lang/manga.segment.rsc +2 -2
  710. package/dist/.next/server/app/es/manga/volumes.segments/$d$lang.segment.rsc +3 -3
  711. package/dist/.next/server/app/es/manga/volumes.segments/_full.segment.rsc +5 -5
  712. package/dist/.next/server/app/es/manga/volumes.segments/_head.segment.rsc +1 -1
  713. package/dist/.next/server/app/es/manga/volumes.segments/_index.segment.rsc +1 -1
  714. package/dist/.next/server/app/es/manga/volumes.segments/_tree.segment.rsc +2 -2
  715. package/dist/.next/server/app/es/manga.html +1 -1
  716. package/dist/.next/server/app/es/manga.meta +2 -2
  717. package/dist/.next/server/app/es/manga.segments/$d$lang/manga/__PAGE__.segment.rsc +3 -3
  718. package/dist/.next/server/app/es/manga.segments/$d$lang/manga.segment.rsc +2 -2
  719. package/dist/.next/server/app/es/manga.segments/$d$lang.segment.rsc +3 -3
  720. package/dist/.next/server/app/es/manga.segments/_full.segment.rsc +6 -6
  721. package/dist/.next/server/app/es/manga.segments/_head.segment.rsc +1 -1
  722. package/dist/.next/server/app/es/manga.segments/_index.segment.rsc +1 -1
  723. package/dist/.next/server/app/es/manga.segments/_tree.segment.rsc +2 -2
  724. package/dist/.next/server/app/es/others/[series].html +1 -0
  725. package/dist/.next/server/app/es/others/[series].meta +14 -0
  726. package/dist/.next/server/app/es/others/[series].segments/_full.segment.rsc +13 -0
  727. package/dist/.next/server/app/es/others/[series].segments/_tree.segment.rsc +1 -0
  728. package/dist/.next/server/app/es/others/[series].segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  729. package/dist/.next/server/app/es/others/series.html +1 -0
  730. package/dist/.next/server/app/es/others/series.meta +14 -0
  731. package/dist/.next/server/app/es/others/series.rsc +13 -0
  732. package/dist/.next/server/app/es/others/series.segments/_full.segment.rsc +13 -0
  733. package/dist/.next/server/app/es/others/series.segments/_tree.segment.rsc +1 -0
  734. package/dist/.next/server/app/es/others/series.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  735. package/dist/.next/server/app/es/others/toread.html +1 -0
  736. package/dist/.next/server/app/es/others/toread.meta +14 -0
  737. package/dist/.next/server/app/es/others/toread.rsc +13 -0
  738. package/dist/.next/server/app/es/others/toread.segments/_full.segment.rsc +13 -0
  739. package/dist/.next/server/app/es/others/toread.segments/_tree.segment.rsc +1 -0
  740. package/dist/.next/server/app/es/others/toread.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  741. package/dist/.next/server/app/es/others/volume/[slug].html +1 -0
  742. package/dist/.next/server/app/es/others/volume/[slug].meta +14 -0
  743. package/dist/.next/server/app/es/others/volume/[slug].segments/_full.segment.rsc +13 -0
  744. package/dist/.next/server/app/es/others/volume/[slug].segments/_tree.segment.rsc +1 -0
  745. package/dist/.next/server/app/es/others/volume/[slug].segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  746. package/dist/.next/server/app/es/others/volumes.html +1 -0
  747. package/dist/.next/server/app/es/others/volumes.meta +14 -0
  748. package/dist/.next/server/app/es/others/volumes.rsc +13 -0
  749. package/dist/.next/server/app/es/others/volumes.segments/_full.segment.rsc +13 -0
  750. package/dist/.next/server/app/es/others/volumes.segments/_tree.segment.rsc +1 -0
  751. package/dist/.next/server/app/es/others/volumes.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  752. package/dist/.next/server/app/es/others.html +1 -0
  753. package/dist/.next/server/app/es/others.meta +14 -0
  754. package/dist/.next/server/app/es/others.rsc +13 -0
  755. package/dist/.next/server/app/es/others.segments/_full.segment.rsc +13 -0
  756. package/dist/.next/server/app/es/others.segments/_tree.segment.rsc +1 -0
  757. package/dist/.next/server/app/es/others.segments/todo-remove-fake-segment/__PAGE__.segment.rsc +0 -0
  758. package/dist/.next/server/app/es/profile/notifications.html +1 -1
  759. package/dist/.next/server/app/es/profile/notifications.meta +1 -1
  760. package/dist/.next/server/app/es/profile/notifications.segments/$d$lang/profile/notifications/__PAGE__.segment.rsc +1 -1
  761. package/dist/.next/server/app/es/profile/notifications.segments/$d$lang/profile/notifications.segment.rsc +1 -1
  762. package/dist/.next/server/app/es/profile/notifications.segments/$d$lang/profile.segment.rsc +3 -3
  763. package/dist/.next/server/app/es/profile/notifications.segments/$d$lang.segment.rsc +3 -3
  764. package/dist/.next/server/app/es/profile/notifications.segments/_full.segment.rsc +6 -6
  765. package/dist/.next/server/app/es/profile/notifications.segments/_head.segment.rsc +1 -1
  766. package/dist/.next/server/app/es/profile/notifications.segments/_index.segment.rsc +1 -1
  767. package/dist/.next/server/app/es/profile/notifications.segments/_tree.segment.rsc +2 -2
  768. package/dist/.next/server/app/es/profile/update.html +1 -1
  769. package/dist/.next/server/app/es/profile/update.meta +1 -1
  770. package/dist/.next/server/app/es/profile/update.segments/$d$lang/profile/update/__PAGE__.segment.rsc +1 -1
  771. package/dist/.next/server/app/es/profile/update.segments/$d$lang/profile/update.segment.rsc +1 -1
  772. package/dist/.next/server/app/es/profile/update.segments/$d$lang/profile.segment.rsc +3 -3
  773. package/dist/.next/server/app/es/profile/update.segments/$d$lang.segment.rsc +3 -3
  774. package/dist/.next/server/app/es/profile/update.segments/_full.segment.rsc +6 -6
  775. package/dist/.next/server/app/es/profile/update.segments/_head.segment.rsc +1 -1
  776. package/dist/.next/server/app/es/profile/update.segments/_index.segment.rsc +1 -1
  777. package/dist/.next/server/app/es/profile/update.segments/_tree.segment.rsc +2 -2
  778. package/dist/.next/server/app/es/profile.html +1 -1
  779. package/dist/.next/server/app/es/profile.meta +1 -1
  780. package/dist/.next/server/app/es/profile.segments/$d$lang/profile/__PAGE__.segment.rsc +7 -7
  781. package/dist/.next/server/app/es/profile.segments/$d$lang/profile.segment.rsc +3 -3
  782. package/dist/.next/server/app/es/profile.segments/$d$lang.segment.rsc +3 -3
  783. package/dist/.next/server/app/es/profile.segments/_full.segment.rsc +10 -10
  784. package/dist/.next/server/app/es/profile.segments/_head.segment.rsc +1 -1
  785. package/dist/.next/server/app/es/profile.segments/_index.segment.rsc +1 -1
  786. package/dist/.next/server/app/es/profile.segments/_tree.segment.rsc +2 -2
  787. package/dist/.next/server/app/es/search.html +1 -1
  788. package/dist/.next/server/app/es/search.meta +1 -1
  789. package/dist/.next/server/app/es/search.segments/$d$lang/search/__PAGE__.segment.rsc +3 -3
  790. package/dist/.next/server/app/es/search.segments/$d$lang/search.segment.rsc +1 -1
  791. package/dist/.next/server/app/es/search.segments/$d$lang.segment.rsc +3 -3
  792. package/dist/.next/server/app/es/search.segments/_full.segment.rsc +5 -5
  793. package/dist/.next/server/app/es/search.segments/_head.segment.rsc +1 -1
  794. package/dist/.next/server/app/es/search.segments/_index.segment.rsc +1 -1
  795. package/dist/.next/server/app/es/search.segments/_tree.segment.rsc +2 -2
  796. package/dist/.next/server/app/es/settings/library.html +1 -1
  797. package/dist/.next/server/app/es/settings/library.meta +1 -1
  798. package/dist/.next/server/app/es/settings/library.segments/$d$lang/settings/library/__PAGE__.segment.rsc +5 -10
  799. package/dist/.next/server/app/es/settings/library.segments/$d$lang/settings/library.segment.rsc +1 -1
  800. package/dist/.next/server/app/es/settings/library.segments/$d$lang/settings.segment.rsc +3 -3
  801. package/dist/.next/server/app/es/settings/library.segments/$d$lang.segment.rsc +3 -3
  802. package/dist/.next/server/app/es/settings/library.segments/_full.segment.rsc +18 -20
  803. package/dist/.next/server/app/es/settings/library.segments/_head.segment.rsc +1 -1
  804. package/dist/.next/server/app/es/settings/library.segments/_index.segment.rsc +1 -1
  805. package/dist/.next/server/app/es/settings/library.segments/_tree.segment.rsc +2 -2
  806. package/dist/.next/server/app/es/settings.html +1 -1
  807. package/dist/.next/server/app/es/settings.meta +1 -1
  808. package/dist/.next/server/app/es/settings.segments/$d$lang/settings/__PAGE__.segment.rsc +1 -1
  809. package/dist/.next/server/app/es/settings.segments/$d$lang/settings.segment.rsc +3 -3
  810. package/dist/.next/server/app/es/settings.segments/$d$lang.segment.rsc +3 -3
  811. package/dist/.next/server/app/es/settings.segments/_full.segment.rsc +6 -6
  812. package/dist/.next/server/app/es/settings.segments/_head.segment.rsc +1 -1
  813. package/dist/.next/server/app/es/settings.segments/_index.segment.rsc +1 -1
  814. package/dist/.next/server/app/es/settings.segments/_tree.segment.rsc +2 -2
  815. package/dist/.next/server/app/es.html +1 -1
  816. package/dist/.next/server/app/es.meta +1 -1
  817. package/dist/.next/server/app/es.segments/$d$lang/__PAGE__.segment.rsc +4 -14
  818. package/dist/.next/server/app/es.segments/$d$lang.segment.rsc +3 -3
  819. package/dist/.next/server/app/es.segments/_full.segment.rsc +12 -20
  820. package/dist/.next/server/app/es.segments/_head.segment.rsc +1 -1
  821. package/dist/.next/server/app/es.segments/_index.segment.rsc +1 -1
  822. package/dist/.next/server/app/es.segments/_tree.segment.rsc +2 -2
  823. package/dist/.next/server/app-paths-manifest.json +7 -0
  824. package/dist/.next/server/chunks/[externals]__0g4phum._.js +3 -0
  825. package/dist/.next/server/chunks/[externals]__0itqrfx._.js +3 -0
  826. package/dist/.next/server/chunks/[externals]__0r1fab0._.js +3 -0
  827. package/dist/.next/server/chunks/[root-of-the-server]__0.784_9._.js +3 -0
  828. package/dist/.next/server/chunks/[root-of-the-server]__03ui2h9._.js +5 -0
  829. package/dist/.next/server/chunks/[root-of-the-server]__06.pq7s._.js +3 -0
  830. package/dist/.next/server/chunks/[root-of-the-server]__065cjna._.js +1 -1
  831. package/dist/.next/server/chunks/[root-of-the-server]__0b-gt50._.js +3 -0
  832. package/dist/.next/server/chunks/[root-of-the-server]__0b1bjiu._.js +3 -0
  833. package/dist/.next/server/chunks/[root-of-the-server]__0bewxw6._.js +5 -0
  834. package/dist/.next/server/chunks/[root-of-the-server]__0ce5-yz._.js +3 -0
  835. package/dist/.next/server/chunks/[root-of-the-server]__0clg14b._.js +3 -0
  836. package/dist/.next/server/chunks/{[root-of-the-server]__0q4f5nz._.js → [root-of-the-server]__0qlcbp3._.js} +2 -2
  837. package/dist/.next/server/chunks/[root-of-the-server]__0wzdxnb._.js +1 -1
  838. package/dist/.next/server/chunks/[root-of-the-server]__0ysigyi._.js +3 -0
  839. package/dist/.next/server/chunks/{[root-of-the-server]__0bqqxvi._.js → [root-of-the-server]__0zs4v26._.js} +3 -3
  840. package/dist/.next/server/chunks/{[root-of-the-server]__12wzt~c._.js → [root-of-the-server]__128es-u._.js} +5 -5
  841. package/dist/.next/server/chunks/_0-x.21m._.js +1 -1
  842. package/dist/.next/server/chunks/{[root-of-the-server]__0w8r0rc._.js → _0.87w4~._.js} +14 -14
  843. package/dist/.next/server/chunks/_07otzs8._.js +1 -1
  844. package/dist/.next/server/chunks/_0he79j5._.js +1 -1
  845. package/dist/.next/server/chunks/_0qvo6nz._.js +1 -1
  846. package/dist/.next/server/chunks/_0yipzck._.js +38 -25
  847. package/dist/.next/server/chunks/_107a6s1._.js +1 -1
  848. package/dist/.next/server/chunks/{[root-of-the-server]__120g6lv._.js → _10xhbd6._.js} +14 -14
  849. package/dist/.next/server/chunks/ssr/0xn0_next_dist_esm_build_templates_app-page_0-pc8os.js +4 -0
  850. package/dist/.next/server/chunks/ssr/0xn0_next_dist_esm_build_templates_app-page_074qbaq.js +4 -0
  851. package/dist/.next/server/chunks/ssr/0xn0_next_dist_esm_build_templates_app-page_0c76.dm.js +4 -0
  852. package/dist/.next/server/chunks/ssr/0xn0_next_dist_esm_build_templates_app-page_0f4i7i8.js +4 -0
  853. package/dist/.next/server/chunks/ssr/0xn0_next_dist_esm_build_templates_app-page_0l30j5y.js +4 -0
  854. package/dist/.next/server/chunks/ssr/0xn0_next_dist_esm_build_templates_app-page_0pyzm~s.js +4 -0
  855. package/dist/.next/server/chunks/ssr/0xn0_next_dist_esm_build_templates_app-page_0u1daue.js +4 -0
  856. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0-q2i~5._.js +190 -0
  857. package/dist/.next/server/chunks/ssr/{[root-of-the-server]__0bo9310._.js → [root-of-the-server]__011q5u_._.js} +1 -1
  858. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0163-3l._.js +1 -1
  859. package/dist/.next/server/chunks/ssr/[root-of-the-server]__018gs4f._.js +1 -1
  860. package/dist/.next/server/chunks/ssr/[root-of-the-server]__03wjpq_._.js +11 -0
  861. package/dist/.next/server/chunks/ssr/[root-of-the-server]__04~lt3~._.js +5 -0
  862. package/dist/.next/server/chunks/ssr/{[root-of-the-server]__0drk75y._.js → [root-of-the-server]__06ofwku._.js} +2 -2
  863. package/dist/.next/server/chunks/ssr/[root-of-the-server]__07na2c_._.js +3 -0
  864. package/dist/.next/server/chunks/ssr/[root-of-the-server]__07rf6lb._.js +3 -0
  865. package/dist/.next/server/chunks/ssr/[root-of-the-server]__07sy9-b._.js +3 -0
  866. package/dist/.next/server/chunks/ssr/[root-of-the-server]__09itgsi._.js +190 -0
  867. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0_8n5q2._.js +192 -0
  868. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0_roig5._.js +217 -0
  869. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0axs.j.._.js +3 -0
  870. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0b7ifp7._.js +3 -0
  871. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0dt626~._.js +1 -1
  872. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0f51w7p._.js +1 -1
  873. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0fta~.q._.js +1 -1
  874. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0gsztf3._.js +11 -0
  875. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0gxkw9z._.js +14 -0
  876. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0o-6bic._.js +3 -0
  877. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0o55xc2._.js +3 -0
  878. package/dist/.next/server/chunks/ssr/{[root-of-the-server]__0wc3k~b._.js → [root-of-the-server]__0og.o6q._.js} +55 -55
  879. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0p_l1jw._.js +217 -0
  880. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0r91z2h._.js +195 -0
  881. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0r~jl-9._.js +3 -0
  882. package/dist/.next/server/chunks/ssr/{[root-of-the-server]__0wiet4z._.js → [root-of-the-server]__0sfm04s._.js} +2 -2
  883. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0xftss_._.js +3 -0
  884. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0yh_hc5._.js +3 -0
  885. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0~zf3hg._.js +11 -0
  886. package/dist/.next/server/chunks/ssr/[root-of-the-server]__11qvc-y._.js +3 -0
  887. package/dist/.next/server/chunks/ssr/_0-9h00.._.js +223 -0
  888. package/dist/.next/server/chunks/ssr/_01lb~~9._.js +190 -0
  889. package/dist/.next/server/chunks/ssr/_01t4eh3._.js +194 -0
  890. package/dist/.next/server/chunks/ssr/{_00eq9hf._.js → _021sqfh._.js} +2 -2
  891. package/dist/.next/server/chunks/ssr/_05m-s-d._.js +190 -0
  892. package/dist/.next/server/chunks/ssr/_05sap9h._.js +58 -0
  893. package/dist/.next/server/chunks/ssr/_05sf1oh._.js +190 -0
  894. package/dist/.next/server/chunks/ssr/{_0_wsici._.js → _05~0eqn._.js} +3 -3
  895. package/dist/.next/server/chunks/ssr/{_0_y--8g._.js → _06_9i-8._.js} +2 -2
  896. package/dist/.next/server/chunks/ssr/{_07-ylhi._.js → _07599kr._.js} +2 -2
  897. package/dist/.next/server/chunks/ssr/_07xxqxh._.js +1 -1
  898. package/dist/.next/server/chunks/ssr/_08szm77._.js +58 -0
  899. package/dist/.next/server/chunks/ssr/_08z1e7w._.js +3 -0
  900. package/dist/.next/server/chunks/ssr/_092ya8a._.js +1 -1
  901. package/dist/.next/server/chunks/ssr/_0beh077._.js +58 -0
  902. package/dist/.next/server/chunks/ssr/_0d1amc6._.js +223 -0
  903. package/dist/.next/server/chunks/ssr/_0dg9v3h._.js +58 -0
  904. package/dist/.next/server/chunks/ssr/_0d~_avh._.js +3 -0
  905. package/dist/.next/server/chunks/ssr/_0em84.6._.js +190 -0
  906. package/dist/.next/server/chunks/ssr/{src_057v97n._.js → _0g.jfdr._.js} +2 -2
  907. package/dist/.next/server/chunks/ssr/_0h.5.93._.js +1 -1
  908. package/dist/.next/server/chunks/ssr/_0ho~axn._.js +58 -0
  909. package/dist/.next/server/chunks/ssr/_0i-_eb8._.js +1 -1
  910. package/dist/.next/server/chunks/ssr/_0i6jouj._.js +1 -1
  911. package/dist/.next/server/chunks/ssr/_0io0xwx._.js +1 -1
  912. package/dist/.next/server/chunks/ssr/_0iq8tqc._.js +1 -1
  913. package/dist/.next/server/chunks/ssr/{_05voq8o._.js → _0k5m7fw._.js} +17 -163
  914. package/dist/.next/server/chunks/ssr/_0kkqkwq._.js +3 -0
  915. package/dist/.next/server/chunks/ssr/_0l~k40h._.js +190 -0
  916. package/dist/.next/server/chunks/ssr/_0muh9gd._.js +245 -0
  917. package/dist/.next/server/chunks/ssr/_0o.dcan._.js +83 -0
  918. package/dist/.next/server/chunks/ssr/_0p~hw5y._.js +1 -1
  919. package/dist/.next/server/chunks/ssr/_0rkh~q9._.js +91 -0
  920. package/dist/.next/server/chunks/ssr/_0so9_59._.js +1 -1
  921. package/dist/.next/server/chunks/ssr/{_048l2a~._.js → _0uq185f._.js} +3 -3
  922. package/dist/.next/server/chunks/ssr/_0v5w4-f._.js +18 -0
  923. package/dist/.next/server/chunks/ssr/_0vvf5_o._.js +58 -0
  924. package/dist/.next/server/chunks/ssr/_0w900lv._.js +58 -0
  925. package/dist/.next/server/chunks/ssr/_0wad999._.js +190 -0
  926. package/dist/.next/server/chunks/ssr/_0wc7fuu._.js +5 -0
  927. package/dist/.next/server/chunks/ssr/_10klci.._.js +58 -0
  928. package/dist/.next/server/chunks/ssr/node_modules__pnpm_0v18tzg._.js +3 -0
  929. package/dist/.next/server/chunks/ssr/{src_08gpr8j._.js → src_0.ou.q9._.js} +2 -2
  930. package/dist/.next/server/chunks/ssr/src_0a~rrng._.js +3 -0
  931. package/dist/.next/server/chunks/ssr/src_0ulhod5._.js +3 -0
  932. package/dist/.next/server/chunks/ssr/src_1317vs.._.js +1 -1
  933. package/dist/.next/server/chunks/ssr/src_components_0aht.-v._.js +1 -1
  934. package/dist/.next/server/chunks/ssr/src_components_13jytkv._.js +1 -1
  935. package/dist/.next/server/chunks/ssr/src_components_favorites_FavoritesNav_tsx_03vnv_s._.js +1 -1
  936. package/dist/.next/server/chunks/ssr/src_components_library_manga_row_MangaRowCarousel_tsx_0ewjq7u._.js +1 -1
  937. package/dist/.next/server/chunks/ssr/src_components_ui_MangaCard_tsx_0iwds3j._.js +3 -0
  938. package/dist/.next/server/chunks/ssr/src_lib_i18n_dictionaries_en_favorites_json_[json]_cjs_0-lpvja._.js +1 -1
  939. package/dist/.next/server/chunks/ssr/src_lib_i18n_dictionaries_en_settings_json_[json]_cjs_0yjg~r3._.js +1 -1
  940. package/dist/.next/server/chunks/ssr/src_lib_i18n_dictionaries_en_sidebar_json_[json]_cjs_120s~w2._.js +1 -1
  941. package/dist/.next/server/chunks/ssr/src_lib_i18n_dictionaries_en_toast_json_[json]_cjs_0id_yw.._.js +1 -1
  942. package/dist/.next/server/chunks/ssr/src_lib_i18n_dictionaries_es_favorites_json_[json]_cjs_0kipdj4._.js +1 -1
  943. package/dist/.next/server/chunks/ssr/src_lib_i18n_dictionaries_es_settings_json_[json]_cjs_0z6lpkb._.js +1 -1
  944. package/dist/.next/server/chunks/ssr/src_lib_i18n_dictionaries_es_sidebar_json_[json]_cjs_0tukryz._.js +1 -1
  945. package/dist/.next/server/middleware-build-manifest.js +5 -5
  946. package/dist/.next/server/middleware.js +1 -1
  947. package/dist/.next/server/next-font-manifest.js +1 -1
  948. package/dist/.next/server/next-font-manifest.json +35 -0
  949. package/dist/.next/server/pages/404.html +1 -1
  950. package/dist/.next/server/pages/500.html +1 -1
  951. package/dist/.next/server/server-reference-manifest.js +1 -1
  952. package/dist/.next/server/server-reference-manifest.json +1082 -404
  953. package/dist/.next/static/QswzFmSO0_F9HMXGRwJ60/_ssgManifest.js +1 -0
  954. package/dist/.next/static/chunks/{01lwva-nto8jr.js → 0.1frmktq0ks7.js} +1 -1
  955. package/dist/.next/static/chunks/00ze.egp2x3hk.js +1 -0
  956. package/dist/.next/static/chunks/05phu._pl72~..js +1 -0
  957. package/dist/.next/static/chunks/06z8j2h.ku2.2.js +1 -0
  958. package/dist/.next/static/chunks/087whik2efqsn.css +3 -0
  959. package/dist/.next/static/chunks/08qd081yts704.js +3 -0
  960. package/dist/.next/static/chunks/{0rvajo28np3og.js → 09..o1mntk_5_.js} +1 -1
  961. package/dist/.next/static/chunks/0bhdftqq6h968.js +1 -0
  962. package/dist/.next/static/chunks/0ettzx2dtf1zw.js +1 -0
  963. package/dist/.next/static/chunks/{0z5qgi03n50zx.js → 0gh1sx_e4-ruy.js} +1 -1
  964. package/dist/.next/static/chunks/{0-.2w.r.qbyxh.js → 0lp5iej3tv9p-.js} +1 -1
  965. package/dist/.next/static/chunks/{0h1jok_3p~tov.js → 0muhqmv5f4apu.js} +1 -1
  966. package/dist/.next/static/chunks/0pv2_8ytj2ego.js +1 -0
  967. package/dist/.next/static/chunks/0q50yz684otvy.js +1 -0
  968. package/dist/.next/static/chunks/0qsquyazc.9qf.js +1 -0
  969. package/dist/.next/static/chunks/0z1hoot26i91q.js +1 -0
  970. package/dist/.next/static/chunks/{0jag03phm47nb.js → 12tl5eze~53ne.js} +1 -1
  971. package/dist/.next/static/chunks/{0ql49co.cgb-6.js → 15esuzai579.7.js} +2 -2
  972. package/dist/.next/static/chunks/15p4wur.ohvy4.js +1 -0
  973. package/dist/.next/static/chunks/{turbopack-0pm132gv35tgq.js → turbopack-0v_yjz5ui90co.js} +1 -1
  974. package/dist/README.md +0 -9
  975. package/dist/migrations/002_app_settings.sql +10 -0
  976. package/dist/package.json +1 -1
  977. package/dist/runtime/commands/update.mjs +62 -2
  978. package/dist/src/actions/app-settings.ts +33 -0
  979. package/dist/src/actions/library.ts +17 -7
  980. package/dist/src/actions/stats.ts +87 -101
  981. package/dist/src/app/[lang]/favorites/layout.tsx +6 -1
  982. package/dist/src/app/[lang]/favorites/others/page.tsx +73 -0
  983. package/dist/src/app/[lang]/favorites/page.tsx +8 -2
  984. package/dist/src/app/[lang]/manga/[series]/page.tsx +17 -0
  985. package/dist/src/app/[lang]/manga/layout.tsx +9 -1
  986. package/dist/src/app/[lang]/manga/page.tsx +7 -3
  987. package/dist/src/app/[lang]/manga/series/page.tsx +5 -0
  988. package/dist/src/app/[lang]/manga/toread/page.tsx +5 -0
  989. package/dist/src/app/[lang]/manga/volume/[slug]/page.tsx +17 -0
  990. package/dist/src/app/[lang]/manga/volumes/page.tsx +5 -0
  991. package/dist/src/app/[lang]/others/[series]/page.tsx +202 -0
  992. package/dist/src/app/[lang]/others/layout.tsx +41 -0
  993. package/dist/src/app/[lang]/others/page.tsx +67 -0
  994. package/dist/src/app/[lang]/others/series/page.tsx +63 -0
  995. package/dist/src/app/[lang]/others/toread/page.tsx +63 -0
  996. package/dist/src/app/[lang]/others/volume/[slug]/page.tsx +151 -0
  997. package/dist/src/app/[lang]/others/volumes/page.tsx +63 -0
  998. package/dist/src/app/[lang]/page.tsx +147 -49
  999. package/dist/src/app/[lang]/settings/library/page.tsx +26 -11
  1000. package/dist/src/app/api/admin/db/download/route.ts +3 -1
  1001. package/dist/src/app/api/admin/db/upload/route.ts +3 -1
  1002. package/dist/src/app/api/admin/scan-manga/extract-cover/route.ts +3 -1
  1003. package/dist/src/app/api/admin/scan-manga/extract-meta/route.ts +3 -1
  1004. package/dist/src/app/api/admin/scan-manga/index-library/route.ts +3 -1
  1005. package/dist/src/app/api/admin/scan-manga/start/route.ts +3 -1
  1006. package/dist/src/app/api/admin/scan-manga/status/route.ts +3 -1
  1007. package/dist/src/app/api/admin/upload/confirm/route.ts +3 -1
  1008. package/dist/src/app/api/admin/upload/library/chunk/route.ts +3 -1
  1009. package/dist/src/app/api/admin/upload/library/route.ts +3 -1
  1010. package/dist/src/app/api/admin/upload/presigned/route.ts +3 -1
  1011. package/dist/src/app/api/reader/temp-image/route.ts +3 -1
  1012. package/dist/src/components/favorites/FavoritesNav.tsx +15 -1
  1013. package/dist/src/components/home/manga/HeroKeepRead.tsx +27 -35
  1014. package/dist/src/components/home/manga/RowNewVols.tsx +2 -19
  1015. package/dist/src/components/home/manga/RowNewVolsCarousel.tsx +6 -1
  1016. package/dist/src/components/library/manga/DeleteMangaItem.tsx +10 -3
  1017. package/dist/src/components/library/manga/Demographics.tsx +11 -5
  1018. package/dist/src/components/library/manga/FiltersDrawer.tsx +8 -3
  1019. package/dist/src/components/library/manga/MangaNav.tsx +18 -9
  1020. package/dist/src/components/library/manga/MetadataPanel.tsx +11 -3
  1021. package/dist/src/components/library/manga/ReadButtonsVolume.tsx +7 -1
  1022. package/dist/src/components/library/manga/SeriesContent.tsx +6 -1
  1023. package/dist/src/components/library/manga/VolumesContent.tsx +18 -3
  1024. package/dist/src/components/library/manga/grid/SeriesIndex.tsx +12 -2
  1025. package/dist/src/components/library/manga/grid/SeriesIndexFav.tsx +17 -3
  1026. package/dist/src/components/library/manga/grid/VolumesIndex.tsx +12 -2
  1027. package/dist/src/components/library/manga/grid/VolumesIndexFav.tsx +15 -2
  1028. package/dist/src/components/library/manga/grid/WantToRead.tsx +12 -2
  1029. package/dist/src/components/library/manga/row/HeroKeepRead.tsx +24 -7
  1030. package/dist/src/components/library/manga/row/MangaRowCarousel.tsx +12 -1
  1031. package/dist/src/components/library/manga/row/NewVols.tsx +13 -2
  1032. package/dist/src/components/library/manga/row/NextVol.tsx +13 -2
  1033. package/dist/src/components/library/manga/row/RecentlyRead.tsx +13 -2
  1034. package/dist/src/components/mobNav/MobNav.tsx +3 -0
  1035. package/dist/src/components/mobNav/MobNavButton.tsx +4 -1
  1036. package/dist/src/components/mobNav/MobNavModal.tsx +9 -1
  1037. package/dist/src/components/settings/LibraryModeTile.tsx +76 -0
  1038. package/dist/src/components/sidebar/MainNav.tsx +17 -2
  1039. package/dist/src/components/sidebar/sidebar.tsx +7 -1
  1040. package/dist/src/components/stats/ReaderPanel.tsx +6 -2
  1041. package/dist/src/components/ui/MangaCard.tsx +2 -28
  1042. package/dist/src/lib/auth/verifySession.ts +11 -8
  1043. package/dist/src/lib/db/appSettings.ts +83 -0
  1044. package/dist/src/lib/db/library.ts +95 -17
  1045. package/dist/src/lib/db/migrations/002_app_settings.sql +10 -0
  1046. package/dist/src/lib/i18n/dictionaries/en/favorites.json +1 -0
  1047. package/dist/src/lib/i18n/dictionaries/en/settings.json +5 -1
  1048. package/dist/src/lib/i18n/dictionaries/en/sidebar.json +1 -0
  1049. package/dist/src/lib/i18n/dictionaries/es/favorites.json +1 -0
  1050. package/dist/src/lib/i18n/dictionaries/es/settings.json +5 -1
  1051. package/dist/src/lib/i18n/dictionaries/es/sidebar.json +1 -0
  1052. package/dist/src/lib/librarySection.ts +54 -0
  1053. package/package.json +1 -1
  1054. package/runtime/commands/update.mjs +62 -2
  1055. package/dist/.next/server/chunks/[externals]__06o7v.s._.js +0 -3
  1056. package/dist/.next/server/chunks/[externals]__08.r02j._.js +0 -3
  1057. package/dist/.next/server/chunks/[externals]__0io1dqn._.js +0 -3
  1058. package/dist/.next/server/chunks/[root-of-the-server]__000e5ac._.js +0 -5
  1059. package/dist/.next/server/chunks/[root-of-the-server]__01minwl._.js +0 -3
  1060. package/dist/.next/server/chunks/[root-of-the-server]__0mho9rx._.js +0 -3
  1061. package/dist/.next/server/chunks/[root-of-the-server]__0qxte8q._.js +0 -3
  1062. package/dist/.next/server/chunks/[root-of-the-server]__0thue9b._.js +0 -3
  1063. package/dist/.next/server/chunks/[root-of-the-server]__0tp8msd._.js +0 -3
  1064. package/dist/.next/server/chunks/[root-of-the-server]__0w.wsz5._.js +0 -3
  1065. package/dist/.next/server/chunks/[root-of-the-server]__0w30bka._.js +0 -3
  1066. package/dist/.next/server/chunks/[root-of-the-server]__0zbby0w._.js +0 -5
  1067. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0._f028._.js +0 -36
  1068. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0.m~6gk._.js +0 -4
  1069. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0.ryx.a._.js +0 -4
  1070. package/dist/.next/server/chunks/ssr/[root-of-the-server]__03otmt0._.js +0 -3
  1071. package/dist/.next/server/chunks/ssr/[root-of-the-server]__07-jt01._.js +0 -149
  1072. package/dist/.next/server/chunks/ssr/[root-of-the-server]__07rj5~y._.js +0 -14
  1073. package/dist/.next/server/chunks/ssr/[root-of-the-server]__089fvdc._.js +0 -4
  1074. package/dist/.next/server/chunks/ssr/[root-of-the-server]__08zvzs0._.js +0 -3
  1075. package/dist/.next/server/chunks/ssr/[root-of-the-server]__098q1zi._.js +0 -3
  1076. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0_~n0jf._.js +0 -3
  1077. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0bf.gcx._.js +0 -4
  1078. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0emto8o._.js +0 -5
  1079. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0fpe-e_._.js +0 -18
  1080. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0i935p0._.js +0 -36
  1081. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0kwcjdy._.js +0 -11
  1082. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0lmhha4._.js +0 -6
  1083. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0mrfwmc._.js +0 -3
  1084. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0od4ov7._.js +0 -14
  1085. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0o~wtg1._.js +0 -3
  1086. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0pgblxq._.js +0 -5
  1087. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0qmig-l._.js +0 -37
  1088. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0tsardx._.js +0 -3
  1089. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0w5_b~q._.js +0 -37
  1090. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0xvohej._.js +0 -3
  1091. package/dist/.next/server/chunks/ssr/[root-of-the-server]__0y2f1~v._.js +0 -5
  1092. package/dist/.next/server/chunks/ssr/[root-of-the-server]__10lwhia._.js +0 -4
  1093. package/dist/.next/server/chunks/ssr/[root-of-the-server]__11mv0l0._.js +0 -130
  1094. package/dist/.next/server/chunks/ssr/_0-ebvut._.js +0 -3
  1095. package/dist/.next/server/chunks/ssr/_041r_yi._.js +0 -3
  1096. package/dist/.next/server/chunks/ssr/_08pl1y1._.js +0 -3
  1097. package/dist/.next/server/chunks/ssr/_0fuvfg_._.js +0 -18
  1098. package/dist/.next/server/chunks/ssr/_0f~qxkm._.js +0 -3
  1099. package/dist/.next/server/chunks/ssr/node_modules__pnpm_0.rcelq._.js +0 -3
  1100. package/dist/.next/server/chunks/ssr/src_11n4vzd._.js +0 -3
  1101. package/dist/.next/static/PWw2Oo50QJHfYm7Z43WyV/_ssgManifest.js +0 -1
  1102. package/dist/.next/static/chunks/05motg~dk9exd.js +0 -1
  1103. package/dist/.next/static/chunks/07rjsa_k9xgyl.js +0 -1
  1104. package/dist/.next/static/chunks/0d5njxct3o-0e.js +0 -1
  1105. package/dist/.next/static/chunks/0gfubdpl2-_6..js +0 -1
  1106. package/dist/.next/static/chunks/0jiz239_9337c.css +0 -3
  1107. package/dist/.next/static/chunks/0ob9ncnj.i~pr.js +0 -1
  1108. package/dist/.next/static/chunks/0qvxbk7v2fb82.js +0 -1
  1109. package/dist/.next/static/chunks/0~_urpr.p5fsg.js +0 -3
  1110. package/dist/.next/static/chunks/12h.-dzk4mq7e.js +0 -1
  1111. package/dist/.next/static/chunks/15l91tk5_1zt..js +0 -1
  1112. package/dist/.next/static/chunks/16uo5t_-6qm9b.js +0 -1
  1113. package/dist/.next/static/chunks/187jspc2d6.0_.js +0 -1
  1114. /package/dist/.next/static/{PWw2Oo50QJHfYm7Z43WyV → QswzFmSO0_F9HMXGRwJ60}/_buildManifest.js +0 -0
  1115. /package/dist/.next/static/{PWw2Oo50QJHfYm7Z43WyV → QswzFmSO0_F9HMXGRwJ60}/_clientMiddlewareManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/034.po9-x_6e_.js","static/chunks/17mf9df0ge8d_.js","static/chunks/01lwva-nto8jr.js","static/chunks/0m58q2exkjk_h.js","static/chunks/17lvd-1dh8nb8.js","static/chunks/094kqvfb6hqi1.js"],runtimeModuleIds:[7634]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function k(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let j=Symbol("turbopack queues"),v=Symbol("turbopack exports"),U=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=k(),u=Object.assign(s,{[v]:r.exports,[j]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[v]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(j in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[v]:{},[j]:e=>e(t)};return e.then(e=>{r[v]=e,C(t)},e=>{r[U]=e,C(t)}),r}}return{[v]:e,[j]:()=>{}}}),r=()=>t.map(e=>{if(e[U])throw e[U];return e[v]}),{promise:i,resolve:l}=k(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[j](u)),s.queueCount?i:r()},function(e){e?l(u[U]=e):i(u[v]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function _(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let R=s.prototype,S=new Map;u.M=S;let $=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,q(r));let o=r.included||[],i=o.map(e=>!!S.has(e)||$.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,q(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,q(r.path)),l))E.has(o)||E.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}R.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:_(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function q(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return M(i.Parent,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.q=function(e,t){m.call(this,`${e}${r}`,t)},R.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>q(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(q(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let N=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=S.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:_(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,S)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?q(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(q("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(N.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(N.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(q(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(q(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/034.po9-x_6e_.js","static/chunks/17mf9df0ge8d_.js","static/chunks/0.1frmktq0ks7.js","static/chunks/0m58q2exkjk_h.js","static/chunks/17lvd-1dh8nb8.js","static/chunks/094kqvfb6hqi1.js"],runtimeModuleIds:[7634]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function k(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let j=Symbol("turbopack queues"),v=Symbol("turbopack exports"),U=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=k(),u=Object.assign(s,{[v]:r.exports,[j]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[v]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(j in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[v]:{},[j]:e=>e(t)};return e.then(e=>{r[v]=e,C(t)},e=>{r[U]=e,C(t)}),r}}return{[v]:e,[j]:()=>{}}}),r=()=>t.map(e=>{if(e[U])throw e[U];return e[v]}),{promise:i,resolve:l}=k(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[j](u)),s.queueCount?i:r()},function(e){e?l(u[U]=e):i(u[v]),C(n)}),n&&-1===n.status&&(n.status=0)};let P=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function _(e,t){throw Error(`Invariant: ${t(e)}`)}P.prototype=URL.prototype,u.U=P,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let R=s.prototype,S=new Map;u.M=S;let $=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,q(r));let o=r.included||[],i=o.map(e=>!!S.has(e)||$.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,q(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,q(r.path)),l))E.has(o)||E.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}R.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:_(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function q(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return M(i.Parent,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.q=function(e,t){m.call(this,`${e}${r}`,t)},R.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>q(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(q(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let N=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=S.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:_(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,S)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?q(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(q("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(N.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(N.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(q(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(q(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
package/dist/README.md CHANGED
@@ -41,12 +41,3 @@ On startup Bunko Shelf:
41
41
  - loads `.env` from the wrapper project
42
42
  - runs SQL migrations against PostgreSQL
43
43
  - boots the compiled Next.js standalone server
44
-
45
- ## Publish flow
46
-
47
- This package is built for npm distribution:
48
-
49
- - `pnpm build:release` generates `dist/`
50
- - Next.js runs with `output: "standalone"`
51
- - migrations are copied into the published artifact
52
- - `.github/workflows/publish.yml` builds and publishes on GitHub release
@@ -0,0 +1,10 @@
1
+ CREATE TABLE IF NOT EXISTS app_settings (
2
+ id TEXT PRIMARY KEY,
3
+ others_library_enabled BOOLEAN NOT NULL DEFAULT FALSE,
4
+ created_at TIMESTAMP NOT NULL DEFAULT NOW(),
5
+ updated_at TIMESTAMP NOT NULL DEFAULT NOW()
6
+ );
7
+
8
+ INSERT INTO app_settings (id, others_library_enabled)
9
+ VALUES ('global', FALSE)
10
+ ON CONFLICT (id) DO NOTHING;
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itsmrtr/bunkoshelf",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "description": "Self-hosted personal manga library.",
5
5
  "keywords": [
6
6
  "bunko",
@@ -5,6 +5,48 @@ import fs from "fs-extra";
5
5
  import { join } from "node:path";
6
6
 
7
7
  const PACKAGE_NAME = "@itsmrtr/bunkoshelf";
8
+ const REPOSITORY_NAME = "martirale/bunkoshelf";
9
+ const REGISTRY_URL = `https://registry.npmjs.org/${encodeURIComponent(PACKAGE_NAME)}/latest`;
10
+
11
+ async function resolveGithubTarget(version) {
12
+ if (version !== "latest") {
13
+ return `github:${REPOSITORY_NAME}#${version}`;
14
+ }
15
+
16
+ try {
17
+ const response = await fetch(REGISTRY_URL, {
18
+ headers: {
19
+ Accept: "application/json",
20
+ },
21
+ signal: AbortSignal.timeout(4000),
22
+ });
23
+
24
+ if (!response.ok) {
25
+ return `github:${REPOSITORY_NAME}#main`;
26
+ }
27
+
28
+ const payload = await response.json();
29
+ const latestVersion =
30
+ payload && typeof payload.version === "string" ? payload.version : null;
31
+
32
+ return latestVersion
33
+ ? `github:${REPOSITORY_NAME}#${latestVersion}`
34
+ : `github:${REPOSITORY_NAME}#main`;
35
+ } catch {
36
+ return `github:${REPOSITORY_NAME}#main`;
37
+ }
38
+ }
39
+
40
+ function isRegistryTarballNotFound(error) {
41
+ if (!error || typeof error !== "object") return false;
42
+ if (!("stderr" in error) || typeof error.stderr !== "string") return false;
43
+
44
+ return (
45
+ error.stderr.includes("404 Not Found") &&
46
+ error.stderr.includes("registry.npmjs.org") &&
47
+ error.stderr.includes(PACKAGE_NAME)
48
+ );
49
+ }
8
50
 
9
51
  export async function update(version = "latest") {
10
52
  intro(chalk.bold("▲ Bunko Shelf"));
@@ -37,8 +79,26 @@ export async function update(version = "latest") {
37
79
  stdio: "inherit",
38
80
  });
39
81
  } catch (error) {
40
- progress.stop(chalk.red("Update failed"));
41
- throw error;
82
+ if (!isRegistryTarballNotFound(error)) {
83
+ progress.stop(chalk.red("Update failed"));
84
+ throw error;
85
+ }
86
+
87
+ const fallbackTarget = await resolveGithubTarget(version);
88
+
89
+ progress.message(
90
+ `Registry tarball unavailable, retrying from ${chalk.cyan(fallbackTarget)}...`
91
+ );
92
+
93
+ try {
94
+ await execa("npm", ["install", "--save-exact", fallbackTarget], {
95
+ cwd: process.cwd(),
96
+ stdio: "inherit",
97
+ });
98
+ } catch (fallbackError) {
99
+ progress.stop(chalk.red("Update failed"));
100
+ throw fallbackError;
101
+ }
42
102
  }
43
103
 
44
104
  progress.stop(`Updated ${PACKAGE_NAME}`);
@@ -0,0 +1,33 @@
1
+ "use server";
2
+
3
+ import { revalidateTag } from "next/cache";
4
+ import { hasPermission } from "@/lib/auth/roles";
5
+ import { verifySession } from "@/lib/auth/verifySession";
6
+ import {
7
+ APP_SETTINGS_TAG,
8
+ updateOthersLibraryEnabled,
9
+ } from "@/lib/db/appSettings";
10
+
11
+ export async function setOthersLibraryMode(enabled: boolean) {
12
+ let error: Error | null = null;
13
+
14
+ try {
15
+ const user = await verifySession();
16
+
17
+ if (!hasPermission(user, "settings:access")) {
18
+ return { error: "Unauthorized", status: 401 };
19
+ }
20
+
21
+ await updateOthersLibraryEnabled(enabled);
22
+ revalidateTag(APP_SETTINGS_TAG, "max");
23
+
24
+ return { success: true, status: 200 };
25
+ } catch (e) {
26
+ error = e as Error;
27
+ } finally {
28
+ if (error) {
29
+ console.error("Error updating app settings:", error);
30
+ return { error: "Server error", status: 500 };
31
+ }
32
+ }
33
+ }
@@ -6,9 +6,14 @@ import {
6
6
  listSeriesWithVolumes,
7
7
  listVolumes,
8
8
  } from "@/lib/db/library";
9
+ import type { LibraryScope } from "@/lib/librarySection";
9
10
  import { sortByPaddedTitle } from "@/lib/utils";
10
11
 
11
- export async function getLibraryFilters() {
12
+ interface LibraryActionOptions {
13
+ scope?: LibraryScope;
14
+ }
15
+
16
+ export async function getLibraryFilters(options?: LibraryActionOptions) {
12
17
  let error: Error | null = null;
13
18
  try {
14
19
  const user = await verifySession();
@@ -16,7 +21,7 @@ export async function getLibraryFilters() {
16
21
  return { error: "Unauthorized", status: 401 };
17
22
  }
18
23
 
19
- const { genres, tags } = await listLibraryFilters();
24
+ const { genres, tags } = await listLibraryFilters(options?.scope);
20
25
 
21
26
  return { genres, tags };
22
27
  } catch (e) {
@@ -29,7 +34,7 @@ export async function getLibraryFilters() {
29
34
  }
30
35
  }
31
36
 
32
- export async function getMangaOverall() {
37
+ export async function getMangaOverall(options?: LibraryActionOptions) {
33
38
  let error: Error | null = null;
34
39
  try {
35
40
  const user = await verifySession();
@@ -37,7 +42,9 @@ export async function getMangaOverall() {
37
42
  return { error: "Unauthorized", status: 401 };
38
43
  }
39
44
 
40
- const series = await listSeriesWithVolumes();
45
+ const series = await listSeriesWithVolumes({
46
+ scope: options?.scope,
47
+ });
41
48
 
42
49
  const formatted = series.map((s) => {
43
50
  if (s.isOneshot && s.volumes.length === 1) {
@@ -65,7 +72,7 @@ export async function getMangaOverall() {
65
72
  }
66
73
  }
67
74
 
68
- export async function getMangaSeries() {
75
+ export async function getMangaSeries(options?: LibraryActionOptions) {
69
76
  let error: Error | null = null;
70
77
  try {
71
78
  const user = await verifySession();
@@ -73,7 +80,9 @@ export async function getMangaSeries() {
73
80
  return { error: "Unauthorized", status: 401 };
74
81
  }
75
82
 
76
- const series = await listSeriesWithVolumes();
83
+ const series = await listSeriesWithVolumes({
84
+ scope: options?.scope,
85
+ });
77
86
 
78
87
  return { success: true, data: series };
79
88
  } catch (e) {
@@ -90,7 +99,7 @@ export async function getMangaSeries() {
90
99
  }
91
100
  }
92
101
 
93
- export async function getMangaVolumes() {
102
+ export async function getMangaVolumes(options?: LibraryActionOptions) {
94
103
  let error: Error | null = null;
95
104
  try {
96
105
  const currentUser = await verifySession();
@@ -105,6 +114,7 @@ export async function getMangaVolumes() {
105
114
 
106
115
  let volumes = await listVolumes({
107
116
  userId: currentUser.id,
117
+ scope: options?.scope,
108
118
  });
109
119
 
110
120
  volumes = sortByPaddedTitle(volumes);
@@ -137,107 +137,93 @@ export async function getReaderStats() {
137
137
  return { error: "Unauthorized", status: 401 };
138
138
  }
139
139
 
140
- const [
141
- volumesRead,
142
- readEntries,
143
- allCompleted,
144
- allReadDates,
145
- dailyReading,
146
- totalVolumes,
147
- totalSeries,
148
- userProgressVolumes,
149
- allFirstReadDates,
150
- currentChallenge,
151
- ] = await Promise.all([
152
- query<{ id: string; volume_id: string; last_read_at: Date | null }>(
153
- `
154
- SELECT id, volume_id, last_read_at
155
- FROM user_to_volumes
156
- WHERE user_id = $1
157
- AND is_read = TRUE
158
- `,
159
- [user.id]
160
- ),
161
- query<{ last_read_at: Date | null }>(
162
- `
163
- SELECT last_read_at
164
- FROM user_to_volumes
165
- WHERE user_id = $1
166
- AND last_read_at IS NOT NULL
167
- `,
168
- [user.id]
169
- ),
170
- query<{ id: string; volume_id: string }>(
171
- `
172
- SELECT id, volume_id
173
- FROM user_to_volumes
174
- WHERE user_id = $1
175
- AND is_read = TRUE
176
- `,
177
- [user.id]
178
- ),
179
- query<{ last_read_at: Date | null }>(
180
- `
181
- SELECT last_read_at
182
- FROM user_to_volumes
183
- WHERE user_id = $1
184
- AND last_read_at IS NOT NULL
185
- ORDER BY last_read_at DESC
186
- `,
187
- [user.id]
188
- ),
189
- query<{ date: string }>(
190
- `
191
- SELECT date
192
- FROM daily_reading_logs
193
- WHERE user_id = $1
194
- ORDER BY date DESC
195
- `,
196
- [user.id]
197
- ),
198
- queryOne<{ count: string }>(
199
- `
200
- SELECT COUNT(*)::text AS count
201
- FROM manga_volumes
202
- `
203
- ),
204
- queryOne<{ count: string }>(
205
- `
206
- SELECT COUNT(*)::text AS count
207
- FROM manga_series
208
- WHERE is_oneshot = FALSE
209
- `
210
- ),
211
- query<{ is_read: boolean }>(
212
- `
213
- SELECT utv.is_read
214
- FROM manga_volumes mv
215
- INNER JOIN user_to_volumes utv
216
- ON utv.volume_id = mv.id
217
- WHERE utv.user_id = $1
218
- `,
219
- [user.id]
220
- ),
221
- query<{ first_read: string | null }>(
222
- `
223
- SELECT first_read
224
- FROM user_to_volumes
225
- WHERE user_id = $1
226
- AND first_read IS NOT NULL
227
- `,
228
- [user.id]
229
- ),
230
- queryOne<{ goal: number }>(
231
- `
232
- SELECT goal
233
- FROM reading_challenges
234
- WHERE user_id = $1
235
- AND year = $2
236
- LIMIT 1
237
- `,
238
- [user.id, new Date().getFullYear()]
239
- ),
240
- ]);
140
+ const volumesRead = await query<{
141
+ id: string;
142
+ volume_id: string;
143
+ last_read_at: Date | null;
144
+ }>(
145
+ `
146
+ SELECT id, volume_id, last_read_at
147
+ FROM user_to_volumes
148
+ WHERE user_id = $1
149
+ AND is_read = TRUE
150
+ `,
151
+ [user.id]
152
+ );
153
+
154
+ const allReadDates = await query<{ last_read_at: Date | null }>(
155
+ `
156
+ SELECT last_read_at
157
+ FROM user_to_volumes
158
+ WHERE user_id = $1
159
+ AND last_read_at IS NOT NULL
160
+ ORDER BY last_read_at DESC
161
+ `,
162
+ [user.id]
163
+ );
164
+
165
+ const dailyReading = await query<{ date: string }>(
166
+ `
167
+ SELECT date
168
+ FROM daily_reading_logs
169
+ WHERE user_id = $1
170
+ ORDER BY date DESC
171
+ `,
172
+ [user.id]
173
+ );
174
+
175
+ const totalVolumes = await queryOne<{ count: string }>(
176
+ `
177
+ SELECT COUNT(*)::text AS count
178
+ FROM manga_volumes
179
+ `
180
+ );
181
+
182
+ const totalSeries = await queryOne<{ count: string }>(
183
+ `
184
+ SELECT COUNT(*)::text AS count
185
+ FROM manga_series
186
+ WHERE is_oneshot = FALSE
187
+ `
188
+ );
189
+
190
+ const userProgressVolumes = await query<{ is_read: boolean }>(
191
+ `
192
+ SELECT utv.is_read
193
+ FROM manga_volumes mv
194
+ INNER JOIN user_to_volumes utv
195
+ ON utv.volume_id = mv.id
196
+ WHERE utv.user_id = $1
197
+ `,
198
+ [user.id]
199
+ );
200
+
201
+ const allFirstReadDates = await query<{ first_read: string | null }>(
202
+ `
203
+ SELECT first_read
204
+ FROM user_to_volumes
205
+ WHERE user_id = $1
206
+ AND first_read IS NOT NULL
207
+ `,
208
+ [user.id]
209
+ );
210
+
211
+ const currentChallenge = await queryOne<{ goal: number }>(
212
+ `
213
+ SELECT goal
214
+ FROM reading_challenges
215
+ WHERE user_id = $1
216
+ AND year = $2
217
+ LIMIT 1
218
+ `,
219
+ [user.id, new Date().getFullYear()]
220
+ );
221
+
222
+ const readEntries = allReadDates;
223
+ const allCompleted = volumesRead.map(({ id, volume_id }) => ({
224
+ id,
225
+ volume_id,
226
+ }));
241
227
 
242
228
  const totalTracked = userProgressVolumes.length;
243
229
  const totalRead = userProgressVolumes.filter((volume) => volume.is_read).length;
@@ -2,6 +2,7 @@ import { getDictionary } from "@/lib/i18n/Dictionary";
2
2
  import SidebarMisc from "@/components/ui/SidebarMisc";
3
3
  import FavoritesNav from "@/components/favorites/FavoritesNav";
4
4
  import { HeartIcon } from "lucide-react";
5
+ import { isOthersLibraryEnabled } from "@/lib/db/appSettings";
5
6
  import type { Locale } from "@/lib/types";
6
7
  import type { ReactNode } from "react";
7
8
 
@@ -13,6 +14,7 @@ interface FavoritesLayoutProps {
13
14
  export default async function FavoritesLayout({ children, params }: FavoritesLayoutProps) {
14
15
  const { lang = "es" } = await params;
15
16
  const intl = await getDictionary(lang as Locale);
17
+ const othersLibraryEnabled = await isOthersLibraryEnabled();
16
18
 
17
19
  return (
18
20
  <div className="flex flex-col md:flex-row md:h-screen overflow-hidden">
@@ -22,7 +24,10 @@ export default async function FavoritesLayout({ children, params }: FavoritesLay
22
24
  {intl.favorites.title as string}
23
25
  </h2>
24
26
 
25
- <FavoritesNav intl={intl} />
27
+ <FavoritesNav
28
+ intl={intl}
29
+ isOthersEnabled={othersLibraryEnabled}
30
+ />
26
31
  </SidebarMisc>
27
32
 
28
33
  <div className="w-full md:w-[60%] lg:w-[68%] xl:w-[73%] 2xl:w-[80%] p-4 overflow-y-auto">
@@ -0,0 +1,73 @@
1
+ import { Suspense } from "react";
2
+ import { notFound } from "next/navigation";
3
+ import { getDictionary } from "@/lib/i18n/Dictionary";
4
+ import SeriesIndexFav from "@/components/library/manga/grid/SeriesIndexFav";
5
+ import VolumesIndexFav from "@/components/library/manga/grid/VolumesIndexFav";
6
+ import Separator from "@/components/ui/Separator";
7
+ import { isOthersLibraryEnabled } from "@/lib/db/appSettings";
8
+ import type { Locale } from "@/lib/types";
9
+
10
+ interface FavoritesOthersPageProps {
11
+ params: Promise<{ lang: string }>;
12
+ }
13
+
14
+ function GridSkeleton() {
15
+ return (
16
+ <section className="p-4">
17
+ <div className="h-7 w-48 rounded bg-sand animate-pulse mb-4" />
18
+ <div className="grid grid-cols-3 md:grid-cols-5 2xl:grid-cols-7 gap-4">
19
+ {Array.from({ length: 7 }).map((_, i) => (
20
+ <div key={i} className="aspect-[3/5] rounded-lg bg-sand animate-pulse" />
21
+ ))}
22
+ </div>
23
+ </section>
24
+ );
25
+ }
26
+
27
+ async function FavoritesSeries({ params }: { params: Promise<{ lang: string }> }) {
28
+ const { lang = "es" } = await params;
29
+ const intl = await getDictionary(lang as Locale);
30
+ return (
31
+ <SeriesIndexFav
32
+ lang={lang as Locale}
33
+ intl={intl}
34
+ scope="others"
35
+ section="others"
36
+ />
37
+ );
38
+ }
39
+
40
+ async function FavoritesVolumes({ params }: { params: Promise<{ lang: string }> }) {
41
+ const { lang = "es" } = await params;
42
+ const intl = await getDictionary(lang as Locale);
43
+ return (
44
+ <VolumesIndexFav
45
+ lang={lang as Locale}
46
+ intl={intl}
47
+ scope="others"
48
+ section="others"
49
+ />
50
+ );
51
+ }
52
+
53
+ export default async function FavoritesOthersPage({
54
+ params,
55
+ }: FavoritesOthersPageProps) {
56
+ const othersLibraryEnabled = await isOthersLibraryEnabled();
57
+
58
+ if (!othersLibraryEnabled) {
59
+ notFound();
60
+ }
61
+
62
+ return (
63
+ <>
64
+ <Suspense fallback={<GridSkeleton />}>
65
+ <FavoritesSeries params={params} />
66
+ </Suspense>
67
+ <Separator />
68
+ <Suspense fallback={<GridSkeleton />}>
69
+ <FavoritesVolumes params={params} />
70
+ </Suspense>
71
+ </>
72
+ );
73
+ }
@@ -3,6 +3,8 @@ import { getDictionary } from "@/lib/i18n/Dictionary";
3
3
  import SeriesIndexFav from "@/components/library/manga/grid/SeriesIndexFav";
4
4
  import VolumesIndexFav from "@/components/library/manga/grid/VolumesIndexFav";
5
5
  import Separator from "@/components/ui/Separator";
6
+ import { isOthersLibraryEnabled } from "@/lib/db/appSettings";
7
+ import { getLibraryScope } from "@/lib/librarySection";
6
8
  import type { Locale } from "@/lib/types";
7
9
 
8
10
  interface FavoritesPageProps {
@@ -25,13 +27,17 @@ function GridSkeleton() {
25
27
  async function FavoritesSeries({ params }: { params: Promise<{ lang: string }> }) {
26
28
  const { lang = "es" } = await params;
27
29
  const intl = await getDictionary(lang as Locale);
28
- return <SeriesIndexFav lang={lang as Locale} intl={intl} />;
30
+ const othersLibraryEnabled = await isOthersLibraryEnabled();
31
+ const scope = getLibraryScope("manga", othersLibraryEnabled);
32
+ return <SeriesIndexFav lang={lang as Locale} intl={intl} scope={scope} />;
29
33
  }
30
34
 
31
35
  async function FavoritesVolumes({ params }: { params: Promise<{ lang: string }> }) {
32
36
  const { lang = "es" } = await params;
33
37
  const intl = await getDictionary(lang as Locale);
34
- return <VolumesIndexFav lang={lang as Locale} intl={intl} />;
38
+ const othersLibraryEnabled = await isOthersLibraryEnabled();
39
+ const scope = getLibraryScope("manga", othersLibraryEnabled);
40
+ return <VolumesIndexFav lang={lang as Locale} intl={intl} scope={scope} />;
35
41
  }
36
42
 
37
43
  export default function FavoritesPage({ params }: FavoritesPageProps) {
@@ -1,12 +1,18 @@
1
1
  import { Suspense } from "react";
2
2
  import SeriesContent from "@/components/library/manga/SeriesContent";
3
+ import { redirect } from "next/navigation";
3
4
  import { verifySession } from "@/lib/auth/verifySession";
4
5
  import { listVolumeRatings, findSeriesFavoriteState } from "@/lib/db/reading";
6
+ import { isOthersLibraryEnabled } from "@/lib/db/appSettings";
5
7
  import { getDictionary } from "@/lib/i18n/Dictionary";
6
8
  import {
7
9
  findSeriesBySlug,
8
10
  type LibraryVolumeMetadata,
9
11
  } from "@/lib/db/library";
12
+ import {
13
+ getLibrarySection,
14
+ getLibrarySeriesHref,
15
+ } from "@/lib/librarySection";
10
16
  import { getMangaCoverUrl } from "@/lib/mangaCover";
11
17
  import { sortByPaddedTitle } from "@/lib/utils";
12
18
  import type { Locale } from "@/lib/types";
@@ -74,6 +80,7 @@ async function SeriesMangaPageContent({
74
80
  }: SeriesMangaPageProps) {
75
81
  const { lang = "es", series } = await params;
76
82
  const intl = await getDictionary(lang as Locale);
83
+ const othersLibraryEnabled = await isOthersLibraryEnabled();
77
84
 
78
85
  try {
79
86
  const user = await verifySession();
@@ -92,6 +99,15 @@ async function SeriesMangaPageContent({
92
99
  );
93
100
  }
94
101
 
102
+ const targetSection = getLibrarySection(
103
+ serie.volumes[0]?.metadataObj?.mangaStyle,
104
+ othersLibraryEnabled
105
+ );
106
+
107
+ if (targetSection !== "manga") {
108
+ redirect(getLibrarySeriesHref(lang, targetSection, serie.slug));
109
+ }
110
+
95
111
  const normalizedSerie = {
96
112
  ...serie,
97
113
  coverImage: getMangaCoverUrl({
@@ -153,6 +169,7 @@ async function SeriesMangaPageContent({
153
169
  aggregatedMeta={aggregatedMeta}
154
170
  averageRating={averageRating}
155
171
  user={user}
172
+ section="manga"
156
173
  />
157
174
  );
158
175
  } catch (error) {