@fecommunity/reactpress-server 4.0.0 → 4.0.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 (340) hide show
  1. package/README.md +325 -56
  2. package/bin/reactpress-server.js +6 -50
  3. package/dist/app.module.js +30 -18
  4. package/dist/app.module.js.map +1 -1
  5. package/dist/filters/http-exception.filter.js +1 -1
  6. package/dist/filters/http-exception.filter.js.map +1 -1
  7. package/dist/generate-swagger.d.ts +1 -1
  8. package/dist/generate-swagger.js +11 -12
  9. package/dist/generate-swagger.js.map +1 -1
  10. package/dist/interceptors/transform.interceptor.d.ts +6 -2
  11. package/dist/interceptors/transform.interceptor.js +5 -10
  12. package/dist/interceptors/transform.interceptor.js.map +1 -1
  13. package/dist/logger/index.js +4 -5
  14. package/dist/logger/index.js.map +1 -1
  15. package/dist/main.d.ts +1 -3
  16. package/dist/main.js +23 -47
  17. package/dist/main.js.map +1 -1
  18. package/dist/modules/article/article.controller.d.ts +2 -7
  19. package/dist/modules/article/article.controller.js +48 -103
  20. package/dist/modules/article/article.controller.js.map +1 -1
  21. package/dist/modules/article/article.entity.d.ts +0 -4
  22. package/dist/modules/article/article.entity.js +41 -61
  23. package/dist/modules/article/article.entity.js.map +1 -1
  24. package/dist/modules/article/article.module.js +3 -18
  25. package/dist/modules/article/article.module.js.map +1 -1
  26. package/dist/modules/article/article.service.d.ts +2 -16
  27. package/dist/modules/article/article.service.js +29 -151
  28. package/dist/modules/article/article.service.js.map +1 -1
  29. package/dist/modules/auth/auth.controller.js +11 -11
  30. package/dist/modules/auth/auth.controller.js.map +1 -1
  31. package/dist/modules/auth/auth.module.js +4 -4
  32. package/dist/modules/auth/auth.module.js.map +1 -1
  33. package/dist/modules/auth/auth.service.js +7 -8
  34. package/dist/modules/auth/auth.service.js.map +1 -1
  35. package/dist/modules/auth/jwt-auth.guard.js +3 -4
  36. package/dist/modules/auth/jwt-auth.guard.js.map +1 -1
  37. package/dist/modules/auth/jwt.strategy.js +3 -4
  38. package/dist/modules/auth/jwt.strategy.js.map +1 -1
  39. package/dist/modules/auth/roles.guard.js +2 -2
  40. package/dist/modules/auth/roles.guard.js.map +1 -1
  41. package/dist/modules/category/category.controller.js +20 -21
  42. package/dist/modules/category/category.controller.js.map +1 -1
  43. package/dist/modules/category/category.entity.js +13 -13
  44. package/dist/modules/category/category.entity.js.map +1 -1
  45. package/dist/modules/category/category.module.js +1 -1
  46. package/dist/modules/category/category.module.js.map +1 -1
  47. package/dist/modules/category/category.service.js +4 -5
  48. package/dist/modules/category/category.service.js.map +1 -1
  49. package/dist/modules/comment/comment.controller.js +20 -24
  50. package/dist/modules/comment/comment.controller.js.map +1 -1
  51. package/dist/modules/comment/comment.entity.js +31 -31
  52. package/dist/modules/comment/comment.entity.js.map +1 -1
  53. package/dist/modules/comment/comment.module.js +2 -11
  54. package/dist/modules/comment/comment.module.js.map +1 -1
  55. package/dist/modules/comment/comment.service.d.ts +1 -5
  56. package/dist/modules/comment/comment.service.js +16 -43
  57. package/dist/modules/comment/comment.service.js.map +1 -1
  58. package/dist/modules/comment/html.d.ts +1 -1
  59. package/dist/modules/comment/html.js +3 -3
  60. package/dist/modules/comment/html.js.map +1 -1
  61. package/dist/modules/file/file.controller.d.ts +1 -1
  62. package/dist/modules/file/file.controller.js +20 -22
  63. package/dist/modules/file/file.controller.js.map +1 -1
  64. package/dist/modules/file/file.entity.d.ts +0 -7
  65. package/dist/modules/file/file.entity.js +15 -20
  66. package/dist/modules/file/file.entity.js.map +1 -1
  67. package/dist/modules/file/file.module.js +4 -16
  68. package/dist/modules/file/file.module.js.map +1 -1
  69. package/dist/modules/file/file.service.d.ts +1 -6
  70. package/dist/modules/file/file.service.js +38 -88
  71. package/dist/modules/file/file.service.js.map +1 -1
  72. package/dist/modules/install/install.controller.js +5 -5
  73. package/dist/modules/install/install.controller.js.map +1 -1
  74. package/dist/modules/install/install.module.js +1 -1
  75. package/dist/modules/install/install.module.js.map +1 -1
  76. package/dist/modules/install/install.service.js +2 -2
  77. package/dist/modules/install/install.service.js.map +1 -1
  78. package/dist/modules/knowledge/knowledge.controller.js +33 -35
  79. package/dist/modules/knowledge/knowledge.controller.js.map +1 -1
  80. package/dist/modules/knowledge/knowledge.entity.js +33 -33
  81. package/dist/modules/knowledge/knowledge.entity.js.map +1 -1
  82. package/dist/modules/knowledge/knowledge.module.js +1 -1
  83. package/dist/modules/knowledge/knowledge.module.js.map +1 -1
  84. package/dist/modules/knowledge/knowledge.service.js +11 -12
  85. package/dist/modules/knowledge/knowledge.service.js.map +1 -1
  86. package/dist/modules/page/page.controller.js +23 -24
  87. package/dist/modules/page/page.controller.js.map +1 -1
  88. package/dist/modules/page/page.entity.js +27 -27
  89. package/dist/modules/page/page.entity.js.map +1 -1
  90. package/dist/modules/page/page.module.js +1 -1
  91. package/dist/modules/page/page.module.js.map +1 -1
  92. package/dist/modules/page/page.service.js +12 -12
  93. package/dist/modules/page/page.service.js.map +1 -1
  94. package/dist/modules/search/search.controller.js +12 -12
  95. package/dist/modules/search/search.controller.js.map +1 -1
  96. package/dist/modules/search/search.entity.js +13 -13
  97. package/dist/modules/search/search.entity.js.map +1 -1
  98. package/dist/modules/search/search.module.js +1 -1
  99. package/dist/modules/search/search.module.js.map +1 -1
  100. package/dist/modules/search/search.service.js +2 -2
  101. package/dist/modules/search/search.service.js.map +1 -1
  102. package/dist/modules/setting/setting.constant.d.ts +4 -5
  103. package/dist/modules/setting/setting.constant.js +20 -5
  104. package/dist/modules/setting/setting.constant.js.map +1 -1
  105. package/dist/modules/setting/setting.controller.js +11 -11
  106. package/dist/modules/setting/setting.controller.js.map +1 -1
  107. package/dist/modules/setting/setting.entity.d.ts +0 -3
  108. package/dist/modules/setting/setting.entity.js +49 -64
  109. package/dist/modules/setting/setting.entity.js.map +1 -1
  110. package/dist/modules/setting/setting.module.js +2 -2
  111. package/dist/modules/setting/setting.module.js.map +1 -1
  112. package/dist/modules/setting/setting.service.d.ts +2 -13
  113. package/dist/modules/setting/setting.service.js +24 -169
  114. package/dist/modules/setting/setting.service.js.map +1 -1
  115. package/dist/modules/smtp/mail.util.d.ts +6 -7
  116. package/dist/modules/smtp/mail.util.js +9 -5
  117. package/dist/modules/smtp/mail.util.js.map +1 -1
  118. package/dist/modules/smtp/smtp.controller.d.ts +0 -3
  119. package/dist/modules/smtp/smtp.controller.js +14 -27
  120. package/dist/modules/smtp/smtp.controller.js.map +1 -1
  121. package/dist/modules/smtp/smtp.entity.js +15 -15
  122. package/dist/modules/smtp/smtp.entity.js.map +1 -1
  123. package/dist/modules/smtp/smtp.module.js +2 -2
  124. package/dist/modules/smtp/smtp.module.js.map +1 -1
  125. package/dist/modules/smtp/smtp.service.d.ts +0 -14
  126. package/dist/modules/smtp/smtp.service.js +12 -40
  127. package/dist/modules/smtp/smtp.service.js.map +1 -1
  128. package/dist/modules/tag/tag.controller.js +22 -24
  129. package/dist/modules/tag/tag.controller.js.map +1 -1
  130. package/dist/modules/tag/tag.entity.js +12 -12
  131. package/dist/modules/tag/tag.entity.js.map +1 -1
  132. package/dist/modules/tag/tag.module.js +1 -1
  133. package/dist/modules/tag/tag.module.js.map +1 -1
  134. package/dist/modules/tag/tag.service.js +4 -5
  135. package/dist/modules/tag/tag.service.js.map +1 -1
  136. package/dist/modules/user/user.controller.js +28 -39
  137. package/dist/modules/user/user.controller.js.map +1 -1
  138. package/dist/modules/user/user.entity.js +22 -22
  139. package/dist/modules/user/user.entity.js.map +1 -1
  140. package/dist/modules/user/user.module.js +2 -2
  141. package/dist/modules/user/user.module.js.map +1 -1
  142. package/dist/modules/user/user.service.js +14 -18
  143. package/dist/modules/user/user.service.js.map +1 -1
  144. package/dist/modules/view/view.controller.js +19 -20
  145. package/dist/modules/view/view.controller.js.map +1 -1
  146. package/dist/modules/view/view.entity.js +24 -24
  147. package/dist/modules/view/view.entity.js.map +1 -1
  148. package/dist/modules/view/view.module.js +1 -1
  149. package/dist/modules/view/view.module.js.map +1 -1
  150. package/dist/modules/view/view.service.js +4 -4
  151. package/dist/modules/view/view.service.js.map +1 -1
  152. package/dist/public/favicon.png +0 -0
  153. package/dist/starter.d.ts +1 -3
  154. package/dist/starter.js +14 -202
  155. package/dist/starter.js.map +1 -1
  156. package/dist/tsconfig.build.tsbuildinfo +15957 -1
  157. package/dist/utils/date.util.js +1 -1
  158. package/dist/utils/date.util.js.map +1 -1
  159. package/dist/utils/markdown.util.js +1 -1
  160. package/dist/utils/markdown.util.js.map +1 -1
  161. package/dist/utils/oss/aliyun-oss-client.d.ts +1 -3
  162. package/dist/utils/oss/aliyun-oss-client.js +0 -5
  163. package/dist/utils/oss/aliyun-oss-client.js.map +1 -1
  164. package/dist/utils/oss/oss-client.d.ts +1 -3
  165. package/dist/utils/oss/oss-client.js.map +1 -1
  166. package/dist/utils/oss.util.d.ts +1 -3
  167. package/dist/utils/oss.util.js +1 -6
  168. package/dist/utils/oss.util.js.map +1 -1
  169. package/dist/utils/uniqueid.util.js +1 -1
  170. package/dist/utils/uniqueid.util.js.map +1 -1
  171. package/dist/utils/upload.util.d.ts +2 -6
  172. package/dist/utils/upload.util.js +8 -23
  173. package/dist/utils/upload.util.js.map +1 -1
  174. package/dist/utils/user.util.d.ts +0 -1
  175. package/dist/utils/user.util.js +2 -6
  176. package/dist/utils/user.util.js.map +1 -1
  177. package/package.json +32 -36
  178. package/public/favicon.png +0 -0
  179. package/dist/common/api-messages.d.ts +0 -41
  180. package/dist/common/api-messages.js +0 -45
  181. package/dist/common/api-messages.js.map +0 -1
  182. package/dist/database/typeorm-options.d.ts +0 -3
  183. package/dist/database/typeorm-options.js +0 -71
  184. package/dist/database/typeorm-options.js.map +0 -1
  185. package/dist/modules/api-key/api-key.controller.d.ts +0 -14
  186. package/dist/modules/api-key/api-key.controller.js +0 -63
  187. package/dist/modules/api-key/api-key.controller.js.map +0 -1
  188. package/dist/modules/api-key/api-key.entity.d.ts +0 -11
  189. package/dist/modules/api-key/api-key.entity.js +0 -63
  190. package/dist/modules/api-key/api-key.entity.js.map +0 -1
  191. package/dist/modules/api-key/api-key.guard.d.ts +0 -7
  192. package/dist/modules/api-key/api-key.guard.js +0 -39
  193. package/dist/modules/api-key/api-key.guard.js.map +0 -1
  194. package/dist/modules/api-key/api-key.module.d.ts +0 -2
  195. package/dist/modules/api-key/api-key.module.js +0 -28
  196. package/dist/modules/api-key/api-key.module.js.map +0 -1
  197. package/dist/modules/api-key/api-key.service.d.ts +0 -15
  198. package/dist/modules/api-key/api-key.service.js +0 -81
  199. package/dist/modules/api-key/api-key.service.js.map +0 -1
  200. package/dist/modules/article/article-revision.entity.d.ts +0 -11
  201. package/dist/modules/article/article-revision.entity.js +0 -53
  202. package/dist/modules/article/article-revision.entity.js.map +0 -1
  203. package/dist/modules/article/article-slug.util.d.ts +0 -2
  204. package/dist/modules/article/article-slug.util.js +0 -19
  205. package/dist/modules/article/article-slug.util.js.map +0 -1
  206. package/dist/modules/article/scheduled-publish.service.d.ts +0 -13
  207. package/dist/modules/article/scheduled-publish.service.js +0 -65
  208. package/dist/modules/article/scheduled-publish.service.js.map +0 -1
  209. package/dist/modules/bootstrap/bootstrap.constants.d.ts +0 -20
  210. package/dist/modules/bootstrap/bootstrap.constants.js +0 -171
  211. package/dist/modules/bootstrap/bootstrap.constants.js.map +0 -1
  212. package/dist/modules/bootstrap/bootstrap.service.d.ts +0 -22
  213. package/dist/modules/bootstrap/bootstrap.service.js +0 -183
  214. package/dist/modules/bootstrap/bootstrap.service.js.map +0 -1
  215. package/dist/modules/bootstrap/install-locale.d.ts +0 -2
  216. package/dist/modules/bootstrap/install-locale.js +0 -11
  217. package/dist/modules/bootstrap/install-locale.js.map +0 -1
  218. package/dist/modules/extension/extension.module.d.ts +0 -9
  219. package/dist/modules/extension/extension.module.js +0 -52
  220. package/dist/modules/extension/extension.module.js.map +0 -1
  221. package/dist/modules/extension/plugin-loader.service.d.ts +0 -12
  222. package/dist/modules/extension/plugin-loader.service.js +0 -96
  223. package/dist/modules/extension/plugin-loader.service.js.map +0 -1
  224. package/dist/modules/extension/plugin-registry.bridge.d.ts +0 -3
  225. package/dist/modules/extension/plugin-registry.bridge.js +0 -44
  226. package/dist/modules/extension/plugin-registry.bridge.js.map +0 -1
  227. package/dist/modules/extension/plugin.controller.d.ts +0 -22
  228. package/dist/modules/extension/plugin.controller.js +0 -155
  229. package/dist/modules/extension/plugin.controller.js.map +0 -1
  230. package/dist/modules/extension/plugin.service.d.ts +0 -54
  231. package/dist/modules/extension/plugin.service.js +0 -414
  232. package/dist/modules/extension/plugin.service.js.map +0 -1
  233. package/dist/modules/extension/preview-draft.store.d.ts +0 -13
  234. package/dist/modules/extension/preview-draft.store.js +0 -41
  235. package/dist/modules/extension/preview-draft.store.js.map +0 -1
  236. package/dist/modules/extension/theme-registry.bridge.d.ts +0 -56
  237. package/dist/modules/extension/theme-registry.bridge.js +0 -68
  238. package/dist/modules/extension/theme-registry.bridge.js.map +0 -1
  239. package/dist/modules/extension/theme.controller.d.ts +0 -66
  240. package/dist/modules/extension/theme.controller.js +0 -301
  241. package/dist/modules/extension/theme.controller.js.map +0 -1
  242. package/dist/modules/extension/theme.service.d.ts +0 -140
  243. package/dist/modules/extension/theme.service.js +0 -1039
  244. package/dist/modules/extension/theme.service.js.map +0 -1
  245. package/dist/modules/file/content-image-scan.util.d.ts +0 -52
  246. package/dist/modules/file/content-image-scan.util.js +0 -222
  247. package/dist/modules/file/content-image-scan.util.js.map +0 -1
  248. package/dist/modules/file/file-optimization.controller.d.ts +0 -12
  249. package/dist/modules/file/file-optimization.controller.js +0 -79
  250. package/dist/modules/file/file-optimization.controller.js.map +0 -1
  251. package/dist/modules/file/file-optimization.service.d.ts +0 -36
  252. package/dist/modules/file/file-optimization.service.js +0 -387
  253. package/dist/modules/file/file-optimization.service.js.map +0 -1
  254. package/dist/modules/file/file-optimization.types.d.ts +0 -66
  255. package/dist/modules/file/file-optimization.types.js +0 -5
  256. package/dist/modules/file/file-optimization.types.js.map +0 -1
  257. package/dist/modules/file/image-optimizer-plugin.guard.d.ts +0 -7
  258. package/dist/modules/file/image-optimizer-plugin.guard.js +0 -33
  259. package/dist/modules/file/image-optimizer-plugin.guard.js.map +0 -1
  260. package/dist/modules/health/health.controller.d.ts +0 -11
  261. package/dist/modules/health/health.controller.js +0 -55
  262. package/dist/modules/health/health.controller.js.map +0 -1
  263. package/dist/modules/health/health.module.d.ts +0 -2
  264. package/dist/modules/health/health.module.js +0 -20
  265. package/dist/modules/health/health.module.js.map +0 -1
  266. package/dist/modules/hook/hook.module.d.ts +0 -2
  267. package/dist/modules/hook/hook.module.js +0 -22
  268. package/dist/modules/hook/hook.module.js.map +0 -1
  269. package/dist/modules/hook/hook.service.d.ts +0 -26
  270. package/dist/modules/hook/hook.service.js +0 -105
  271. package/dist/modules/hook/hook.service.js.map +0 -1
  272. package/dist/modules/webhook/webhook.controller.d.ts +0 -12
  273. package/dist/modules/webhook/webhook.controller.js +0 -63
  274. package/dist/modules/webhook/webhook.controller.js.map +0 -1
  275. package/dist/modules/webhook/webhook.entity.d.ts +0 -9
  276. package/dist/modules/webhook/webhook.entity.js +0 -54
  277. package/dist/modules/webhook/webhook.entity.js.map +0 -1
  278. package/dist/modules/webhook/webhook.module.d.ts +0 -2
  279. package/dist/modules/webhook/webhook.module.js +0 -27
  280. package/dist/modules/webhook/webhook.module.js.map +0 -1
  281. package/dist/modules/webhook/webhook.service.d.ts +0 -16
  282. package/dist/modules/webhook/webhook.service.js +0 -100
  283. package/dist/modules/webhook/webhook.service.js.map +0 -1
  284. package/dist/node-polyfills.d.ts +0 -18
  285. package/dist/node-polyfills.js +0 -24
  286. package/dist/node-polyfills.js.map +0 -1
  287. package/dist/public/apple-touch-icon.png +0 -0
  288. package/dist/public/favicon-16.png +0 -0
  289. package/dist/public/favicon-32.png +0 -0
  290. package/dist/public/favicon-48.png +0 -0
  291. package/dist/public/favicon.ico +0 -0
  292. package/dist/public/icon-192.png +0 -0
  293. package/dist/public/icon-512.png +0 -0
  294. package/dist/public/logo-200.png +0 -0
  295. package/dist/public/logo-400.png +0 -0
  296. package/dist/public/logo.png +0 -0
  297. package/dist/public/logo.svg +0 -7
  298. package/dist/public/uploads/2026-05-30/QR3X4UZQ93ZTUPGXCFA9II..png +0 -0
  299. package/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8.webp +0 -0
  300. package/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_medium.webp +0 -0
  301. package/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_thumb.webp +0 -0
  302. package/dist/public/uploads/2026-05-31/I2SZC0ONA7CF31UM46MN56..jpg +0 -0
  303. package/dist/tsconfig.tsbuildinfo +0 -1
  304. package/dist/utils/html-sanitize.util.d.ts +0 -1
  305. package/dist/utils/html-sanitize.util.js +0 -33
  306. package/dist/utils/html-sanitize.util.js.map +0 -1
  307. package/dist/utils/image-processor.util.d.ts +0 -23
  308. package/dist/utils/image-processor.util.js +0 -88
  309. package/dist/utils/image-processor.util.js.map +0 -1
  310. package/dist/utils/local-api-quiet.util.d.ts +0 -1
  311. package/dist/utils/local-api-quiet.util.js +0 -8
  312. package/dist/utils/local-api-quiet.util.js.map +0 -1
  313. package/dist/utils/project-root.util.d.ts +0 -2
  314. package/dist/utils/project-root.util.js +0 -42
  315. package/dist/utils/project-root.util.js.map +0 -1
  316. package/dist/utils/query-whitelist.util.d.ts +0 -1
  317. package/dist/utils/query-whitelist.util.js +0 -100
  318. package/dist/utils/query-whitelist.util.js.map +0 -1
  319. package/dist/utils/theme-placeholder-cover.d.ts +0 -7
  320. package/dist/utils/theme-placeholder-cover.js +0 -94
  321. package/dist/utils/theme-placeholder-cover.js.map +0 -1
  322. package/dist/utils/upload-url.util.d.ts +0 -4
  323. package/dist/utils/upload-url.util.js +0 -34
  324. package/dist/utils/upload-url.util.js.map +0 -1
  325. package/public/apple-touch-icon.png +0 -0
  326. package/public/favicon-16.png +0 -0
  327. package/public/favicon-32.png +0 -0
  328. package/public/favicon-48.png +0 -0
  329. package/public/favicon.ico +0 -0
  330. package/public/icon-192.png +0 -0
  331. package/public/icon-512.png +0 -0
  332. package/public/logo-200.png +0 -0
  333. package/public/logo-400.png +0 -0
  334. package/public/logo.png +0 -0
  335. package/public/logo.svg +0 -7
  336. package/public/uploads/2026-05-30/QR3X4UZQ93ZTUPGXCFA9II..png +0 -0
  337. package/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8.webp +0 -0
  338. package/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_medium.webp +0 -0
  339. package/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_thumb.webp +0 -0
  340. package/public/uploads/2026-05-31/I2SZC0ONA7CF31UM46MN56..jpg +0 -0
