@fecommunity/reactpress-toolkit 3.0.4 → 3.7.0

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 (527) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +194 -309
  3. package/dist/.source-fingerprint-toolkit +1 -0
  4. package/dist/admin/index.d.ts +2 -0
  5. package/dist/admin/index.js +18 -0
  6. package/dist/admin/permissions.d.ts +5 -0
  7. package/dist/admin/permissions.js +33 -0
  8. package/dist/admin/registry.d.ts +62 -0
  9. package/dist/admin/registry.js +79 -0
  10. package/dist/api/HttpClient.d.ts +2 -2
  11. package/dist/api/HttpClient.js +1 -1
  12. package/dist/api/Smtp.d.ts +17 -0
  13. package/dist/api/Smtp.js +15 -0
  14. package/dist/api/instance.d.ts +1 -1
  15. package/dist/api/instance.js +3 -3
  16. package/dist/app/createReactPressApp.d.ts +8 -0
  17. package/dist/app/createReactPressApp.js +265 -0
  18. package/dist/app/createThemeApp.d.ts +8 -0
  19. package/dist/app/createThemeApp.js +51 -0
  20. package/dist/app/devChunkRecovery.d.ts +2 -0
  21. package/dist/app/devChunkRecovery.js +68 -0
  22. package/dist/app/index.d.ts +39 -0
  23. package/dist/app/index.js +11 -0
  24. package/dist/config/env.js +29 -15
  25. package/dist/config/global.d.ts +7 -1
  26. package/dist/config/global.js +9 -3
  27. package/dist/config/i18n.js +27 -11
  28. package/dist/config/index.d.ts +3 -3
  29. package/dist/config/index.js +6 -5
  30. package/dist/{locales → config/locales}/en.json +31 -3
  31. package/dist/{locales → config/locales}/zh.json +31 -3
  32. package/dist/dev/index.d.ts +3 -0
  33. package/dist/dev/index.js +12 -0
  34. package/dist/dev/portRedirect.d.ts +20 -0
  35. package/dist/dev/portRedirect.js +93 -0
  36. package/dist/dev/vitePortRedirectPlugin.d.ts +24 -0
  37. package/dist/dev/vitePortRedirectPlugin.js +40 -0
  38. package/dist/extension/branding-mods.d.ts +10 -0
  39. package/dist/extension/branding-mods.js +65 -0
  40. package/dist/extension/configuration/defaults.d.ts +3 -0
  41. package/dist/extension/configuration/defaults.js +32 -0
  42. package/dist/extension/configuration/formily.d.ts +10 -0
  43. package/dist/extension/configuration/formily.js +170 -0
  44. package/dist/extension/configuration/index.d.ts +7 -0
  45. package/dist/extension/configuration/index.js +28 -0
  46. package/dist/extension/configuration/paths.d.ts +4 -0
  47. package/dist/extension/configuration/paths.js +50 -0
  48. package/dist/extension/configuration/presets/twentytwentyfive.d.ts +7 -0
  49. package/dist/extension/configuration/presets/twentytwentyfive.js +94 -0
  50. package/dist/extension/configuration/resolve.d.ts +24 -0
  51. package/dist/extension/configuration/resolve.js +98 -0
  52. package/dist/extension/configuration/types.d.ts +68 -0
  53. package/dist/extension/configuration/types.js +3 -0
  54. package/dist/extension/configuration/validate.d.ts +8 -0
  55. package/dist/extension/configuration/validate.js +21 -0
  56. package/dist/extension/index.d.ts +9 -0
  57. package/dist/extension/index.js +35 -0
  58. package/dist/extension/manifest-normalize.d.ts +5 -0
  59. package/dist/extension/manifest-normalize.js +75 -0
  60. package/dist/extension/node.d.ts +2 -0
  61. package/dist/extension/node.js +6 -0
  62. package/dist/extension/presets/twentytwentyfive-appearance.d.ts +10 -0
  63. package/dist/extension/presets/twentytwentyfive-appearance.js +193 -0
  64. package/dist/extension/presets/twentytwentyfive-customizer.d.ts +19 -0
  65. package/dist/extension/presets/twentytwentyfive-customizer.js +199 -0
  66. package/dist/extension/preview.d.ts +46 -0
  67. package/dist/extension/preview.js +92 -0
  68. package/dist/extension/site-notices.d.ts +19 -0
  69. package/dist/extension/site-notices.js +88 -0
  70. package/dist/extension/site-settings.d.ts +37 -0
  71. package/dist/extension/site-settings.js +144 -0
  72. package/dist/extension/theme-admin-locale.d.ts +11 -0
  73. package/dist/extension/theme-admin-locale.io.d.ts +2 -0
  74. package/dist/extension/theme-admin-locale.io.js +54 -0
  75. package/dist/extension/theme-admin-locale.js +81 -0
  76. package/dist/extension/theme.d.ts +89 -0
  77. package/dist/extension/theme.js +93 -0
  78. package/dist/extension/twentytwentyfive-vars.d.ts +7 -0
  79. package/dist/extension/twentytwentyfive-vars.js +100 -0
  80. package/dist/index.d.ts +15 -7
  81. package/dist/index.js +44 -22
  82. package/dist/plugin/admin/index.d.ts +2 -0
  83. package/dist/plugin/admin/index.js +18 -0
  84. package/dist/plugin/admin/permissions.d.ts +5 -0
  85. package/dist/plugin/admin/permissions.js +33 -0
  86. package/dist/plugin/admin/plugin-admin.d.ts +37 -0
  87. package/dist/plugin/admin/plugin-admin.js +41 -0
  88. package/dist/plugin/admin/registry.d.ts +62 -0
  89. package/dist/plugin/admin/registry.js +79 -0
  90. package/dist/plugin/admin/slots.d.ts +36 -0
  91. package/dist/plugin/admin/slots.js +16 -0
  92. package/dist/plugin/client/client.d.ts +14 -0
  93. package/dist/plugin/client/client.js +95 -0
  94. package/dist/plugin/client/index.d.ts +4 -0
  95. package/dist/plugin/client/index.js +11 -0
  96. package/dist/plugin/client/runtime.d.ts +18 -0
  97. package/dist/plugin/client/runtime.js +30 -0
  98. package/dist/plugin/dev/index.d.ts +4 -0
  99. package/dist/plugin/dev/index.js +16 -0
  100. package/dist/plugin/dev/portRedirect.d.ts +26 -0
  101. package/dist/plugin/dev/portRedirect.js +111 -0
  102. package/dist/plugin/dev/vitePortRedirectPlugin.d.ts +24 -0
  103. package/dist/plugin/dev/vitePortRedirectPlugin.js +40 -0
  104. package/dist/plugin/extension/index.d.ts +4 -0
  105. package/dist/plugin/extension/index.js +20 -0
  106. package/dist/plugin/extension/plugin-admin-locale.d.ts +21 -0
  107. package/dist/plugin/extension/plugin-admin-locale.io.d.ts +2 -0
  108. package/dist/plugin/extension/plugin-admin-locale.io.js +54 -0
  109. package/dist/plugin/extension/plugin-admin-locale.js +60 -0
  110. package/dist/plugin/extension/plugin.d.ts +82 -0
  111. package/dist/plugin/extension/plugin.js +146 -0
  112. package/dist/plugin/extension/security.d.ts +7 -0
  113. package/dist/plugin/extension/security.js +74 -0
  114. package/dist/plugin/extension/validate.d.ts +8 -0
  115. package/dist/plugin/extension/validate.js +55 -0
  116. package/dist/plugin/index.d.ts +9 -0
  117. package/dist/plugin/index.js +48 -0
  118. package/dist/plugin/node.d.ts +2 -0
  119. package/dist/plugin/node.js +6 -0
  120. package/dist/plugin/react/client.d.ts +14 -0
  121. package/dist/plugin/react/client.js +95 -0
  122. package/dist/plugin/react/index.d.ts +2 -0
  123. package/dist/plugin/react/index.js +18 -0
  124. package/dist/plugin/react/plugin-admin-ui.d.ts +23 -0
  125. package/dist/plugin/react/plugin-admin-ui.js +38 -0
  126. package/dist/plugin/react/runtime.d.ts +18 -0
  127. package/dist/plugin/react/runtime.js +30 -0
  128. package/dist/plugin/server/hook-reject.d.ts +12 -0
  129. package/dist/plugin/server/hook-reject.js +39 -0
  130. package/dist/plugin/server/index.d.ts +2 -0
  131. package/dist/plugin/server/index.js +18 -0
  132. package/dist/plugin/server/types.d.ts +34 -0
  133. package/dist/plugin/server/types.js +3 -0
  134. package/dist/primitives/AntdStyleTransitionFix.d.ts +2 -0
  135. package/dist/primitives/AntdStyleTransitionFix.js +16 -0
  136. package/dist/primitives/Badge.d.ts +7 -0
  137. package/dist/primitives/Badge.js +9 -0
  138. package/dist/primitives/Button.d.ts +10 -0
  139. package/dist/primitives/Button.js +38 -0
  140. package/dist/primitives/ColorModeToggle.d.ts +8 -0
  141. package/dist/primitives/ColorModeToggle.js +13 -0
  142. package/dist/primitives/IconButton.d.ts +7 -0
  143. package/dist/primitives/IconButton.js +13 -0
  144. package/dist/primitives/ScrollToTarget.d.ts +9 -0
  145. package/dist/primitives/ScrollToTarget.js +48 -0
  146. package/dist/primitives/Separator.d.ts +7 -0
  147. package/dist/primitives/Separator.js +9 -0
  148. package/dist/primitives/Skeleton.d.ts +7 -0
  149. package/dist/primitives/Skeleton.js +9 -0
  150. package/dist/primitives/Slot.d.ts +10 -0
  151. package/dist/primitives/Slot.js +25 -0
  152. package/dist/primitives/Spinner.d.ts +6 -0
  153. package/dist/primitives/Spinner.js +9 -0
  154. package/dist/primitives/animation/ConditionTransition.d.ts +8 -0
  155. package/dist/primitives/animation/ConditionTransition.js +13 -0
  156. package/dist/primitives/animation/ListTrail.d.ts +10 -0
  157. package/dist/primitives/animation/ListTrail.js +14 -0
  158. package/dist/primitives/animation/Opacity.d.ts +3 -0
  159. package/dist/primitives/animation/Opacity.js +10 -0
  160. package/dist/primitives/animation/Spring.d.ts +9 -0
  161. package/dist/primitives/animation/Spring.js +29 -0
  162. package/dist/primitives/animation/index.d.ts +7 -0
  163. package/dist/primitives/animation/index.js +11 -0
  164. package/dist/primitives/cn.d.ts +4 -0
  165. package/dist/primitives/cn.js +7 -0
  166. package/dist/primitives/icons.d.ts +4 -0
  167. package/dist/primitives/icons.js +15 -0
  168. package/dist/primitives/index.d.ts +22 -0
  169. package/dist/primitives/index.js +44 -0
  170. package/dist/react/client.d.ts +14 -0
  171. package/dist/react/client.js +95 -0
  172. package/dist/react/index.d.ts +4 -0
  173. package/dist/react/index.js +11 -0
  174. package/dist/react/runtime.d.ts +18 -0
  175. package/dist/react/runtime.js +30 -0
  176. package/dist/theme/antdDocument.d.ts +18 -0
  177. package/dist/theme/antdDocument.js +59 -0
  178. package/dist/theme/api/api-data.d.ts +2 -0
  179. package/dist/theme/api/api-data.js +8 -0
  180. package/dist/theme/api/api.d.ts +28 -0
  181. package/dist/theme/api/api.js +27 -0
  182. package/dist/theme/api/httpClient.d.ts +24 -0
  183. package/dist/theme/api/httpClient.js +83 -0
  184. package/dist/theme/api/json.d.ts +1 -0
  185. package/dist/theme/api/json.js +5 -0
  186. package/dist/theme/api/jsonp.d.ts +1 -0
  187. package/dist/theme/api/jsonp.js +5 -0
  188. package/dist/theme/api-data.d.ts +12 -0
  189. package/dist/theme/api-data.js +22 -0
  190. package/dist/theme/api.d.ts +28 -0
  191. package/dist/theme/api.js +27 -0
  192. package/dist/theme/appearance.d.ts +4 -0
  193. package/dist/theme/appearance.js +16 -0
  194. package/dist/theme/assets.d.ts +2 -0
  195. package/dist/theme/assets.js +27 -0
  196. package/dist/theme/authSession.d.ts +16 -0
  197. package/dist/theme/authSession.js +92 -0
  198. package/dist/theme/build/antdDocument.d.ts +145 -0
  199. package/dist/theme/build/antdDocument.js +70 -0
  200. package/dist/theme/build/next-config.d.ts +15 -0
  201. package/dist/theme/build/next-config.js +63 -0
  202. package/dist/theme/build/node.d.ts +2 -0
  203. package/dist/theme/build/node.js +6 -0
  204. package/dist/theme/colorMode.d.ts +12 -0
  205. package/dist/theme/colorMode.js +45 -0
  206. package/dist/theme/commentAuthor.d.ts +17 -0
  207. package/dist/theme/commentAuthor.js +48 -0
  208. package/dist/theme/content/archiveSlim.d.ts +7 -0
  209. package/dist/theme/content/archiveSlim.js +38 -0
  210. package/dist/theme/content/articleSlim.d.ts +10 -0
  211. package/dist/theme/content/articleSlim.js +35 -0
  212. package/dist/theme/content/assets.d.ts +8 -0
  213. package/dist/theme/content/assets.js +74 -0
  214. package/dist/theme/content/carouselArticles.d.ts +10 -0
  215. package/dist/theme/content/carouselArticles.js +39 -0
  216. package/dist/theme/content/excerpt.d.ts +15 -0
  217. package/dist/theme/content/excerpt.js +42 -0
  218. package/dist/theme/content/nav.d.ts +10 -0
  219. package/dist/theme/content/nav.js +30 -0
  220. package/dist/theme/content/seo.d.ts +6 -0
  221. package/dist/theme/content/seo.js +12 -0
  222. package/dist/theme/createAntdApp.d.ts +106 -0
  223. package/dist/theme/createAntdApp.js +175 -0
  224. package/dist/theme/createApp.d.ts +10 -0
  225. package/dist/theme/createApp.js +141 -0
  226. package/dist/theme/createCatalogApp.d.ts +108 -0
  227. package/dist/theme/createCatalogApp.js +168 -0
  228. package/dist/theme/customizer.d.ts +1 -0
  229. package/dist/theme/customizer.js +5 -0
  230. package/dist/theme/excerpt.d.ts +16 -0
  231. package/dist/theme/excerpt.js +31 -0
  232. package/dist/theme/extension/branding-mods.d.ts +10 -0
  233. package/dist/theme/extension/branding-mods.js +65 -0
  234. package/dist/theme/extension/configuration/defaults.d.ts +3 -0
  235. package/dist/theme/extension/configuration/defaults.js +32 -0
  236. package/dist/theme/extension/configuration/formily.d.ts +10 -0
  237. package/dist/theme/extension/configuration/formily.js +170 -0
  238. package/dist/theme/extension/configuration/index.d.ts +7 -0
  239. package/dist/theme/extension/configuration/index.js +28 -0
  240. package/dist/theme/extension/configuration/paths.d.ts +1 -0
  241. package/dist/theme/extension/configuration/paths.js +7 -0
  242. package/dist/theme/extension/configuration/presets/twentytwentyfive.d.ts +7 -0
  243. package/dist/theme/extension/configuration/presets/twentytwentyfive.js +94 -0
  244. package/dist/theme/extension/configuration/resolve.d.ts +24 -0
  245. package/dist/theme/extension/configuration/resolve.js +98 -0
  246. package/dist/theme/extension/configuration/types.d.ts +68 -0
  247. package/dist/theme/extension/configuration/types.js +3 -0
  248. package/dist/theme/extension/configuration/validate.d.ts +8 -0
  249. package/dist/theme/extension/configuration/validate.js +21 -0
  250. package/dist/theme/extension/index.d.ts +11 -0
  251. package/dist/theme/extension/index.js +38 -0
  252. package/dist/theme/extension/manifest-normalize.d.ts +5 -0
  253. package/dist/theme/extension/manifest-normalize.js +75 -0
  254. package/dist/theme/extension/presets/twentytwentyfive-appearance.d.ts +10 -0
  255. package/dist/theme/extension/presets/twentytwentyfive-appearance.js +193 -0
  256. package/dist/theme/extension/preview.d.ts +46 -0
  257. package/dist/theme/extension/preview.js +92 -0
  258. package/dist/theme/extension/site-notices.d.ts +19 -0
  259. package/dist/theme/extension/site-notices.js +88 -0
  260. package/dist/theme/extension/site-settings.d.ts +37 -0
  261. package/dist/theme/extension/site-settings.js +144 -0
  262. package/dist/theme/extension/siteNav.d.ts +18 -0
  263. package/dist/theme/extension/siteNav.js +17 -0
  264. package/dist/theme/extension/theme-admin-locale.d.ts +11 -0
  265. package/dist/theme/extension/theme-admin-locale.io.d.ts +2 -0
  266. package/dist/theme/extension/theme-admin-locale.io.js +54 -0
  267. package/dist/theme/extension/theme-admin-locale.js +68 -0
  268. package/dist/theme/extension/theme.d.ts +89 -0
  269. package/dist/theme/extension/theme.js +93 -0
  270. package/dist/theme/extension/twentytwentyfive-vars.d.ts +9 -0
  271. package/dist/theme/extension/twentytwentyfive-vars.js +103 -0
  272. package/dist/theme/fetch.d.ts +134 -0
  273. package/dist/theme/fetch.js +241 -0
  274. package/dist/theme/format.d.ts +16 -0
  275. package/dist/theme/format.js +48 -0
  276. package/dist/theme/httpClient.d.ts +20 -0
  277. package/dist/theme/httpClient.js +89 -0
  278. package/dist/theme/index.d.ts +63 -0
  279. package/dist/theme/index.js +226 -0
  280. package/dist/theme/json.d.ts +1 -0
  281. package/dist/theme/json.js +17 -0
  282. package/dist/theme/jsonp.d.ts +8 -0
  283. package/dist/theme/jsonp.js +27 -0
  284. package/dist/theme/locale.d.ts +23 -0
  285. package/dist/theme/locale.js +55 -0
  286. package/dist/theme/nav.d.ts +10 -0
  287. package/dist/theme/nav.js +30 -0
  288. package/dist/theme/next-config.d.ts +2 -0
  289. package/dist/theme/next-config.js +18 -0
  290. package/dist/theme/node.d.ts +2 -0
  291. package/dist/theme/node.js +18 -0
  292. package/dist/theme/preview/preview-config.d.ts +13 -0
  293. package/dist/theme/preview/preview-config.js +65 -0
  294. package/dist/theme/preview/preview-draft.d.ts +19 -0
  295. package/dist/theme/preview/preview-draft.js +51 -0
  296. package/dist/theme/preview/preview-mods.d.ts +16 -0
  297. package/dist/theme/preview/preview-mods.js +78 -0
  298. package/dist/theme/preview-config.d.ts +13 -0
  299. package/dist/theme/preview-config.js +65 -0
  300. package/dist/theme/preview-draft.d.ts +19 -0
  301. package/dist/theme/preview-draft.js +51 -0
  302. package/dist/theme/preview-mods.d.ts +16 -0
  303. package/dist/theme/preview-mods.js +78 -0
  304. package/dist/theme/providers/index.d.ts +118 -0
  305. package/dist/theme/providers/index.js +251 -0
  306. package/dist/theme/providers/setup.d.ts +124 -0
  307. package/dist/theme/providers/setup.js +29 -0
  308. package/dist/theme/runtime.d.ts +18 -0
  309. package/dist/theme/runtime.js +19 -0
  310. package/dist/theme/seo.d.ts +6 -0
  311. package/dist/theme/seo.js +12 -0
  312. package/dist/theme/server.d.ts +65 -0
  313. package/dist/theme/server.js +177 -0
  314. package/dist/theme/setting.d.ts +12 -0
  315. package/dist/theme/setting.js +42 -0
  316. package/dist/theme/ssr/bootstrap.d.ts +48 -0
  317. package/dist/theme/ssr/bootstrap.js +112 -0
  318. package/dist/theme/ssr/fetch.d.ts +134 -0
  319. package/dist/theme/ssr/fetch.js +264 -0
  320. package/dist/theme/ssr/format.d.ts +3 -0
  321. package/dist/theme/ssr/format.js +8 -0
  322. package/dist/theme/ssr/pageProps.d.ts +62 -0
  323. package/dist/theme/ssr/pageProps.js +138 -0
  324. package/dist/theme/ssr/setting.d.ts +12 -0
  325. package/dist/theme/ssr/setting.js +42 -0
  326. package/dist/theme/ssr/slimBootstrap.d.ts +11 -0
  327. package/dist/theme/ssr/slimBootstrap.js +75 -0
  328. package/dist/theme/ssr/static.d.ts +10 -0
  329. package/dist/theme/ssr/static.js +17 -0
  330. package/dist/theme/ssr/templates.d.ts +35 -0
  331. package/dist/theme/ssr/templates.js +50 -0
  332. package/dist/theme/static.d.ts +10 -0
  333. package/dist/theme/static.js +17 -0
  334. package/dist/theme/templates.d.ts +27 -0
  335. package/dist/theme/templates.js +38 -0
  336. package/dist/theme/ui-optional.d.ts +1 -0
  337. package/dist/theme/ui-optional.js +21 -0
  338. package/dist/theme/visitor/appearance.d.ts +4 -0
  339. package/dist/theme/visitor/appearance.js +16 -0
  340. package/dist/theme/visitor/authSession.d.ts +16 -0
  341. package/dist/theme/visitor/authSession.js +92 -0
  342. package/dist/theme/visitor/colorMode.d.ts +17 -0
  343. package/dist/theme/visitor/colorMode.js +59 -0
  344. package/dist/theme/visitor/commentAuthor.d.ts +16 -0
  345. package/dist/theme/visitor/commentAuthor.js +45 -0
  346. package/dist/theme/visitor/i18n.d.ts +4 -0
  347. package/dist/theme/visitor/i18n.js +28 -0
  348. package/dist/theme/visitor/locale.d.ts +23 -0
  349. package/dist/theme/visitor/locale.js +72 -0
  350. package/dist/theme/visitor/runtime.d.ts +18 -0
  351. package/dist/theme/visitor/runtime.js +19 -0
  352. package/dist/theme/visitor/visitorLocale.d.ts +11 -0
  353. package/dist/theme/visitor/visitorLocale.js +56 -0
  354. package/dist/theme/visitorLocale.d.ts +6 -0
  355. package/dist/theme/visitorLocale.js +39 -0
  356. package/dist/types/index.d.ts +79 -68
  357. package/dist/ui/AntdStyleTransitionFix.d.ts +5 -0
  358. package/dist/ui/AntdStyleTransitionFix.js +16 -0
  359. package/dist/ui/ArchiveEmptyState.d.ts +13 -0
  360. package/dist/ui/ArchiveEmptyState.js +8 -0
  361. package/dist/ui/ArchivePageLayout.d.ts +10 -0
  362. package/dist/ui/ArchivePageLayout.js +8 -0
  363. package/dist/ui/ArticleCard.d.ts +27 -0
  364. package/dist/ui/ArticleCard.js +16 -0
  365. package/dist/ui/ArticleList.d.ts +14 -0
  366. package/dist/ui/ArticleList.js +16 -0
  367. package/dist/ui/BaseGlobalStyles.d.ts +5 -0
  368. package/dist/ui/BaseGlobalStyles.js +18 -0
  369. package/dist/ui/LocaleSwitcher.d.ts +7 -0
  370. package/dist/ui/LocaleSwitcher.js +15 -0
  371. package/dist/ui/NavMenu.d.ts +16 -0
  372. package/dist/ui/NavMenu.js +8 -0
  373. package/dist/ui/NotFoundPanel.d.ts +11 -0
  374. package/dist/ui/NotFoundPanel.js +8 -0
  375. package/dist/ui/PageHeader.d.ts +10 -0
  376. package/dist/ui/PageHeader.js +8 -0
  377. package/dist/ui/SiteBranding.d.ts +10 -0
  378. package/dist/ui/SiteBranding.js +14 -0
  379. package/dist/ui/SiteDocument.d.ts +20 -0
  380. package/dist/ui/SiteDocument.js +13 -0
  381. package/dist/ui/SiteDocumentFallback.d.ts +8 -0
  382. package/dist/ui/SiteDocumentFallback.js +9 -0
  383. package/dist/ui/SiteLogo.d.ts +6 -0
  384. package/dist/ui/SiteLogo.js +16 -0
  385. package/dist/ui/SiteTagline.d.ts +7 -0
  386. package/dist/ui/SiteTagline.js +15 -0
  387. package/dist/ui/TaxonomyList.d.ts +25 -0
  388. package/dist/ui/TaxonomyList.js +30 -0
  389. package/dist/ui/ThemeCssVars.d.ts +2 -0
  390. package/dist/ui/ThemeCssVars.js +85 -0
  391. package/dist/ui/ThemeLayout.d.ts +13 -0
  392. package/dist/ui/ThemeLayout.js +11 -0
  393. package/dist/ui/components/AntdStyleTransitionFix.d.ts +5 -0
  394. package/dist/ui/components/AntdStyleTransitionFix.js +16 -0
  395. package/dist/ui/components/ArchiveEmptyState.d.ts +13 -0
  396. package/dist/ui/components/ArchiveEmptyState.js +8 -0
  397. package/dist/ui/components/ArchivePageLayout.d.ts +10 -0
  398. package/dist/ui/components/ArchivePageLayout.js +8 -0
  399. package/dist/ui/components/ArticleCard.d.ts +27 -0
  400. package/dist/ui/components/ArticleCard.js +16 -0
  401. package/dist/ui/components/ArticleList.d.ts +14 -0
  402. package/dist/ui/components/ArticleList.js +16 -0
  403. package/dist/ui/components/BaseGlobalStyles.d.ts +6 -0
  404. package/dist/ui/components/BaseGlobalStyles.js +18 -0
  405. package/dist/ui/components/LocaleSwitcher.d.ts +10 -0
  406. package/dist/ui/components/LocaleSwitcher.js +11 -0
  407. package/dist/ui/components/NavMenu.d.ts +16 -0
  408. package/dist/ui/components/NavMenu.js +8 -0
  409. package/dist/ui/components/NotFoundPanel.d.ts +11 -0
  410. package/dist/ui/components/NotFoundPanel.js +8 -0
  411. package/dist/ui/components/PageHeader.d.ts +10 -0
  412. package/dist/ui/components/PageHeader.js +8 -0
  413. package/dist/ui/components/RouteProgress.d.ts +9 -0
  414. package/dist/ui/components/RouteProgress.js +40 -0
  415. package/dist/ui/components/SiteAnalytics.d.ts +5 -0
  416. package/dist/ui/components/SiteAnalytics.js +42 -0
  417. package/dist/ui/components/SiteBranding.d.ts +11 -0
  418. package/dist/ui/components/SiteBranding.js +14 -0
  419. package/dist/ui/components/SiteDocument.d.ts +20 -0
  420. package/dist/ui/components/SiteDocument.js +13 -0
  421. package/dist/ui/components/SiteDocumentFallback.d.ts +8 -0
  422. package/dist/ui/components/SiteDocumentFallback.js +9 -0
  423. package/dist/ui/components/SiteLogo.d.ts +9 -0
  424. package/dist/ui/components/SiteLogo.js +23 -0
  425. package/dist/ui/components/SiteSeo.d.ts +13 -0
  426. package/dist/ui/components/SiteSeo.js +19 -0
  427. package/dist/ui/components/SiteTagline.d.ts +8 -0
  428. package/dist/ui/components/SiteTagline.js +15 -0
  429. package/dist/ui/components/TaxonomyList.d.ts +25 -0
  430. package/dist/ui/components/TaxonomyList.js +30 -0
  431. package/dist/ui/components/ThemeCssVars.d.ts +3 -0
  432. package/dist/ui/components/ThemeCssVars.js +85 -0
  433. package/dist/ui/components/ThemeLayout.d.ts +13 -0
  434. package/dist/ui/components/ThemeLayout.js +11 -0
  435. package/dist/ui/components/content/ArticleReader.d.ts +45 -0
  436. package/dist/ui/components/content/ArticleReader.js +23 -0
  437. package/dist/ui/components/content/ArticleToc.d.ts +21 -0
  438. package/dist/ui/components/content/ArticleToc.js +75 -0
  439. package/dist/ui/components/content/HtmlContent.d.ts +16 -0
  440. package/dist/ui/components/content/HtmlContent.js +237 -0
  441. package/dist/ui/components/content/Image.d.ts +9 -0
  442. package/dist/ui/components/content/Image.js +13 -0
  443. package/dist/ui/components/content/ImageViewer.d.ts +8 -0
  444. package/dist/ui/components/content/ImageViewer.js +33 -0
  445. package/dist/ui/components/content/LocaleTime.d.ts +10 -0
  446. package/dist/ui/components/content/LocaleTime.js +63 -0
  447. package/dist/ui/components/content/index.d.ts +14 -0
  448. package/dist/ui/components/content/index.js +18 -0
  449. package/dist/ui/components/toolbar/LocaleToggleButton.d.ts +8 -0
  450. package/dist/ui/components/toolbar/LocaleToggleButton.js +18 -0
  451. package/dist/ui/components/toolbar/ThemeToggleButton.d.ts +7 -0
  452. package/dist/ui/components/toolbar/ThemeToggleButton.js +10 -0
  453. package/dist/ui/components/toolbar/ToolbarIconButton.d.ts +7 -0
  454. package/dist/ui/components/toolbar/ToolbarIconButton.js +22 -0
  455. package/dist/ui/components/toolbar/constants.d.ts +5 -0
  456. package/dist/ui/components/toolbar/constants.js +8 -0
  457. package/dist/ui/components/toolbar/icons.d.ts +17 -0
  458. package/dist/ui/components/toolbar/icons.js +44 -0
  459. package/dist/ui/components/toolbar/index.d.ts +9 -0
  460. package/dist/ui/components/toolbar/index.js +25 -0
  461. package/dist/ui/components/toolbar/locale-label.d.ts +3 -0
  462. package/dist/ui/components/toolbar/locale-label.js +19 -0
  463. package/dist/ui/context/LocaleContext.d.ts +15 -0
  464. package/dist/ui/context/LocaleContext.js +59 -0
  465. package/dist/ui/context/ReactPressProvider.d.ts +4 -0
  466. package/dist/ui/context/ReactPressProvider.js +10 -0
  467. package/dist/ui/context/SiteCatalogContext.d.ts +41 -0
  468. package/dist/ui/context/SiteCatalogContext.js +60 -0
  469. package/dist/ui/context/ThemeRuntimeContext.d.ts +21 -0
  470. package/dist/ui/context/ThemeRuntimeContext.js +59 -0
  471. package/dist/ui/context/index.d.ts +8 -0
  472. package/dist/ui/context/index.js +26 -0
  473. package/dist/ui/context/siteCatalogTypes.d.ts +64 -0
  474. package/dist/ui/context/siteCatalogTypes.js +20 -0
  475. package/dist/ui/context/types.d.ts +34 -0
  476. package/dist/ui/context/types.js +2 -0
  477. package/dist/ui/hooks/index.d.ts +12 -0
  478. package/dist/ui/hooks/index.js +29 -0
  479. package/dist/ui/hooks/useAsyncLoading.d.ts +4 -0
  480. package/dist/ui/hooks/useAsyncLoading.js +31 -0
  481. package/dist/ui/hooks/useForceUpdate.d.ts +2 -0
  482. package/dist/ui/hooks/useForceUpdate.js +11 -0
  483. package/dist/ui/hooks/useNavActive.d.ts +5 -0
  484. package/dist/ui/hooks/useNavActive.js +11 -0
  485. package/dist/ui/hooks/usePagination.d.ts +34 -0
  486. package/dist/ui/hooks/usePagination.js +55 -0
  487. package/dist/ui/hooks/useReportArticleView.d.ts +4 -0
  488. package/dist/ui/hooks/useReportArticleView.js +40 -0
  489. package/dist/ui/hooks/useReportPageView.d.ts +11 -0
  490. package/dist/ui/hooks/useReportPageView.js +28 -0
  491. package/dist/ui/hooks/useRouteParam.d.ts +5 -0
  492. package/dist/ui/hooks/useRouteParam.js +15 -0
  493. package/dist/ui/hooks/useToggle.d.ts +2 -0
  494. package/dist/ui/hooks/useToggle.js +17 -0
  495. package/dist/ui/hooks/useWarningOnExit.d.ts +5 -0
  496. package/dist/ui/hooks/useWarningOnExit.js +59 -0
  497. package/dist/ui/index.d.ts +43 -0
  498. package/dist/ui/index.js +87 -0
  499. package/dist/utils/api-envelope.d.ts +14 -0
  500. package/dist/utils/api-envelope.js +31 -0
  501. package/dist/utils/clipboard.d.ts +2 -0
  502. package/dist/utils/clipboard.js +24 -0
  503. package/dist/utils/cookie.d.ts +2 -0
  504. package/dist/utils/cookie.js +15 -0
  505. package/dist/utils/date.d.ts +4 -0
  506. package/dist/utils/date.js +45 -0
  507. package/dist/utils/email.d.ts +3 -0
  508. package/dist/utils/email.js +9 -0
  509. package/dist/utils/error.d.ts +7 -0
  510. package/dist/utils/error.js +26 -0
  511. package/dist/utils/image.d.ts +7 -0
  512. package/dist/utils/image.js +34 -0
  513. package/dist/utils/index.d.ts +15 -33
  514. package/dist/utils/index.js +37 -57
  515. package/dist/utils/json.d.ts +2 -0
  516. package/dist/utils/json.js +18 -0
  517. package/dist/utils/jsonp.d.ts +8 -0
  518. package/dist/utils/jsonp.js +27 -0
  519. package/dist/utils/object.d.ts +7 -0
  520. package/dist/utils/object.js +63 -0
  521. package/dist/utils/setting.d.ts +12 -0
  522. package/dist/utils/setting.js +13 -0
  523. package/dist/utils/string.d.ts +4 -0
  524. package/dist/utils/string.js +15 -0
  525. package/dist/utils/viewport.d.ts +3 -0
  526. package/dist/utils/viewport.js +14 -0
  527. package/package.json +141 -12
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ /** WordPress-style plugin manifest and site plugin state (shared by server / web). */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PLUGIN_ADMIN_MODULE_CONVENTION = exports.defaultSitePluginState = void 0;
5
+ exports.isValidPluginId = isValidPluginId;
6
+ exports.parsePluginManifest = parsePluginManifest;
7
+ exports.getPluginStateFromGlobalSetting = getPluginStateFromGlobalSetting;
8
+ exports.mergePluginStateIntoGlobalSetting = mergePluginStateIntoGlobalSetting;
9
+ exports.pluginManifestHasAdminUI = pluginManifestHasAdminUI;
10
+ const slots_1 = require("../admin/slots");
11
+ const security_1 = require("./security");
12
+ exports.defaultSitePluginState = {
13
+ installedPlugins: [],
14
+ activePlugins: [],
15
+ entries: {},
16
+ };
17
+ const PLUGIN_ID_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
18
+ function isValidPluginId(id) {
19
+ return typeof id === 'string' && PLUGIN_ID_RE.test(id) && id.length <= 64;
20
+ }
21
+ function parsePluginManifest(raw) {
22
+ if (!raw || typeof raw !== 'object')
23
+ return null;
24
+ const o = raw;
25
+ if (typeof o.id !== 'string' || typeof o.name !== 'string')
26
+ return null;
27
+ if (!isValidPluginId(o.id))
28
+ return null;
29
+ const serverRaw = o.server;
30
+ const server = serverRaw && typeof serverRaw === 'object'
31
+ ? (() => {
32
+ const moduleRaw = serverRaw.module;
33
+ const modulePath = typeof moduleRaw === 'string' ? moduleRaw.trim() : '';
34
+ if (!modulePath || !(0, security_1.isSafePluginModuleRel)(modulePath)) {
35
+ return undefined;
36
+ }
37
+ return {
38
+ module: modulePath,
39
+ hooks: serverRaw.hooks &&
40
+ typeof serverRaw.hooks === 'object'
41
+ ? {
42
+ subscribe: Array.isArray(serverRaw.hooks
43
+ .subscribe)
44
+ ? serverRaw.hooks
45
+ .subscribe.filter((h) => typeof h === 'string')
46
+ : undefined,
47
+ provide: Array.isArray(serverRaw.hooks
48
+ .provide)
49
+ ? serverRaw.hooks
50
+ .provide.filter((h) => typeof h === 'string')
51
+ : undefined,
52
+ }
53
+ : undefined,
54
+ };
55
+ })()
56
+ : undefined;
57
+ const adminRaw = o.admin;
58
+ const admin = adminRaw && typeof adminRaw === 'object'
59
+ ? (() => {
60
+ const raw = adminRaw;
61
+ const slotsRaw = raw.slots;
62
+ const subscribe = slotsRaw &&
63
+ typeof slotsRaw === 'object' &&
64
+ Array.isArray(slotsRaw.subscribe)
65
+ ? slotsRaw.subscribe.filter((slot) => typeof slot === 'string' && (0, slots_1.isAdminSlotId)(slot))
66
+ : undefined;
67
+ return {
68
+ entry: typeof raw.entry === 'string' ? raw.entry : undefined,
69
+ slots: subscribe?.length ? { subscribe } : undefined,
70
+ menu: raw.menu && typeof raw.menu === 'object'
71
+ ? raw.menu
72
+ : undefined,
73
+ };
74
+ })()
75
+ : undefined;
76
+ const settingsRaw = o.settings;
77
+ const settings = settingsRaw && typeof settingsRaw === 'object'
78
+ ? {
79
+ schema: settingsRaw.schema &&
80
+ typeof settingsRaw.schema === 'object'
81
+ ? settingsRaw.schema
82
+ : undefined,
83
+ }
84
+ : undefined;
85
+ const capsRaw = o.capabilities;
86
+ const capabilities = capsRaw && typeof capsRaw === 'object'
87
+ ? capsRaw
88
+ : undefined;
89
+ return {
90
+ id: o.id,
91
+ name: o.name,
92
+ version: typeof o.version === 'string' ? o.version : '1.0.0',
93
+ description: typeof o.description === 'string' ? o.description : undefined,
94
+ author: typeof o.author === 'string' ? o.author : undefined,
95
+ requires: typeof o.requires === 'string' ? o.requires : undefined,
96
+ requiresPlugins: Array.isArray(o.requiresPlugins)
97
+ ? o.requiresPlugins.filter((p) => typeof p === 'string')
98
+ : undefined,
99
+ server: server?.module ? server : undefined,
100
+ admin,
101
+ settings,
102
+ permissions: Array.isArray(o.permissions)
103
+ ? o.permissions.filter((p) => typeof p === 'string')
104
+ : undefined,
105
+ capabilities,
106
+ };
107
+ }
108
+ function getPluginStateFromGlobalSetting(raw) {
109
+ if (!raw || typeof raw !== 'object')
110
+ return { ...exports.defaultSitePluginState };
111
+ const gs = raw;
112
+ const plugins = gs.plugins;
113
+ if (!plugins || typeof plugins !== 'object')
114
+ return { ...exports.defaultSitePluginState };
115
+ return {
116
+ installedPlugins: Array.isArray(plugins.installedPlugins)
117
+ ? plugins.installedPlugins.filter((id) => typeof id === 'string' && isValidPluginId(id))
118
+ : [],
119
+ activePlugins: Array.isArray(plugins.activePlugins)
120
+ ? plugins.activePlugins.filter((id) => typeof id === 'string' && isValidPluginId(id))
121
+ : [],
122
+ entries: plugins.entries && typeof plugins.entries === 'object'
123
+ ? plugins.entries
124
+ : {},
125
+ };
126
+ }
127
+ function mergePluginStateIntoGlobalSetting(raw, patch) {
128
+ const base = raw && typeof raw === 'object'
129
+ ? { ...raw }
130
+ : {};
131
+ const current = getPluginStateFromGlobalSetting(base);
132
+ base.plugins = {
133
+ installedPlugins: patch.installedPlugins ?? current.installedPlugins,
134
+ activePlugins: patch.activePlugins ?? current.activePlugins,
135
+ entries: patch.entries ?? current.entries,
136
+ };
137
+ return base;
138
+ }
139
+ /** Conventional admin module path relative to plugin package root. */
140
+ exports.PLUGIN_ADMIN_MODULE_CONVENTION = 'admin/index';
141
+ /** Whether manifest declares admin UI (slot and/or settings menu). */
142
+ function pluginManifestHasAdminUI(admin) {
143
+ if (!admin)
144
+ return false;
145
+ return Boolean(admin.menu || (admin.slots?.subscribe?.length ?? 0) > 0);
146
+ }
@@ -0,0 +1,7 @@
1
+ /** Relative server entry path inside the plugin runtime directory (no `..`, no absolute paths). */
2
+ export declare function isSafePluginModuleRel(moduleRel: string): boolean;
3
+ /**
4
+ * Resolve `server.module` under the plugin root and ensure the result cannot escape it.
5
+ * Returns `null` when the path is unsafe or uses a disallowed extension.
6
+ */
7
+ export declare function resolvePluginServerModulePath(pluginRoot: string, moduleRel: string): string | null;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.isSafePluginModuleRel = isSafePluginModuleRel;
37
+ exports.resolvePluginServerModulePath = resolvePluginServerModulePath;
38
+ const path = __importStar(require("path"));
39
+ const ALLOWED_MODULE_EXTENSIONS = new Set(['.js', '.cjs', '.mjs']);
40
+ /** Relative server entry path inside the plugin runtime directory (no `..`, no absolute paths). */
41
+ function isSafePluginModuleRel(moduleRel) {
42
+ if (typeof moduleRel !== 'string' || !moduleRel.trim())
43
+ return false;
44
+ if (path.isAbsolute(moduleRel))
45
+ return false;
46
+ if (moduleRel.includes('\0'))
47
+ return false;
48
+ const normalized = moduleRel.replace(/^\.\//, '').replace(/\\/g, '/');
49
+ const segments = normalized.split('/');
50
+ if (segments.some((segment) => segment === '..'))
51
+ return false;
52
+ if (segments.some((segment) => segment === '.'))
53
+ return false;
54
+ return segments.every((segment) => segment.length > 0);
55
+ }
56
+ /**
57
+ * Resolve `server.module` under the plugin root and ensure the result cannot escape it.
58
+ * Returns `null` when the path is unsafe or uses a disallowed extension.
59
+ */
60
+ function resolvePluginServerModulePath(pluginRoot, moduleRel) {
61
+ if (!isSafePluginModuleRel(moduleRel))
62
+ return null;
63
+ const rel = moduleRel.replace(/^\.\//, '');
64
+ const root = path.resolve(pluginRoot);
65
+ const resolved = path.resolve(root, rel);
66
+ if (resolved !== root && !resolved.startsWith(`${root}${path.sep}`)) {
67
+ return null;
68
+ }
69
+ const ext = path.extname(resolved).toLowerCase();
70
+ if (!ext || !ALLOWED_MODULE_EXTENSIONS.has(ext)) {
71
+ return null;
72
+ }
73
+ return resolved;
74
+ }
@@ -0,0 +1,8 @@
1
+ import { type ErrorObject } from 'ajv';
2
+ export interface PluginSettingsValidationResult {
3
+ valid: boolean;
4
+ errors: ErrorObject[] | null;
5
+ message?: string;
6
+ }
7
+ export declare function assertPlainPluginConfig(config: unknown): Record<string, unknown>;
8
+ export declare function validatePluginSettings(schema: Record<string, unknown> | null | undefined, data: unknown): PluginSettingsValidationResult;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.assertPlainPluginConfig = assertPlainPluginConfig;
7
+ exports.validatePluginSettings = validatePluginSettings;
8
+ const ajv_1 = __importDefault(require("ajv"));
9
+ const ajv = new ajv_1.default({ allErrors: true, strict: false, coerceTypes: false });
10
+ const FORBIDDEN_CONFIG_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
11
+ function assertPlainPluginConfig(config) {
12
+ if (!config || typeof config !== 'object' || Array.isArray(config)) {
13
+ throw new Error('Plugin config must be a JSON object');
14
+ }
15
+ for (const key of Object.keys(config)) {
16
+ if (FORBIDDEN_CONFIG_KEYS.has(key)) {
17
+ throw new Error(`Invalid config key "${key}"`);
18
+ }
19
+ }
20
+ return config;
21
+ }
22
+ function validatePluginSettings(schema, data) {
23
+ if (!schema) {
24
+ if (data &&
25
+ typeof data === 'object' &&
26
+ !Array.isArray(data) &&
27
+ Object.keys(data).length > 0) {
28
+ return {
29
+ valid: false,
30
+ errors: null,
31
+ message: 'Plugin has no configurable settings',
32
+ };
33
+ }
34
+ return { valid: true, errors: null };
35
+ }
36
+ let config;
37
+ try {
38
+ config = assertPlainPluginConfig(data);
39
+ }
40
+ catch (err) {
41
+ return {
42
+ valid: false,
43
+ errors: null,
44
+ message: err instanceof Error ? err.message : 'Invalid plugin config',
45
+ };
46
+ }
47
+ const validate = ajv.compile(schema);
48
+ const valid = validate(config) === true;
49
+ if (valid) {
50
+ return { valid: true, errors: null };
51
+ }
52
+ const errors = validate.errors ?? [];
53
+ const message = errors.map((e) => `${e.instancePath || '/'} ${e.message ?? ''}`.trim()).join('; ');
54
+ return { valid: false, errors, message: message || 'Invalid plugin configuration' };
55
+ }
@@ -0,0 +1,9 @@
1
+ export * as admin from './admin';
2
+ export * as client from './client';
3
+ export * as dev from './dev';
4
+ /** @deprecated Use `plugin/client`; path kept for compatibility. */
5
+ export * as react from './react';
6
+ export * from './admin';
7
+ export * from './client';
8
+ export * from './dev';
9
+ export * from './react';
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.react = exports.dev = exports.client = exports.admin = void 0;
40
+ exports.admin = __importStar(require("./admin"));
41
+ exports.client = __importStar(require("./client"));
42
+ exports.dev = __importStar(require("./dev"));
43
+ /** @deprecated Use `plugin/client`; path kept for compatibility. */
44
+ exports.react = __importStar(require("./react"));
45
+ __exportStar(require("./admin"), exports);
46
+ __exportStar(require("./client"), exports);
47
+ __exportStar(require("./dev"), exports);
48
+ __exportStar(require("./react"), exports);
@@ -0,0 +1,2 @@
1
+ /** Node-only plugin helpers (filesystem I/O). */
2
+ export { readPluginAdminLocaleFile } from './extension/plugin-admin-locale.io';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readPluginAdminLocaleFile = void 0;
4
+ /** Node-only plugin helpers (filesystem I/O). */
5
+ var plugin_admin_locale_io_1 = require("./extension/plugin-admin-locale.io");
6
+ Object.defineProperty(exports, "readPluginAdminLocaleFile", { enumerable: true, get: function () { return plugin_admin_locale_io_1.readPluginAdminLocaleFile; } });
@@ -0,0 +1,14 @@
1
+ import { createApiInstance } from '../../api/instance';
2
+ export declare class ApiError extends Error {
3
+ code: number;
4
+ constructor(code: number, message: string);
5
+ }
6
+ export interface ClientOptions {
7
+ baseURL?: string;
8
+ getAccessToken?: () => string | null | undefined;
9
+ onUnauthorized?: () => void;
10
+ }
11
+ export type ReactPressClient = ReturnType<typeof createApiInstance>;
12
+ /** Single factory for web / theme / plugins — wraps generated API modules. */
13
+ export declare function createClient(options?: ClientOptions): ReactPressClient;
14
+ export declare function getDefaultApiBaseUrl(): string;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiError = void 0;
4
+ exports.createClient = createClient;
5
+ exports.getDefaultApiBaseUrl = getDefaultApiBaseUrl;
6
+ const instance_1 = require("../../api/instance");
7
+ class ApiError extends Error {
8
+ constructor(code, message) {
9
+ super(message);
10
+ this.name = 'ApiError';
11
+ this.code = code;
12
+ }
13
+ }
14
+ exports.ApiError = ApiError;
15
+ function readApiMessage(value) {
16
+ if (typeof value === 'string') {
17
+ const trimmed = value.trim();
18
+ return trimmed ? trimmed : null;
19
+ }
20
+ if (Array.isArray(value)) {
21
+ const parts = value
22
+ .map((item) => readApiMessage(item))
23
+ .filter((item) => Boolean(item));
24
+ return parts.length ? parts.join(', ') : null;
25
+ }
26
+ if (value && typeof value === 'object') {
27
+ const payload = value;
28
+ return readApiMessage(payload.message) ?? readApiMessage(payload.msg);
29
+ }
30
+ return null;
31
+ }
32
+ function rejectApiError(status, payload) {
33
+ if (typeof payload.code === 'number' && payload.code !== 0) {
34
+ return Promise.reject(new ApiError(payload.code, readApiMessage(payload.message) ?? 'Request failed'));
35
+ }
36
+ const message = readApiMessage(payload.msg) ?? readApiMessage(payload.message);
37
+ if (message) {
38
+ return Promise.reject(new ApiError(Number(payload.statusCode ?? status ?? 500), message));
39
+ }
40
+ return null;
41
+ }
42
+ function attachInterceptors(http, options) {
43
+ http.instance.interceptors.request.use((config) => {
44
+ const token = options.getAccessToken?.();
45
+ if (token && config.headers) {
46
+ config.headers.Authorization = `Bearer ${token}`;
47
+ }
48
+ return config;
49
+ });
50
+ http.instance.interceptors.response.use((response) => {
51
+ const body = response.data;
52
+ if (!body || typeof body !== 'object')
53
+ return response;
54
+ if (typeof body.code === 'number') {
55
+ if (body.code !== 0) {
56
+ throw new ApiError(body.code, readApiMessage(body.message) ?? 'Request failed');
57
+ }
58
+ response.data = body.data;
59
+ return response;
60
+ }
61
+ if (typeof body.success === 'boolean') {
62
+ if (!body.success) {
63
+ throw new ApiError(Number(body.statusCode ?? 500), readApiMessage(body.msg) ?? 'Request failed');
64
+ }
65
+ response.data = body.data;
66
+ return response;
67
+ }
68
+ return response;
69
+ }, (error) => {
70
+ const status = error?.response?.status;
71
+ if (status === 401) {
72
+ options.onUnauthorized?.();
73
+ }
74
+ const body = error?.response?.data;
75
+ if (body && typeof body === 'object') {
76
+ const rejected = rejectApiError(status, body);
77
+ if (rejected)
78
+ return rejected;
79
+ }
80
+ return Promise.reject(error);
81
+ });
82
+ }
83
+ /** Single factory for web / theme / plugins — wraps generated API modules. */
84
+ function createClient(options = {}) {
85
+ const baseURL = options.baseURL ?? 'http://localhost:3002/api';
86
+ const client = (0, instance_1.createApiInstance)({ baseURL });
87
+ attachInterceptors(client.article.http, options);
88
+ return client;
89
+ }
90
+ function getDefaultApiBaseUrl() {
91
+ if (typeof process !== 'undefined' && process.env?.SERVER_API_URL) {
92
+ return process.env.SERVER_API_URL;
93
+ }
94
+ return 'http://localhost:3002/api';
95
+ }
@@ -0,0 +1,2 @@
1
+ /** Stable export path: `@fecommunity/reactpress-toolkit/plugin/react`. */
2
+ export * from '../client';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /** Stable export path: `@fecommunity/reactpress-toolkit/plugin/react`. */
18
+ __exportStar(require("../client"), exports);
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import type { PluginAdminSlotComponentProps, PluginAdminSlotContribution, PluginAdminSlotHost } from '../admin/plugin-admin';
3
+ import type { AdminSlotId } from '../admin/slots';
4
+ export interface PluginAdminRuntimeContextValue {
5
+ ready: boolean;
6
+ host: PluginAdminSlotHost;
7
+ configByPluginId: Record<string, Record<string, unknown>>;
8
+ }
9
+ export declare function PluginAdminRuntimeProvider({ value, children, }: {
10
+ value: PluginAdminRuntimeContextValue;
11
+ children: React.ReactNode;
12
+ }): import("react/jsx-runtime").JSX.Element;
13
+ export declare function usePluginAdminRuntime(): PluginAdminRuntimeContextValue;
14
+ export declare function useAdminSlotContributions(slot: AdminSlotId): PluginAdminSlotContribution[];
15
+ export declare function useAdminSlotFilled(slot: AdminSlotId): boolean;
16
+ export interface AdminSlotProps<TContext> {
17
+ slot: AdminSlotId;
18
+ context: TContext;
19
+ className?: string;
20
+ }
21
+ /** Render all active plugin contributions registered for a slot. */
22
+ export declare function AdminSlot<TContext>({ slot, context, className }: AdminSlotProps<TContext>): import("react/jsx-runtime").JSX.Element | null;
23
+ export type { PluginAdminSlotComponentProps };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PluginAdminRuntimeProvider = PluginAdminRuntimeProvider;
4
+ exports.usePluginAdminRuntime = usePluginAdminRuntime;
5
+ exports.useAdminSlotContributions = useAdminSlotContributions;
6
+ exports.useAdminSlotFilled = useAdminSlotFilled;
7
+ exports.AdminSlot = AdminSlot;
8
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
+ const react_1 = require("react");
10
+ const PluginAdminRuntimeContext = (0, react_1.createContext)(null);
11
+ function PluginAdminRuntimeProvider({ value, children, }) {
12
+ return ((0, jsx_runtime_1.jsx)(PluginAdminRuntimeContext.Provider, { value: value, children: children }));
13
+ }
14
+ function usePluginAdminRuntime() {
15
+ const ctx = (0, react_1.useContext)(PluginAdminRuntimeContext);
16
+ if (!ctx) {
17
+ throw new Error('usePluginAdminRuntime must be used within PluginAdminRuntimeProvider');
18
+ }
19
+ return ctx;
20
+ }
21
+ function useAdminSlotContributions(slot) {
22
+ const { host, ready } = usePluginAdminRuntime();
23
+ return (0, react_1.useMemo)(() => (ready ? host.getContributions(slot) : []), [host, ready, slot]);
24
+ }
25
+ function useAdminSlotFilled(slot) {
26
+ return useAdminSlotContributions(slot).length > 0;
27
+ }
28
+ /** Render all active plugin contributions registered for a slot. */
29
+ function AdminSlot({ slot, context, className }) {
30
+ const { ready, host, configByPluginId } = usePluginAdminRuntime();
31
+ const items = (0, react_1.useMemo)(() => (ready ? host.getContributions(slot) : []), [host, ready, slot]);
32
+ if (!ready || items.length === 0)
33
+ return null;
34
+ return ((0, jsx_runtime_1.jsx)("div", { className: className, "data-admin-slot": slot, children: items.map(({ pluginId, Component }) => {
35
+ const Render = Component;
36
+ return ((0, jsx_runtime_1.jsx)(Render, { pluginId: pluginId, config: configByPluginId[pluginId] ?? {}, context: context }, pluginId));
37
+ }) }));
38
+ }
@@ -0,0 +1,18 @@
1
+ export type AppRuntime = 'web' | 'electron';
2
+ export interface DesktopApi {
3
+ getApiBaseUrl: () => Promise<string>;
4
+ setApiBaseUrl: (url: string) => Promise<void>;
5
+ showSaveDialog: (opts: {
6
+ defaultPath?: string;
7
+ }) => Promise<string | undefined>;
8
+ openExternal: (url: string) => Promise<void>;
9
+ platform: NodeJS.Platform;
10
+ }
11
+ declare global {
12
+ interface Window {
13
+ reactpressDesktop?: DesktopApi;
14
+ }
15
+ }
16
+ export declare function getRuntime(): AppRuntime;
17
+ export declare function getDesktopApi(): DesktopApi | undefined;
18
+ export declare function resolveApiBaseUrl(fallback: string): Promise<string>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRuntime = getRuntime;
4
+ exports.getDesktopApi = getDesktopApi;
5
+ exports.resolveApiBaseUrl = resolveApiBaseUrl;
6
+ function getRuntime() {
7
+ if (typeof window !== 'undefined' && window.reactpressDesktop) {
8
+ return 'electron';
9
+ }
10
+ return 'web';
11
+ }
12
+ function getDesktopApi() {
13
+ if (typeof window === 'undefined')
14
+ return undefined;
15
+ return window.reactpressDesktop;
16
+ }
17
+ async function resolveApiBaseUrl(fallback) {
18
+ const desktop = getDesktopApi();
19
+ if (desktop) {
20
+ try {
21
+ const url = await desktop.getApiBaseUrl();
22
+ if (url)
23
+ return url;
24
+ }
25
+ catch {
26
+ // fall through
27
+ }
28
+ }
29
+ return fallback;
30
+ }
@@ -0,0 +1,12 @@
1
+ /** Filter 回调可通过 `__hookReject` 拒绝继续处理(由核心 Service 识别并抛出 HTTP 错误)。 */
2
+ export declare const HOOK_REJECT_KEY = "__hookReject";
3
+ export interface HookRejectMeta {
4
+ message: string;
5
+ statusCode?: number;
6
+ }
7
+ export declare function createHookRejectValue<T extends Record<string, unknown>>(value: T, reject: HookRejectMeta): T & {
8
+ __hookReject: HookRejectMeta;
9
+ };
10
+ export declare function getHookReject(value: unknown): HookRejectMeta | null;
11
+ export declare function sanitizeHookRejectStatusCode(statusCode?: number): number;
12
+ export declare function stripHookMeta<T extends Record<string, unknown>>(value: T): T;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /** Filter 回调可通过 `__hookReject` 拒绝继续处理(由核心 Service 识别并抛出 HTTP 错误)。 */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.HOOK_REJECT_KEY = void 0;
5
+ exports.createHookRejectValue = createHookRejectValue;
6
+ exports.getHookReject = getHookReject;
7
+ exports.sanitizeHookRejectStatusCode = sanitizeHookRejectStatusCode;
8
+ exports.stripHookMeta = stripHookMeta;
9
+ exports.HOOK_REJECT_KEY = '__hookReject';
10
+ function createHookRejectValue(value, reject) {
11
+ return { ...value, [exports.HOOK_REJECT_KEY]: reject };
12
+ }
13
+ function getHookReject(value) {
14
+ if (!value || typeof value !== 'object')
15
+ return null;
16
+ const reject = value[exports.HOOK_REJECT_KEY];
17
+ if (!reject || typeof reject !== 'object')
18
+ return null;
19
+ const message = reject.message;
20
+ if (typeof message !== 'string' || !message.trim())
21
+ return null;
22
+ return reject;
23
+ }
24
+ function sanitizeHookRejectStatusCode(statusCode) {
25
+ if (typeof statusCode !== 'number' || !Number.isInteger(statusCode)) {
26
+ return 400;
27
+ }
28
+ if (statusCode < 400 || statusCode > 599) {
29
+ return 400;
30
+ }
31
+ return statusCode;
32
+ }
33
+ function stripHookMeta(value) {
34
+ if (!(exports.HOOK_REJECT_KEY in value))
35
+ return value;
36
+ const next = { ...value };
37
+ delete next[exports.HOOK_REJECT_KEY];
38
+ return next;
39
+ }