@fecommunity/reactpress-server 4.0.0-beta.9 → 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 (334) hide show
  1. package/README.md +327 -45
  2. package/bin/reactpress-server.js +6 -14
  3. package/dist/app.module.js +27 -15
  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 -1
  16. package/dist/main.js +23 -45
  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 -5
  70. package/dist/modules/file/file.service.js +24 -70
  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 +12 -16
  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 +28 -21
  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 -60
  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 -50
  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 -52
  231. package/dist/modules/extension/plugin.service.js +0 -391
  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 -46
  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/file-optimization.controller.d.ts +0 -12
  246. package/dist/modules/file/file-optimization.controller.js +0 -79
  247. package/dist/modules/file/file-optimization.controller.js.map +0 -1
  248. package/dist/modules/file/file-optimization.service.d.ts +0 -36
  249. package/dist/modules/file/file-optimization.service.js +0 -385
  250. package/dist/modules/file/file-optimization.service.js.map +0 -1
  251. package/dist/modules/file/file-optimization.types.d.ts +0 -66
  252. package/dist/modules/file/file-optimization.types.js +0 -5
  253. package/dist/modules/file/file-optimization.types.js.map +0 -1
  254. package/dist/modules/file/image-optimizer-plugin.guard.d.ts +0 -7
  255. package/dist/modules/file/image-optimizer-plugin.guard.js +0 -33
  256. package/dist/modules/file/image-optimizer-plugin.guard.js.map +0 -1
  257. package/dist/modules/health/health.controller.d.ts +0 -11
  258. package/dist/modules/health/health.controller.js +0 -55
  259. package/dist/modules/health/health.controller.js.map +0 -1
  260. package/dist/modules/health/health.module.d.ts +0 -2
  261. package/dist/modules/health/health.module.js +0 -20
  262. package/dist/modules/health/health.module.js.map +0 -1
  263. package/dist/modules/hook/hook.module.d.ts +0 -2
  264. package/dist/modules/hook/hook.module.js +0 -22
  265. package/dist/modules/hook/hook.module.js.map +0 -1
  266. package/dist/modules/hook/hook.service.d.ts +0 -26
  267. package/dist/modules/hook/hook.service.js +0 -105
  268. package/dist/modules/hook/hook.service.js.map +0 -1
  269. package/dist/modules/webhook/webhook.controller.d.ts +0 -12
  270. package/dist/modules/webhook/webhook.controller.js +0 -63
  271. package/dist/modules/webhook/webhook.controller.js.map +0 -1
  272. package/dist/modules/webhook/webhook.entity.d.ts +0 -9
  273. package/dist/modules/webhook/webhook.entity.js +0 -54
  274. package/dist/modules/webhook/webhook.entity.js.map +0 -1
  275. package/dist/modules/webhook/webhook.module.d.ts +0 -2
  276. package/dist/modules/webhook/webhook.module.js +0 -27
  277. package/dist/modules/webhook/webhook.module.js.map +0 -1
  278. package/dist/modules/webhook/webhook.service.d.ts +0 -16
  279. package/dist/modules/webhook/webhook.service.js +0 -100
  280. package/dist/modules/webhook/webhook.service.js.map +0 -1
  281. package/dist/node-polyfills.d.ts +0 -18
  282. package/dist/node-polyfills.js +0 -24
  283. package/dist/node-polyfills.js.map +0 -1
  284. package/dist/public/apple-touch-icon.png +0 -0
  285. package/dist/public/favicon-16.png +0 -0
  286. package/dist/public/favicon-32.png +0 -0
  287. package/dist/public/favicon-48.png +0 -0
  288. package/dist/public/favicon.ico +0 -0
  289. package/dist/public/icon-192.png +0 -0
  290. package/dist/public/icon-512.png +0 -0
  291. package/dist/public/logo-200.png +0 -0
  292. package/dist/public/logo-400.png +0 -0
  293. package/dist/public/logo.png +0 -0
  294. package/dist/public/logo.svg +0 -7
  295. package/dist/public/uploads/2026-05-30/QR3X4UZQ93ZTUPGXCFA9II..png +0 -0
  296. package/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8.webp +0 -0
  297. package/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_medium.webp +0 -0
  298. package/dist/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_thumb.webp +0 -0
  299. package/dist/public/uploads/2026-05-31/I2SZC0ONA7CF31UM46MN56..jpg +0 -0
  300. package/dist/tsconfig.tsbuildinfo +0 -1
  301. package/dist/utils/html-sanitize.util.d.ts +0 -1
  302. package/dist/utils/html-sanitize.util.js +0 -33
  303. package/dist/utils/html-sanitize.util.js.map +0 -1
  304. package/dist/utils/image-processor.util.d.ts +0 -23
  305. package/dist/utils/image-processor.util.js +0 -88
  306. package/dist/utils/image-processor.util.js.map +0 -1
  307. package/dist/utils/local-api-quiet.util.d.ts +0 -1
  308. package/dist/utils/local-api-quiet.util.js +0 -8
  309. package/dist/utils/local-api-quiet.util.js.map +0 -1
  310. package/dist/utils/project-root.util.d.ts +0 -2
  311. package/dist/utils/project-root.util.js +0 -42
  312. package/dist/utils/project-root.util.js.map +0 -1
  313. package/dist/utils/query-whitelist.util.d.ts +0 -1
  314. package/dist/utils/query-whitelist.util.js +0 -100
  315. package/dist/utils/query-whitelist.util.js.map +0 -1
  316. package/dist/utils/theme-placeholder-cover.d.ts +0 -8
  317. package/dist/utils/theme-placeholder-cover.js +0 -94
  318. package/dist/utils/theme-placeholder-cover.js.map +0 -1
  319. package/public/apple-touch-icon.png +0 -0
  320. package/public/favicon-16.png +0 -0
  321. package/public/favicon-32.png +0 -0
  322. package/public/favicon-48.png +0 -0
  323. package/public/favicon.ico +0 -0
  324. package/public/icon-192.png +0 -0
  325. package/public/icon-512.png +0 -0
  326. package/public/logo-200.png +0 -0
  327. package/public/logo-400.png +0 -0
  328. package/public/logo.png +0 -0
  329. package/public/logo.svg +0 -7
  330. package/public/uploads/2026-05-30/QR3X4UZQ93ZTUPGXCFA9II..png +0 -0
  331. package/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8.webp +0 -0
  332. package/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_medium.webp +0 -0
  333. package/public/uploads/2026-05-31/BXQV3NX9ZVWHGNOSX9AXD8_thumb.webp +0 -0
  334. package/public/uploads/2026-05-31/I2SZC0ONA7CF31UM46MN56..jpg +0 -0