@@ -1 +0,0 @@
1
- export declare function sanitizeHtml(html: string): string;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sanitizeHtml = void 0;
4
- const STRIP_TAGS = [
5
- 'script',
6
- 'iframe',
7
- 'object',
8
- 'embed',
9
- 'link',
10
- 'style',
11
- 'meta',
12
- 'base',
13
- 'applet',
14
- 'frame',
15
- 'frameset',
16
- ];
17
- function sanitizeHtml(html) {
18
- let clean = html;
19
- for (const tag of STRIP_TAGS) {
20
- clean = clean.replace(new RegExp(`<${tag}\\b[^>]*>[\\s\\S]*?<\\/${tag}>`, 'gi'), '');
21
- clean = clean.replace(new RegExp(`<${tag}\\b[^>]*\\/>`, 'gi'), '');
22
- clean = clean.replace(new RegExp(`<${tag}\\b[^>]*>`, 'gi'), '');
23
- }
24
- clean = clean.replace(/\bon\w+\s*=\s*"(?:[^"\\]|\\.)*"/gi, '');
25
- clean = clean.replace(/\bon\w+\s*=\s*'(?:[^'\\]|\\.)*'/gi, '');
26
- clean = clean.replace(/\bon\w+\s*=\s*[^\s>]+/gi, '');
27
- clean = clean.replace(/href\s*=\s*"javascript\s*:[^"]*"/gi, '');
28
- clean = clean.replace(/href\s*=\s*'javascript\s*:[^']*'/gi, '');
29
- clean = clean.replace(/javascript\s*:/gi, '');
30
- return clean;
31
- }
32
- exports.sanitizeHtml = sanitizeHtml;
33
- //# sourceMappingURL=html-sanitize.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-sanitize.util.js","sourceRoot":"","sources":["../../src/utils/html-sanitize.util.ts"],"names":[],"mappings":";;;AAAA,MAAM,UAAU,GAAG;IACjB,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,UAAU;CACX,CAAC;AAEF,SAAgB,YAAY,CAAC,IAAY;IACvC,IAAI,KAAK,GAAG,IAAI,CAAC;IAEjB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;QAC5B,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,0BAA0B,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KACjE;IAGD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;IAC/D,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;IAC/D,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAGrD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;IAChE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;IAChE,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC;AACf,CAAC;AApBD,oCAoBC"}
@@ -1,23 +0,0 @@
1
- /// <reference types="node" />
2
- export type ImageVariant = 'large' | 'medium' | 'thumb' | 'avatar';
3
- export type ImageScene = 'default' | 'content' | 'cover' | 'avatar';
4
- export interface ProcessedImageVariant {
5
- buffer: Buffer;
6
- width: number;
7
- height: number;
8
- size: number;
9
- }
10
- export interface ImageVariantMeta {
11
- url: string;
12
- filename: string;
13
- width: number;
14
- height: number;
15
- size: number;
16
- }
17
- export declare function isProcessableImage(mimetype: string): boolean;
18
- export declare function variantsForScene(scene: ImageScene): ImageVariant[];
19
- export declare function primaryVariantForScene(scene: ImageScene): ImageVariant;
20
- export declare function buildVariantFilename(baseFilename: string, variant: ImageVariant): string;
21
- export declare function listVariantFilenames(baseFilename: string): string[];
22
- export declare function processImageBuffer(buffer: Buffer, variant: ImageVariant): Promise<ProcessedImageVariant>;
23
- export declare function processImageVariants(buffer: Buffer, variants: ImageVariant[]): Promise<Map<ImageVariant, ProcessedImageVariant>>;
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processImageVariants = exports.processImageBuffer = exports.listVariantFilenames = exports.buildVariantFilename = exports.primaryVariantForScene = exports.variantsForScene = exports.isProcessableImage = void 0;
4
- const path = require("path");
5
- const sharp = require("sharp");
6
- const PROCESSABLE_MIMETYPES = new Set(['image/jpeg', 'image/jpg', 'image/png', 'image/webp', 'image/gif']);
7
- const IMAGE_VARIANT_CONFIG = {
8
- large: { maxWidth: 1920, quality: 82, fit: 'inside' },
9
- medium: { maxWidth: 1200, quality: 80, fit: 'inside' },
10
- thumb: { maxWidth: 400, quality: 75, fit: 'inside' },
11
- avatar: { maxWidth: 256, maxHeight: 256, quality: 80, fit: 'cover' },
12
- };
13
- function isProcessableImage(mimetype) {
14
- return PROCESSABLE_MIMETYPES.has(String(mimetype || '').toLowerCase());
15
- }
16
- exports.isProcessableImage = isProcessableImage;
17
- function variantsForScene(scene) {
18
- switch (scene) {
19
- case 'avatar':
20
- return ['avatar'];
21
- case 'content':
22
- return ['large', 'medium', 'thumb'];
23
- case 'cover':
24
- return ['large', 'medium', 'thumb'];
25
- default:
26
- return ['large', 'medium', 'thumb'];
27
- }
28
- }
29
- exports.variantsForScene = variantsForScene;
30
- function primaryVariantForScene(scene) {
31
- switch (scene) {
32
- case 'avatar':
33
- return 'avatar';
34
- case 'content':
35
- return 'medium';
36
- case 'cover':
37
- return 'large';
38
- default:
39
- return 'large';
40
- }
41
- }
42
- exports.primaryVariantForScene = primaryVariantForScene;
43
- function buildVariantFilename(baseFilename, variant) {
44
- const parsed = path.parse(baseFilename);
45
- const baseName = parsed.name.replace(/_(medium|thumb|avatar)$/i, '');
46
- if (variant === 'large') {
47
- return path.join(parsed.dir, `${baseName}.webp`);
48
- }
49
- return path.join(parsed.dir, `${baseName}_${variant}.webp`);
50
- }
51
- exports.buildVariantFilename = buildVariantFilename;
52
- function listVariantFilenames(baseFilename) {
53
- return ['large', 'medium', 'thumb', 'avatar'].map((variant) => buildVariantFilename(baseFilename, variant));
54
- }
55
- exports.listVariantFilenames = listVariantFilenames;
56
- async function processImageBuffer(buffer, variant) {
57
- const config = IMAGE_VARIANT_CONFIG[variant];
58
- let pipeline = sharp(buffer, { animated: false }).rotate();
59
- if (config.fit === 'cover' && config.maxHeight) {
60
- pipeline = pipeline.resize(config.maxWidth, config.maxHeight, {
61
- fit: 'cover',
62
- position: 'centre',
63
- });
64
- }
65
- else {
66
- pipeline = pipeline.resize(config.maxWidth, undefined, {
67
- fit: 'inside',
68
- withoutEnlargement: true,
69
- });
70
- }
71
- const output = await pipeline.webp({ quality: config.quality, effort: 4 }).toBuffer({ resolveWithObject: true });
72
- return {
73
- buffer: output.data,
74
- width: output.info.width,
75
- height: output.info.height,
76
- size: output.info.size,
77
- };
78
- }
79
- exports.processImageBuffer = processImageBuffer;
80
- async function processImageVariants(buffer, variants) {
81
- const results = new Map();
82
- for (const variant of variants) {
83
- results.set(variant, await processImageBuffer(buffer, variant));
84
- }
85
- return results;
86
- }
87
- exports.processImageVariants = processImageVariants;
88
- //# sourceMappingURL=image-processor.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-processor.util.js","sourceRoot":"","sources":["../../src/utils/image-processor.util.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,+BAAgC;AAoBhC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;AAE3G,MAAM,oBAAoB,GAGtB;IACF,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;IACrD,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;IACtD,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;IACpD,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;CACrE,CAAC;AAEF,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC;AAFD,gDAEC;AAED,SAAgB,gBAAgB,CAAC,KAAiB;IAChD,QAAQ,KAAK,EAAE;QACb,KAAK,QAAQ;YACX,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,KAAK,SAAS;YACZ,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtC,KAAK,OAAO;YACV,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtC;YACE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KACvC;AACH,CAAC;AAXD,4CAWC;AAED,SAAgB,sBAAsB,CAAC,KAAiB;IACtD,QAAQ,KAAK,EAAE;QACb,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,OAAO,OAAO,CAAC;KAClB;AACH,CAAC;AAXD,wDAWC;AAED,SAAgB,oBAAoB,CAAC,YAAoB,EAAE,OAAqB;IAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IAErE,IAAI,OAAO,KAAK,OAAO,EAAE;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;KAClD;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,QAAQ,IAAI,OAAO,OAAO,CAAC,CAAC;AAC9D,CAAC;AATD,oDASC;AAED,SAAgB,oBAAoB,CAAC,YAAoB;IACvD,OAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAChF,oBAAoB,CAAC,YAAY,EAAE,OAAO,CAAC,CAC5C,CAAC;AACJ,CAAC;AAJD,oDAIC;AAEM,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,OAAqB;IAC5E,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAE3D,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE;QAC9C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE;YAC5D,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;KACJ;SAAM;QACL,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE;YACrD,GAAG,EAAE,QAAQ;YACb,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;KACJ;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjH,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;QACxB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;QAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;KACvB,CAAC;AACJ,CAAC;AAxBD,gDAwBC;AAEM,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,QAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuC,CAAC;IAE/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KACjE;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAXD,oDAWC"}
@@ -1 +0,0 @@
1
- export declare function isLocalApiQuiet(): boolean;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isLocalApiQuiet = void 0;
4
- function isLocalApiQuiet() {
5
- return process.env.REACTPRESS_LOCAL_API_QUIET === '1';
6
- }
7
- exports.isLocalApiQuiet = isLocalApiQuiet;
8
- //# sourceMappingURL=local-api-quiet.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-api-quiet.util.js","sourceRoot":"","sources":["../../src/utils/local-api-quiet.util.ts"],"names":[],"mappings":";;;AACA,SAAgB,eAAe;IAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,GAAG,CAAC;AACxD,CAAC;AAFD,0CAEC"}
@@ -1,2 +0,0 @@
1
- export declare function resolveProjectRoot(): string;
2
- export declare function resolveMonorepoRoot(): string;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveMonorepoRoot = exports.resolveProjectRoot = void 0;
4
- const fs = require("fs");
5
- const path = require("path");
6
- function resolveProjectRoot() {
7
- if (process.env.REACTPRESS_ORIGINAL_CWD) {
8
- return process.env.REACTPRESS_ORIGINAL_CWD;
9
- }
10
- let dir = process.cwd();
11
- for (let depth = 0; depth < 8; depth += 1) {
12
- if (fs.existsSync(path.join(dir, 'themes'))) {
13
- process.env.REACTPRESS_ORIGINAL_CWD = dir;
14
- return dir;
15
- }
16
- const parent = path.dirname(dir);
17
- if (parent === dir)
18
- break;
19
- dir = parent;
20
- }
21
- return process.cwd();
22
- }
23
- exports.resolveProjectRoot = resolveProjectRoot;
24
- function resolveMonorepoRoot() {
25
- if (process.env.REACTPRESS_MONOREPO_ROOT) {
26
- return process.env.REACTPRESS_MONOREPO_ROOT;
27
- }
28
- let dir = process.cwd();
29
- for (let depth = 0; depth < 10; depth += 1) {
30
- if (fs.existsSync(path.join(dir, 'cli', 'out', 'lib', 'theme-registry.js'))) {
31
- process.env.REACTPRESS_MONOREPO_ROOT = dir;
32
- return dir;
33
- }
34
- const parent = path.dirname(dir);
35
- if (parent === dir)
36
- break;
37
- dir = parent;
38
- }
39
- return process.cwd();
40
- }
41
- exports.resolveMonorepoRoot = resolveMonorepoRoot;
42
- //# sourceMappingURL=project-root.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-root.util.js","sourceRoot":"","sources":["../../src/utils/project-root.util.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAG7B,SAAgB,kBAAkB;IAChC,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE;QACvC,OAAO,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;KAC5C;IAED,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;QACzC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC3C,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,GAAG,CAAC;YAC1C,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;KACd;IAED,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAjBD,gDAiBC;AAGD,SAAgB,mBAAmB;IACjC,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;QACxC,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;KAC7C;IAED,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;QAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,EAAE;YAC3E,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC;YAC3C,OAAO,GAAG,CAAC;SACZ;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;KACd;IAED,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAjBD,kDAiBC"}
@@ -1 +0,0 @@
1
- export declare function filterByWhitelist(entity: string, params: Record<string, unknown>): Record<string, unknown>;
@@ -1,100 +0,0 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.filterByWhitelist = void 0;
15
- const ALLOWED_COLUMNS = {
16
- article: [
17
- 'id',
18
- 'title',
19
- 'cover',
20
- 'content',
21
- 'html',
22
- 'toc',
23
- 'summary',
24
- 'status',
25
- 'views',
26
- 'likes',
27
- 'isRecommended',
28
- 'needPassword',
29
- 'password',
30
- 'publishAt',
31
- 'createAt',
32
- 'updateAt',
33
- ],
34
- comment: [
35
- 'id',
36
- 'hostId',
37
- 'name',
38
- 'email',
39
- 'avatar',
40
- 'content',
41
- 'html',
42
- 'pass',
43
- 'userAgent',
44
- 'url',
45
- 'createAt',
46
- 'updateAt',
47
- 'parentCommentId',
48
- 'replyUserName',
49
- 'replyUserEmail',
50
- ],
51
- file: ['id', 'originalname', 'filename', 'url', 'type', 'size', 'createAt', 'updateAt'],
52
- page: [
53
- 'id',
54
- 'name',
55
- 'cover',
56
- 'path',
57
- 'order',
58
- 'content',
59
- 'html',
60
- 'toc',
61
- 'status',
62
- 'views',
63
- 'publishAt',
64
- 'createAt',
65
- 'updateAt',
66
- ],
67
- knowledge: [
68
- 'id',
69
- 'title',
70
- 'cover',
71
- 'content',
72
- 'html',
73
- 'toc',
74
- 'summary',
75
- 'status',
76
- 'views',
77
- 'likes',
78
- 'isCommentable',
79
- 'order',
80
- 'parentId',
81
- 'publishAt',
82
- 'createAt',
83
- 'updateAt',
84
- ],
85
- };
86
- function filterByWhitelist(entity, params) {
87
- const whitelist = ALLOWED_COLUMNS[entity];
88
- if (!whitelist)
89
- return {};
90
- const _a = params, { page, pageSize, status, pass } = _a, otherParams = __rest(_a, ["page", "pageSize", "status", "pass"]);
91
- const filtered = {};
92
- Object.keys(otherParams).forEach((key) => {
93
- if (whitelist.includes(key)) {
94
- filtered[key] = otherParams[key];
95
- }
96
- });
97
- return filtered;
98
- }
99
- exports.filterByWhitelist = filterByWhitelist;
100
- //# sourceMappingURL=query-whitelist.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-whitelist.util.js","sourceRoot":"","sources":["../../src/utils/query-whitelist.util.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,MAAM,eAAe,GAA6B;IAChD,OAAO,EAAE;QACP,IAAI;QACJ,OAAO;QACP,OAAO;QACP,SAAS;QACT,MAAM;QACN,KAAK;QACL,SAAS;QACT,QAAQ;QACR,OAAO;QACP,OAAO;QACP,eAAe;QACf,cAAc;QACd,UAAU;QACV,WAAW;QACX,UAAU;QACV,UAAU;KACX;IACD,OAAO,EAAE;QACP,IAAI;QACJ,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,MAAM;QACN,MAAM;QACN,WAAW;QACX,KAAK;QACL,UAAU;QACV,UAAU;QACV,iBAAiB;QACjB,eAAe;QACf,gBAAgB;KACjB;IACD,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC;IACvF,IAAI,EAAE;QACJ,IAAI;QACJ,MAAM;QACN,OAAO;QACP,MAAM;QACN,OAAO;QACP,SAAS;QACT,MAAM;QACN,KAAK;QACL,QAAQ;QACR,OAAO;QACP,WAAW;QACX,UAAU;QACV,UAAU;KACX;IACD,SAAS,EAAE;QACT,IAAI;QACJ,OAAO;QACP,OAAO;QACP,SAAS;QACT,MAAM;QACN,KAAK;QACL,SAAS;QACT,QAAQ;QACR,OAAO;QACP,OAAO;QACP,eAAe;QACf,OAAO;QACP,UAAU;QACV,WAAW;QACX,UAAU;QACV,UAAU;KACX;CACF,CAAC;AAEF,SAAgB,iBAAiB,CAAC,MAAc,EAAE,MAA+B;IAC/E,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,MAAM,KAAmD,MAAiC,EAApF,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,OAAsD,EAAjD,WAAW,cAA9C,sCAAgD,CAAoC,CAAC;IAC3F,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;SAClC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAdD,8CAcC"}
@@ -1,7 +0,0 @@
1
- export declare function buildThemePlaceholderCoverSvg(options: {
2
- id: string;
3
- name?: string;
4
- version?: string;
5
- primary?: string;
6
- accent?: string;
7
- }): string;
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildThemePlaceholderCoverSvg = void 0;
4
- function escapeXml(text) {
5
- return String(text).replace(/[<>&"']/g, (ch) => {
6
- var _a;
7
- const map = {
8
- '<': '&lt;',
9
- '>': '&gt;',
10
- '&': '&amp;',
11
- '"': '&quot;',
12
- "'": '&#39;',
13
- };
14
- return (_a = map[ch]) !== null && _a !== void 0 ? _a : ch;
15
- });
16
- }
17
- function sanitizeColor(color, fallback) {
18
- if (!color)
19
- return fallback;
20
- const trimmed = String(color).trim();
21
- if (/^#[0-9a-fA-F]{3,8}$/.test(trimmed))
22
- return trimmed;
23
- return fallback;
24
- }
25
- function safeSvgId(id) {
26
- return String(id).replace(/[^a-zA-Z0-9_-]/g, '') || 'theme';
27
- }
28
- function buildThemePlaceholderCoverSvg(options) {
29
- var _a, _b;
30
- const svgId = safeSvgId(options.id);
31
- const primary = sanitizeColor(options.primary, '#2563eb');
32
- const accent = sanitizeColor(options.accent, '#7c3aed');
33
- const rawName = String((_b = (_a = options.name) !== null && _a !== void 0 ? _a : options.id) !== null && _b !== void 0 ? _b : 'Theme');
34
- const safeName = escapeXml(rawName.length > 48 ? `${rawName.slice(0, 45)}…` : rawName);
35
- const version = options.version ? escapeXml(String(options.version)) : '';
36
- const versionBadge = version
37
- ? `<rect x="656" y="28" width="112" height="26" rx="13" fill="#ffffff" fill-opacity="0.08"/>
38
- <text x="712" y="45" text-anchor="middle" fill="#ffffff" fill-opacity="0.65" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="500">v${version}</text>`
39
- : '';
40
- return `<svg xmlns="http://www.w3.org/2000/svg" width="800" height="500" viewBox="0 0 800 500" role="img" aria-label="${safeName}">
41
- <defs>
42
- <linearGradient id="${svgId}-bg" x1="0" y1="0" x2="800" y2="500" gradientUnits="userSpaceOnUse">
43
- <stop offset="0%" stop-color="#0b1220"/>
44
- <stop offset="100%" stop-color="#151b2b"/>
45
- </linearGradient>
46
- <linearGradient id="${svgId}-hero" x1="0" y1="0" x2="512" y2="0" gradientUnits="userSpaceOnUse">
47
- <stop offset="0%" stop-color="${primary}"/>
48
- <stop offset="100%" stop-color="${accent}"/>
49
- </linearGradient>
50
- <radialGradient id="${svgId}-glow1" cx="0" cy="0" r="1" gradientTransform="translate(96 48) rotate(90) scale(220 220)">
51
- <stop offset="0%" stop-color="${primary}" stop-opacity="0.38"/>
52
- <stop offset="100%" stop-color="${primary}" stop-opacity="0"/>
53
- </radialGradient>
54
- <radialGradient id="${svgId}-glow2" cx="0" cy="0" r="1" gradientTransform="translate(704 432) rotate(90) scale(260 260)">
55
- <stop offset="0%" stop-color="${accent}" stop-opacity="0.3"/>
56
- <stop offset="100%" stop-color="${accent}" stop-opacity="0"/>
57
- </radialGradient>
58
- <pattern id="${svgId}-grid" width="32" height="32" patternUnits="userSpaceOnUse">
59
- <path d="M32 0H0V32" fill="none" stroke="#ffffff" stroke-opacity="0.045" stroke-width="1"/>
60
- </pattern>
61
- <filter id="${svgId}-shadow" x="-16%" y="-16%" width="132%" height="132%">
62
- <feDropShadow dx="0" dy="18" stdDeviation="22" flood-color="#000000" flood-opacity="0.38"/>
63
- </filter>
64
- </defs>
65
- <rect width="800" height="500" fill="url(#${svgId}-bg)"/>
66
- <rect width="800" height="500" fill="url(#${svgId}-glow1)"/>
67
- <rect width="800" height="500" fill="url(#${svgId}-glow2)"/>
68
- <rect width="800" height="500" fill="url(#${svgId}-grid)"/>
69
- <rect x="32" y="28" width="112" height="26" rx="13" fill="#ffffff" fill-opacity="0.08"/>
70
- <text x="74" y="45" text-anchor="middle" fill="#ffffff" fill-opacity="0.75" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" letter-spacing="0.08em">REACTPRESS</text>
71
- ${versionBadge}
72
- <g transform="translate(120 68)" filter="url(#${svgId}-shadow)">
73
- <rect width="560" height="328" rx="14" fill="#ffffff"/>
74
- <path d="M0 14C0 6.268 6.268 0 14 0h532c7.732 0 14 6.268 14 14v38H0V14z" fill="#f8fafc"/>
75
- <circle cx="28" cy="19" r="5.5" fill="#ff5f57" fill-opacity="0.88"/>
76
- <circle cx="48" cy="19" r="5.5" fill="#febc2e" fill-opacity="0.88"/>
77
- <circle cx="68" cy="19" r="5.5" fill="#28c840" fill-opacity="0.88"/>
78
- <rect x="120" y="12" width="320" height="14" rx="7" fill="#e2e8f0"/>
79
- <rect x="24" y="62" width="512" height="108" rx="10" fill="url(#${svgId}-hero)"/>
80
- <rect x="40" y="86" width="196" height="14" rx="7" fill="#ffffff" fill-opacity="0.92"/>
81
- <rect x="40" y="108" width="272" height="10" rx="5" fill="#ffffff" fill-opacity="0.55"/>
82
- <rect x="24" y="194" width="340" height="10" rx="5" fill="#e2e8f0"/>
83
- <rect x="24" y="214" width="420" height="8" rx="4" fill="#f1f5f9"/>
84
- <rect x="24" y="228" width="380" height="8" rx="4" fill="#f1f5f9"/>
85
- <rect x="24" y="252" width="160" height="52" rx="8" fill="#f8fafc" stroke="#e2e8f0" stroke-width="1"/>
86
- <rect x="200" y="252" width="160" height="52" rx="8" fill="#f8fafc" stroke="#e2e8f0" stroke-width="1"/>
87
- <rect x="376" y="252" width="136" height="52" rx="8" fill="#f8fafc" stroke="#e2e8f0" stroke-width="1"/>
88
- </g>
89
- <text x="400" y="456" text-anchor="middle" fill="#ffffff" font-family="system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif" font-size="24" font-weight="600">${safeName}</text>
90
- <text x="400" y="478" text-anchor="middle" fill="#ffffff" fill-opacity="0.5" font-family="system-ui,-apple-system,sans-serif" font-size="12" font-weight="500">Theme Preview</text>
91
- </svg>`;
92
- }
93
- exports.buildThemePlaceholderCoverSvg = buildThemePlaceholderCoverSvg;
94
- //# sourceMappingURL=theme-placeholder-cover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-placeholder-cover.js","sourceRoot":"","sources":["../../src/utils/theme-placeholder-cover.ts"],"names":[],"mappings":";;;AAEA,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;;QAC7C,MAAM,GAAG,GAA2B;YAClC,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,OAAO;SACb,CAAC;QACF,OAAO,MAAA,GAAG,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAyB,EAAE,QAAgB;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACxD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,EAAU;IAC3B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;AAC9D,CAAC;AAED,SAAgB,6BAA6B,CAAC,OAM7C;;IACC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAA,MAAA,OAAO,CAAC,IAAI,mCAAI,OAAO,CAAC,EAAE,mCAAI,OAAO,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC;oKAC8J,OAAO,SAAS;QAChL,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,iHAAiH,QAAQ;;0BAExG,KAAK;;;;0BAIL,KAAK;sCACO,OAAO;wCACL,MAAM;;0BAEpB,KAAK;sCACO,OAAO;wCACL,OAAO;;0BAErB,KAAK;sCACO,MAAM;wCACJ,MAAM;;mBAE3B,KAAK;;;kBAGN,KAAK;;;;8CAIuB,KAAK;8CACL,KAAK;8CACL,KAAK;8CACL,KAAK;;;IAG/C,YAAY;kDACkC,KAAK;;;;;;;sEAOe,KAAK;;;;;;;;;;qLAU0G,QAAQ;;OAEtL,CAAC;AACR,CAAC;AAtED,sEAsEC"}
@@ -1,4 +0,0 @@
1
- import type { ConfigService } from '@nestjs/config';
2
- export declare function resolveServerSiteUrl(config: ConfigService): string;
3
- export declare function resolveUploadBaseUrl(config: ConfigService): string;
4
- export declare function rewriteBrokenUploadUrl(url: string | undefined | null, uploadBaseUrl: string): string;
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rewriteBrokenUploadUrl = exports.resolveUploadBaseUrl = exports.resolveServerSiteUrl = void 0;
4
- const DEFAULT_SERVER_SITE_URL = 'http://localhost:3002';
5
- function resolveServerSiteUrl(config) {
6
- var _a;
7
- const raw = (_a = config.get('SERVER_SITE_URL')) === null || _a === void 0 ? void 0 : _a.trim();
8
- if (raw)
9
- return raw.replace(/\/$/, '');
10
- return DEFAULT_SERVER_SITE_URL;
11
- }
12
- exports.resolveServerSiteUrl = resolveServerSiteUrl;
13
- function resolveUploadBaseUrl(config) {
14
- var _a;
15
- const explicit = (_a = config.get('SERVER_PUBLIC_UPLOAD_URL')) === null || _a === void 0 ? void 0 : _a.trim();
16
- if (explicit)
17
- return explicit.replace(/\/$/, '');
18
- return `${resolveServerSiteUrl(config)}/public/uploads`;
19
- }
20
- exports.resolveUploadBaseUrl = resolveUploadBaseUrl;
21
- function rewriteBrokenUploadUrl(url, uploadBaseUrl) {
22
- if (!url)
23
- return url !== null && url !== void 0 ? url : '';
24
- if (url.startsWith('undefined/public/uploads')) {
25
- return `${uploadBaseUrl}${url.slice('undefined/public/uploads'.length)}`;
26
- }
27
- if (url.startsWith('undefined/')) {
28
- const site = uploadBaseUrl.replace(/\/public\/uploads\/?$/, '');
29
- return `${site}${url.slice('undefined'.length)}`;
30
- }
31
- return url;
32
- }
33
- exports.rewriteBrokenUploadUrl = rewriteBrokenUploadUrl;
34
- //# sourceMappingURL=upload-url.util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload-url.util.js","sourceRoot":"","sources":["../../src/utils/upload-url.util.ts"],"names":[],"mappings":";;;AAEA,MAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAMxD,SAAgB,oBAAoB,CAAC,MAAqB;;IACxD,MAAM,GAAG,GAAG,MAAA,MAAM,CAAC,GAAG,CAAS,iBAAiB,CAAC,0CAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvC,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAJD,oDAIC;AAMD,SAAgB,oBAAoB,CAAC,MAAqB;;IACxD,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,GAAG,CAAS,0BAA0B,CAAC,0CAAE,IAAI,EAAE,CAAC;IACxE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACjD,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAC1D,CAAC;AAJD,oDAIC;AAGD,SAAgB,sBAAsB,CAAC,GAA8B,EAAE,aAAqB;IAC1F,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC;IAC3B,IAAI,GAAG,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE;QAC9C,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1E;IACD,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;QAChC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;KAClD;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAVD,wDAUC"}
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/public/logo.png DELETED
Binary file
package/public/logo.svg DELETED
@@ -1,7 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 112 102" fill="none" role="img" aria-label="ReactPress">
2
- <title>ReactPress</title>
3
- <g><path fill="none" stroke="#087ea4" stroke-width="5.333" stroke-linecap="round" d="M56 75.165c29.455 0 53.333-10.745 53.333-24s-23.878-24-53.333-24-53.334 10.745-53.334 24 23.879 24 53.334 24Z"/>
4
- <path fill="none" stroke="#087ea4" stroke-width="5.333" stroke-linecap="round" d="M35.215 63.165c14.728 25.509 35.972 40.815 47.451 34.188 11.48-6.628 8.846-32.68-5.882-58.188-14.727-25.51-35.972-40.816-47.45-34.188-11.48 6.627-8.846 32.679 5.881 58.188Z"/>
5
- <path fill="none" stroke="#087ea4" stroke-width="5.333" stroke-linecap="round" d="M35.215 39.165c-14.727 25.509-17.36 51.56-5.882 58.188 11.48 6.627 32.724-8.68 47.451-34.188 14.728-25.51 17.362-51.56 5.883-58.188-11.48-6.628-32.724 8.679-47.452 34.188Z"/></g>
6
- <text x="56" y="52" text-anchor="middle" dominant-baseline="central" fill="#087ea4" font-family="Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="33" font-weight="600" letter-spacing="-0.03em">P</text>
7
- </svg>