@@ -17,115 +17,95 @@ const tag_entity_1 = require("../tag/tag.entity");
17
17
  let Article = class Article {
18
18
  };
19
19
  __decorate([
20
- (0, swagger_1.ApiProperty)(),
21
- (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
20
+ swagger_1.ApiProperty(),
21
+ typeorm_1.PrimaryGeneratedColumn('uuid'),
22
22
  __metadata("design:type", String)
23
23
  ], Article.prototype, "id", void 0);
24
24
  __decorate([
25
- (0, swagger_1.ApiProperty)(),
26
- (0, typeorm_1.Column)(),
25
+ swagger_1.ApiProperty(),
26
+ typeorm_1.Column(),
27
27
  __metadata("design:type", String)
28
28
  ], Article.prototype, "title", void 0);
29
29
  __decorate([
30
- (0, swagger_1.ApiProperty)(),
31
- (0, typeorm_1.Column)({ default: null }),
30
+ swagger_1.ApiProperty(),
31
+ typeorm_1.Column({ default: null }),
32
32
  __metadata("design:type", String)
33
33
  ], Article.prototype, "cover", void 0);
34
34
  __decorate([
35
- (0, swagger_1.ApiProperty)(),
36
- (0, typeorm_1.Column)({ type: 'text', default: null }),
35
+ swagger_1.ApiProperty(),
36
+ typeorm_1.Column({ type: 'text', default: null }),
37
37
  __metadata("design:type", String)
38
38
  ], Article.prototype, "summary", void 0);
39
39
  __decorate([
40
- (0, swagger_1.ApiProperty)({ description: 'URL 别名(slug)' }),
41
- (0, typeorm_1.Column)({ type: 'varchar', length: 191, default: null, unique: true }),
42
- __metadata("design:type", String)
43
- ], Article.prototype, "slug", void 0);
44
- __decorate([
45
- (0, swagger_1.ApiProperty)({ description: 'SEO 关键词,逗号分隔' }),
46
- (0, typeorm_1.Column)({ type: 'text', default: null }),
47
- __metadata("design:type", String)
48
- ], Article.prototype, "seoKeywords", void 0);
49
- __decorate([
50
- (0, swagger_1.ApiProperty)({ description: 'SEO 描述(meta description)' }),
51
- (0, typeorm_1.Column)({ type: 'text', default: null }),
52
- __metadata("design:type", String)
53
- ], Article.prototype, "seoDescription", void 0);
54
- __decorate([
55
- (0, swagger_1.ApiProperty)(),
56
- (0, typeorm_1.Column)({ type: 'text', default: null }),
40
+ swagger_1.ApiProperty(),
41
+ typeorm_1.Column({ type: 'mediumtext', default: null, charset: 'utf8mb4' }),
57
42
  __metadata("design:type", String)
58
43
  ], Article.prototype, "content", void 0);
59
44
  __decorate([
60
- (0, swagger_1.ApiProperty)(),
61
- (0, typeorm_1.Column)({ type: 'text', default: null }),
45
+ swagger_1.ApiProperty(),
46
+ typeorm_1.Column({ type: 'mediumtext', default: null, charset: 'utf8mb4' }),
62
47
  __metadata("design:type", String)
63
48
  ], Article.prototype, "html", void 0);
64
49
  __decorate([
65
- (0, swagger_1.ApiProperty)(),
66
- (0, typeorm_1.Column)({ type: 'text', default: null }),
50
+ swagger_1.ApiProperty(),
51
+ typeorm_1.Column({ type: 'mediumtext', default: null }),
67
52
  __metadata("design:type", String)
68
53
  ], Article.prototype, "toc", void 0);
69
54
  __decorate([
70
- (0, swagger_1.ApiProperty)({ type: () => category_entity_1.Category }),
71
- (0, typeorm_1.ManyToOne)(() => category_entity_1.Category, (category) => category.articles, { cascade: true }),
72
- (0, typeorm_1.JoinTable)(),
55
+ swagger_1.ApiProperty(),
56
+ typeorm_1.ManyToOne(() => category_entity_1.Category, (category) => category.articles, { cascade: true }),
57
+ typeorm_1.JoinTable(),
73
58
  __metadata("design:type", category_entity_1.Category)
74
59
  ], Article.prototype, "category", void 0);
75
60
  __decorate([
76
- (0, swagger_1.ApiProperty)({ type: () => tag_entity_1.Tag, isArray: true }),
77
- (0, typeorm_1.ManyToMany)(() => tag_entity_1.Tag, (tag) => tag.articles, { cascade: true }),
78
- (0, typeorm_1.JoinTable)(),
61
+ swagger_1.ApiProperty(),
62
+ typeorm_1.ManyToMany(() => tag_entity_1.Tag, (tag) => tag.articles, { cascade: true }),
63
+ typeorm_1.JoinTable(),
79
64
  __metadata("design:type", Array)
80
65
  ], Article.prototype, "tags", void 0);
81
66
  __decorate([
82
- (0, swagger_1.ApiProperty)(),
83
- (0, typeorm_1.Column)({ type: 'simple-enum', enum: ['draft', 'publish'] }),
67
+ swagger_1.ApiProperty(),
68
+ typeorm_1.Column('simple-enum', { enum: ['draft', 'publish'] }),
84
69
  __metadata("design:type", String)
85
70
  ], Article.prototype, "status", void 0);
86
71
  __decorate([
87
- (0, swagger_1.ApiProperty)(),
88
- (0, typeorm_1.Column)({ type: 'int', default: 0 }),
72
+ swagger_1.ApiProperty(),
73
+ typeorm_1.Column({ type: 'int', default: 0 }),
89
74
  __metadata("design:type", Number)
90
75
  ], Article.prototype, "views", void 0);
91
76
  __decorate([
92
- (0, swagger_1.ApiProperty)(),
93
- (0, typeorm_1.Column)({ type: 'int', default: 0 }),
77
+ swagger_1.ApiProperty(),
78
+ typeorm_1.Column({ type: 'int', default: 0 }),
94
79
  __metadata("design:type", Number)
95
80
  ], Article.prototype, "likes", void 0);
96
81
  __decorate([
97
- (0, swagger_1.ApiProperty)(),
98
- (0, typeorm_1.Column)({ type: 'boolean', default: false }),
82
+ swagger_1.ApiProperty(),
83
+ typeorm_1.Column({ type: 'boolean', default: false }),
99
84
  __metadata("design:type", Boolean)
100
85
  ], Article.prototype, "isRecommended", void 0);
101
86
  __decorate([
102
- (0, swagger_1.ApiProperty)(),
103
- (0, typeorm_1.Column)({ type: 'text', default: null, select: false }),
87
+ swagger_1.ApiProperty(),
88
+ typeorm_1.Column({ type: 'text', default: null, select: false }),
104
89
  __metadata("design:type", String)
105
90
  ], Article.prototype, "password", void 0);
106
91
  __decorate([
107
- (0, swagger_1.ApiProperty)(),
108
- (0, typeorm_1.Column)({ type: 'boolean', default: false }),
92
+ swagger_1.ApiProperty(),
93
+ typeorm_1.Column({ type: 'boolean', default: false }),
109
94
  __metadata("design:type", Boolean)
110
95
  ], Article.prototype, "needPassword", void 0);
111
96
  __decorate([
112
- (0, swagger_1.ApiProperty)(),
113
- (0, typeorm_1.Column)({ type: 'boolean', default: true }),
97
+ swagger_1.ApiProperty(),
98
+ typeorm_1.Column({ type: 'boolean', default: true }),
114
99
  __metadata("design:type", Boolean)
115
100
  ], Article.prototype, "isCommentable", void 0);
116
101
  __decorate([
117
- (0, swagger_1.ApiProperty)(),
118
- (0, typeorm_1.Column)({ type: 'datetime', default: () => 'CURRENT_TIMESTAMP' }),
102
+ swagger_1.ApiProperty(),
103
+ typeorm_1.Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' }),
119
104
  __metadata("design:type", Date)
120
105
  ], Article.prototype, "publishAt", void 0);
121
106
  __decorate([
122
- (0, swagger_1.ApiProperty)({ description: '定时发布时间(草稿状态下生效)' }),
123
- (0, typeorm_1.Column)({ type: 'datetime', nullable: true }),
124
- __metadata("design:type", Date)
125
- ], Article.prototype, "scheduledPublishAt", void 0);
126
- __decorate([
127
- (0, swagger_1.ApiProperty)(),
128
- (0, typeorm_1.CreateDateColumn)({
107
+ swagger_1.ApiProperty(),
108
+ typeorm_1.CreateDateColumn({
129
109
  type: 'datetime',
130
110
  comment: '创建时间',
131
111
  name: 'create_at',
@@ -133,8 +113,8 @@ __decorate([
133
113
  __metadata("design:type", Date)
134
114
  ], Article.prototype, "createAt", void 0);
135
115
  __decorate([
136
- (0, swagger_1.ApiProperty)(),
137
- (0, typeorm_1.UpdateDateColumn)({
116
+ swagger_1.ApiProperty(),
117
+ typeorm_1.UpdateDateColumn({
138
118
  type: 'datetime',
139
119
  comment: '更新时间',
140
120
  name: 'update_at',
@@ -142,7 +122,7 @@ __decorate([
142
122
  __metadata("design:type", Date)
143
123
  ], Article.prototype, "updateAt", void 0);
144
124
  Article = __decorate([
145
- (0, typeorm_1.Entity)()
125
+ typeorm_1.Entity()
146
126
  ], Article);
147
127
  exports.Article = Article;
148
128
  //# sourceMappingURL=article.entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"article.entity.js","sourceRoot":"","sources":["../../../src/modules/article/article.entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"article.entity.js","sourceRoot":"","sources":["../../../src/modules/article/article.entity.ts"],"names":[],"mappings":"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"}
@@ -9,35 +9,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.ArticleModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const typeorm_1 = require("@nestjs/typeorm");
12
- const api_key_module_1 = require("../api-key/api-key.module");
13
12
  const auth_module_1 = require("../auth/auth.module");
14
- const category_entity_1 = require("../category/category.entity");
15
13
  const category_module_1 = require("../category/category.module");
16
- const tag_entity_1 = require("../tag/tag.entity");
17
14
  const tag_module_1 = require("../tag/tag.module");
18
15
  const user_module_1 = require("../user/user.module");
19
- const webhook_module_1 = require("../webhook/webhook.module");
20
- const bootstrap_service_1 = require("../bootstrap/bootstrap.service");
21
16
  const article_controller_1 = require("./article.controller");
22
17
  const article_entity_1 = require("./article.entity");
23
18
  const article_service_1 = require("./article.service");
24
- const article_revision_entity_1 = require("./article-revision.entity");
25
- const scheduled_publish_service_1 = require("./scheduled-publish.service");
26
19
  let ArticleModule = class ArticleModule {
27
20
  };
28
21
  ArticleModule = __decorate([
29
- (0, common_1.Module)({
30
- imports: [
31
- typeorm_1.TypeOrmModule.forFeature([article_entity_1.Article, article_revision_entity_1.ArticleRevision, category_entity_1.Category, tag_entity_1.Tag]),
32
- category_module_1.CategoryModule,
33
- tag_module_1.TagModule,
34
- user_module_1.UserModule,
35
- auth_module_1.AuthModule,
36
- api_key_module_1.ApiKeyModule,
37
- webhook_module_1.WebhookModule,
38
- ],
22
+ common_1.Module({
23
+ imports: [typeorm_1.TypeOrmModule.forFeature([article_entity_1.Article]), category_module_1.CategoryModule, tag_module_1.TagModule, user_module_1.UserModule, auth_module_1.AuthModule],
39
24
  exports: [article_service_1.ArticleService],
40
- providers: [article_service_1.ArticleService, scheduled_publish_service_1.ScheduledPublishService, bootstrap_service_1.BootstrapService],
25
+ providers: [article_service_1.ArticleService],
41
26
  controllers: [article_controller_1.ArticleController],
42
27
  })
43
28
  ], ArticleModule);
@@ -1 +1 @@
1
- {"version":3,"file":"article.module.js","sourceRoot":"","sources":["../../../src/modules/article/article.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAEhD,8DAAyD;AACzD,qDAAiD;AACjD,iEAAuD;AACvD,iEAA6D;AAC7D,kDAAwC;AACxC,kDAA8C;AAC9C,qDAAiD;AACjD,8DAA0D;AAC1D,sEAAkE;AAClE,6DAAyD;AACzD,qDAA2C;AAC3C,uDAAmD;AACnD,uEAA4D;AAC5D,2EAAsE;AAgB/D,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,aAAa;IAdzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,wBAAO,EAAE,yCAAe,EAAE,0BAAQ,EAAE,gBAAG,CAAC,CAAC;YACnE,gCAAc;YACd,sBAAS;YACT,wBAAU;YACV,wBAAU;YACV,6BAAY;YACZ,8BAAa;SACd;QACD,OAAO,EAAE,CAAC,gCAAc,CAAC;QACzB,SAAS,EAAE,CAAC,gCAAc,EAAE,mDAAuB,EAAE,oCAAgB,CAAC;QACtE,WAAW,EAAE,CAAC,sCAAiB,CAAC;KACjC,CAAC;GACW,aAAa,CAAG;AAAhB,sCAAa"}
1
+ {"version":3,"file":"article.module.js","sourceRoot":"","sources":["../../../src/modules/article/article.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAEhD,qDAAiD;AACjD,iEAA6D;AAC7D,kDAA8C;AAC9C,qDAAiD;AACjD,6DAAyD;AACzD,qDAA2C;AAC3C,uDAAmD;AAQnD,IAAa,aAAa,GAA1B,MAAa,aAAa;CAAG,CAAA;AAAhB,aAAa;IANzB,eAAM,CAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,wBAAO,CAAC,CAAC,EAAE,gCAAc,EAAE,sBAAS,EAAE,wBAAU,EAAE,wBAAU,CAAC;QACjG,OAAO,EAAE,CAAC,gCAAc,CAAC;QACzB,SAAS,EAAE,CAAC,gCAAc,CAAC;QAC3B,WAAW,EAAE,CAAC,sCAAiB,CAAC;KACjC,CAAC;GACW,aAAa,CAAG;AAAhB,sCAAa"}
@@ -1,24 +1,12 @@
1
1
  import { Repository } from 'typeorm';
2
2
  import { CategoryService } from '../category/category.service';
3
- import { HookService } from '../hook/hook.service';
4
3
  import { TagService } from '../tag/tag.service';
5
- import { WebhookService } from '../webhook/webhook.service';
6
4
  import { Article } from './article.entity';
7
- import { ArticleRevision } from './article-revision.entity';
8
5
  export declare class ArticleService {
9
6
  private readonly articleRepository;
10
- private readonly revisionRepository;
11
7
  private readonly tagService;
12
8
  private readonly categoryService;
13
- private readonly webhookService;
14
- private readonly hookService;
15
- constructor(articleRepository: Repository<Article>, revisionRepository: Repository<ArticleRevision>, tagService: TagService, categoryService: CategoryService, webhookService: WebhookService, hookService: HookService);
16
- private saveRevision;
17
- private notifyPublished;
18
- private applyPublishFilters;
19
- private normalizeSeoPayload;
20
- private applyPublishFilterPatch;
21
- private assertSlugAvailable;
9
+ constructor(articleRepository: Repository<Article>, tagService: TagService, categoryService: CategoryService);
22
10
  create(article: Partial<Article>): Promise<Article>;
23
11
  findAll(queryParams: any): Promise<[Article[], number]>;
24
12
  findArticlesByCategory(category: any, queryParams: any): Promise<(number | Article[])[]>;
@@ -34,11 +22,9 @@ export declare class ArticleService {
34
22
  }>;
35
23
  findById(id: any, status?: any, isAdmin?: boolean): Promise<Article>;
36
24
  updateById(id: any, article: Partial<Article>): Promise<Article>;
37
- listRevisions(articleId: string): Promise<ArticleRevision[]>;
38
- restoreRevision(articleId: string, revisionId: string): Promise<Article>;
39
25
  updateViewsById(id: any): Promise<Article>;
40
26
  updateLikesById(id: any, type: any): Promise<Article>;
41
27
  deleteById(id: any): Promise<Article>;
42
28
  search(keyword: any): Promise<Article[]>;
43
- recommend(articleId?: any, pageSize?: number): Promise<Article[]>;
29
+ recommend(articleId?: any): Promise<Article[]>;
44
30
  }
@@ -27,112 +27,36 @@ exports.ArticleService = void 0;
27
27
  const common_1 = require("@nestjs/common");
28
28
  const typeorm_1 = require("@nestjs/typeorm");
29
29
  const typeorm_2 = require("typeorm");
30
- const api_messages_1 = require("../../common/api-messages");
31
30
  const date_util_1 = require("../../utils/date.util");
32
- const query_whitelist_util_1 = require("../../utils/query-whitelist.util");
33
31
  const category_service_1 = require("../category/category.service");
34
- const hook_service_1 = require("../hook/hook.service");
35
32
  const tag_service_1 = require("../tag/tag.service");
36
- const webhook_service_1 = require("../webhook/webhook.service");
37
33
  const article_entity_1 = require("./article.entity");
38
- const article_revision_entity_1 = require("./article-revision.entity");
39
- const article_slug_util_1 = require("./article-slug.util");
40
34
  const article_util_1 = require("./article.util");
41
35
  const Segment = require('segment');
42
36
  const segment = new Segment();
43
37
  segment.useDefault();
44
38
  let ArticleService = class ArticleService {
45
- constructor(articleRepository, revisionRepository, tagService, categoryService, webhookService, hookService) {
39
+ constructor(articleRepository, tagService, categoryService) {
46
40
  this.articleRepository = articleRepository;
47
- this.revisionRepository = revisionRepository;
48
41
  this.tagService = tagService;
49
42
  this.categoryService = categoryService;
50
- this.webhookService = webhookService;
51
- this.hookService = hookService;
52
- }
53
- async saveRevision(article) {
54
- const revision = this.revisionRepository.create({
55
- articleId: article.id,
56
- article,
57
- title: article.title,
58
- content: article.content,
59
- html: article.html,
60
- status: article.status,
61
- });
62
- await this.revisionRepository.save(revision);
63
- }
64
- async notifyPublished(article, extra = {}) {
65
- if (article.status !== 'publish')
66
- return;
67
- await this.webhookService.dispatch('article.published', Object.assign({ id: article.id, title: article.title, status: article.status, publishAt: article.publishAt }, extra));
68
- }
69
- async applyPublishFilters(article) {
70
- return this.hookService.applyFilters('article.beforePublish', Object.assign({}, article));
71
- }
72
- normalizeSeoPayload(payload) {
73
- const next = Object.assign({}, payload);
74
- if ('slug' in next) {
75
- next.slug = (0, article_slug_util_1.normalizeArticleSlug)(next.slug);
76
- }
77
- if (typeof next.seoKeywords === 'string') {
78
- next.seoKeywords = next.seoKeywords.trim() || null;
79
- }
80
- if (typeof next.seoDescription === 'string') {
81
- next.seoDescription = next.seoDescription.trim() || null;
82
- }
83
- return next;
84
- }
85
- applyPublishFilterPatch(patch, filtered) {
86
- const next = Object.assign({}, patch);
87
- for (const key of ['summary', 'slug', 'seoKeywords', 'seoDescription']) {
88
- if (filtered[key] !== undefined && filtered[key] !== null) {
89
- next[key] = filtered[key];
90
- }
91
- }
92
- return next;
93
- }
94
- async assertSlugAvailable(slug, excludeId) {
95
- if (!slug)
96
- return;
97
- const query = this.articleRepository
98
- .createQueryBuilder('article')
99
- .where('article.slug = :slug', { slug })
100
- .take(1);
101
- if (excludeId) {
102
- query.andWhere('article.id != :excludeId', { excludeId });
103
- }
104
- const exist = await query.getOne();
105
- if (exist) {
106
- throw new common_1.HttpException(api_messages_1.ApiMsg.ARTICLE_SLUG_EXISTS, common_1.HttpStatus.BAD_REQUEST);
107
- }
108
43
  }
109
44
  async create(article) {
110
- let payload = this.normalizeSeoPayload(await this.hookService.applyFilters('article.beforeCreate', Object.assign({}, article)));
111
- const { title } = payload;
45
+ const { title } = article;
112
46
  const exist = await this.articleRepository.findOne({ where: { title } });
113
47
  if (exist) {
114
- throw new common_1.HttpException(api_messages_1.ApiMsg.ARTICLE_TITLE_EXISTS, common_1.HttpStatus.BAD_REQUEST);
48
+ throw new common_1.HttpException('文章标题已存在', common_1.HttpStatus.BAD_REQUEST);
115
49
  }
116
- await this.assertSlugAvailable(payload.slug);
117
- let { tags, category, status } = payload;
50
+ let { tags, category, status } = article;
118
51
  if (status === 'publish') {
119
- payload = this.normalizeSeoPayload(await this.applyPublishFilters(payload));
120
- await this.assertSlugAvailable(payload.slug);
121
- Object.assign(payload, {
122
- publishAt: (0, date_util_1.dateFormat)(),
52
+ Object.assign(article, {
53
+ publishAt: date_util_1.dateFormat(),
123
54
  });
124
55
  }
125
56
  tags = await this.tagService.findByIds(('' + tags).split(','));
126
57
  const existCategory = await this.categoryService.findById(category);
127
- const newArticle = await this.articleRepository.create(Object.assign(Object.assign({}, payload), { category: existCategory, tags, needPassword: !!payload.password }));
58
+ const newArticle = await this.articleRepository.create(Object.assign(Object.assign({}, article), { category: existCategory, tags, needPassword: !!article.password }));
128
59
  await this.articleRepository.save(newArticle);
129
- if (newArticle.status === 'publish') {
130
- await this.hookService.doAction('article.afterPublish', {
131
- article: newArticle,
132
- isNew: true,
133
- });
134
- }
135
- await this.notifyPublished(newArticle);
136
60
  return newArticle;
137
61
  }
138
62
  async findAll(queryParams) {
@@ -147,14 +71,15 @@ let ArticleService = class ArticleService {
147
71
  if (status) {
148
72
  query.andWhere('article.status=:status').setParameter('status', status);
149
73
  }
150
- const filtered = (0, query_whitelist_util_1.filterByWhitelist)('article', queryParams);
151
- Object.keys(filtered).forEach((key) => {
152
- query.andWhere(`article.${key} LIKE :${key}`).setParameter(`${key}`, `%${filtered[key]}%`);
153
- });
74
+ if (otherParams) {
75
+ Object.keys(otherParams).forEach((key) => {
76
+ query.andWhere(`article.${key} LIKE :${key}`).setParameter(`${key}`, `%${otherParams[key]}%`);
77
+ });
78
+ }
154
79
  const [data, total] = await query.getManyAndCount();
155
80
  data.forEach((d) => {
156
81
  if (d.needPassword) {
157
- (0, article_util_1.extractProtectedArticle)(d);
82
+ article_util_1.extractProtectedArticle(d);
158
83
  }
159
84
  });
160
85
  return [data, total];
@@ -174,7 +99,7 @@ let ArticleService = class ArticleService {
174
99
  const [data, total] = await query.getManyAndCount();
175
100
  data.forEach((d) => {
176
101
  if (d.needPassword) {
177
- (0, article_util_1.extractProtectedArticle)(d);
102
+ article_util_1.extractProtectedArticle(d);
178
103
  }
179
104
  });
180
105
  return [data, total];
@@ -195,7 +120,7 @@ let ArticleService = class ArticleService {
195
120
  const [data, total] = await query.getManyAndCount();
196
121
  data.forEach((d) => {
197
122
  if (d.needPassword) {
198
- (0, article_util_1.extractProtectedArticle)(d);
123
+ article_util_1.extractProtectedArticle(d);
199
124
  }
200
125
  });
201
126
  return [data, total];
@@ -231,7 +156,7 @@ let ArticleService = class ArticleService {
231
156
  const year = new Date(d.publishAt).getFullYear();
232
157
  const month = new Date(d.publishAt).getMonth();
233
158
  if (d.needPassword) {
234
- (0, article_util_1.extractProtectedArticle)(d);
159
+ article_util_1.extractProtectedArticle(d);
235
160
  }
236
161
  if (!ret[year]) {
237
162
  ret[year] = {};
@@ -261,73 +186,30 @@ let ArticleService = class ArticleService {
261
186
  .leftJoinAndSelect('article.tags', 'tags')
262
187
  .where('article.id=:id')
263
188
  .orWhere('article.title=:title')
264
- .orWhere('article.slug=:slug')
265
189
  .setParameter('id', id)
266
- .setParameter('title', id)
267
- .setParameter('slug', id);
190
+ .setParameter('title', id);
268
191
  if (status) {
269
192
  query.andWhere('article.status=:status').setParameter('status', status);
270
193
  }
271
194
  const data = await query.getOne();
272
195
  if (data && data.needPassword && !isAdmin) {
273
- (0, article_util_1.extractProtectedArticle)(data);
196
+ article_util_1.extractProtectedArticle(data);
274
197
  }
275
198
  return data;
276
199
  }
277
200
  async updateById(id, article) {
278
- var _a;
279
201
  const oldArticle = await this.articleRepository.findOne(id);
280
- await this.saveRevision(oldArticle);
281
202
  let { tags, category, status } = article;
282
- let patch = this.normalizeSeoPayload(Object.assign(Object.assign({}, article), { views: oldArticle.views, needPassword: !!article.password }));
283
- await this.assertSlugAvailable(patch.slug, id);
284
203
  if (tags) {
285
204
  tags = await this.tagService.findByIds(('' + tags).split(','));
286
205
  }
287
206
  const existCategory = await this.categoryService.findById(category);
288
- const becomingPublish = oldArticle.status === 'draft' && status === 'publish';
289
- patch = Object.assign(Object.assign({}, patch), { category: existCategory, publishAt: becomingPublish ? (0, date_util_1.dateFormat)() : oldArticle.publishAt, scheduledPublishAt: status === 'publish' ? null : (_a = article.scheduledPublishAt) !== null && _a !== void 0 ? _a : oldArticle.scheduledPublishAt });
207
+ const newArticle = Object.assign(Object.assign({}, article), { views: oldArticle.views, category: existCategory, needPassword: !!article.password, publishAt: oldArticle.status === 'draft' && status === 'publish' ? date_util_1.dateFormat() : oldArticle.publishAt });
290
208
  if (tags) {
291
- Object.assign(patch, { tags });
292
- }
293
- if (status === 'publish' || becomingPublish) {
294
- const filtered = this.normalizeSeoPayload(await this.applyPublishFilters(Object.assign(Object.assign({}, oldArticle), patch)));
295
- patch = this.applyPublishFilterPatch(patch, filtered);
296
- await this.assertSlugAvailable(patch.slug, id);
297
- patch.publishAt = becomingPublish ? (0, date_util_1.dateFormat)() : oldArticle.publishAt;
209
+ Object.assign(newArticle, { tags });
298
210
  }
299
- const updatedArticle = await this.articleRepository.merge(oldArticle, patch);
300
- const saved = await this.articleRepository.save(updatedArticle);
301
- if (becomingPublish) {
302
- await this.hookService.doAction('article.afterPublish', {
303
- article: saved,
304
- isNew: false,
305
- });
306
- await this.notifyPublished(saved);
307
- }
308
- return saved;
309
- }
310
- async listRevisions(articleId) {
311
- return this.revisionRepository.find({
312
- where: { articleId },
313
- order: { createAt: 'DESC' },
314
- take: 50,
315
- });
316
- }
317
- async restoreRevision(articleId, revisionId) {
318
- const revision = await this.revisionRepository.findOne(revisionId);
319
- if (!revision || revision.articleId !== articleId) {
320
- throw new common_1.HttpException(api_messages_1.ApiMsg.REVISION_NOT_FOUND, common_1.HttpStatus.NOT_FOUND);
321
- }
322
- const article = await this.articleRepository.findOne(articleId);
323
- await this.saveRevision(article);
324
- const restored = await this.articleRepository.merge(article, {
325
- title: revision.title,
326
- content: revision.content,
327
- html: revision.html,
328
- status: revision.status,
329
- });
330
- return this.articleRepository.save(restored);
211
+ const updatedArticle = await this.articleRepository.merge(oldArticle, newArticle);
212
+ return this.articleRepository.save(updatedArticle);
331
213
  }
332
214
  async updateViewsById(id) {
333
215
  const oldArticle = await this.articleRepository.findOne(id);
@@ -355,7 +237,7 @@ let ArticleService = class ArticleService {
355
237
  .getMany();
356
238
  return res;
357
239
  }
358
- async recommend(articleId = null, pageSize = 6) {
240
+ async recommend(articleId = null) {
359
241
  const query = this.articleRepository
360
242
  .createQueryBuilder('article')
361
243
  .orderBy('article.publishAt', 'DESC')
@@ -363,7 +245,7 @@ let ArticleService = class ArticleService {
363
245
  .leftJoinAndSelect('article.tags', 'tags');
364
246
  if (!articleId) {
365
247
  query.where('article.status=:status').setParameter('status', 'publish');
366
- return query.take(pageSize).getMany();
248
+ return query.take(6).getMany();
367
249
  }
368
250
  const sub = this.articleRepository
369
251
  .createQueryBuilder('article')
@@ -374,7 +256,7 @@ let ArticleService = class ArticleService {
374
256
  .setParameter('id', articleId);
375
257
  const exist = await sub.getOne();
376
258
  if (!exist) {
377
- return query.take(pageSize).getMany();
259
+ return query.take(6).getMany();
378
260
  }
379
261
  const { title, summary } = exist;
380
262
  try {
@@ -407,19 +289,15 @@ let ArticleService = class ArticleService {
407
289
  }
408
290
  catch (e) { }
409
291
  const data = await query.getMany();
410
- return data.filter((d) => d.id !== articleId && d.status === 'publish').slice(0, pageSize);
292
+ return data.filter((d) => d.id !== articleId && d.status === 'publish');
411
293
  }
412
294
  };
413
295
  ArticleService = __decorate([
414
- (0, common_1.Injectable)(),
415
- __param(0, (0, typeorm_1.InjectRepository)(article_entity_1.Article)),
416
- __param(1, (0, typeorm_1.InjectRepository)(article_revision_entity_1.ArticleRevision)),
296
+ common_1.Injectable(),
297
+ __param(0, typeorm_1.InjectRepository(article_entity_1.Article)),
417
298
  __metadata("design:paramtypes", [typeorm_2.Repository,
418
- typeorm_2.Repository,
419
299
  tag_service_1.TagService,
420
- category_service_1.CategoryService,
421
- webhook_service_1.WebhookService,
422
- hook_service_1.HookService])
300
+ category_service_1.CategoryService])
423
301
  ], ArticleService);
424
302
  exports.ArticleService = ArticleService;
425
303
  //# sourceMappingURL=article.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"article.service.js","sourceRoot":"","sources":["../../../src/modules/article/article.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"article.service.js","sourceRoot":"","sources":["../../../src/modules/article/article.service.ts"],"names":[],"mappings":"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"}