@zlooks.cn/blog-server 1.0.6 → 1.0.8
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.
- package/dist/blog/blog-application.d.ts +15 -11
- package/dist/blog/blog-application.d.ts.map +1 -1
- package/dist/blog/blog-application.js +6 -4
- package/dist/blog/blog-application.js.map +1 -1
- package/dist/blog/comment-client-metadata.d.ts +6 -3
- package/dist/blog/comment-client-metadata.d.ts.map +1 -1
- package/dist/blog/comment-client-metadata.js +13 -3
- package/dist/blog/comment-client-metadata.js.map +1 -1
- package/dist/blog/errors.d.ts +6 -0
- package/dist/blog/errors.d.ts.map +1 -1
- package/dist/blog/errors.js +42 -2
- package/dist/blog/errors.js.map +1 -1
- package/dist/blog/post-content-audit.d.ts +0 -1
- package/dist/blog/post-content-audit.d.ts.map +1 -1
- package/dist/blog/post-content-audit.js +50 -13
- package/dist/blog/post-content-audit.js.map +1 -1
- package/dist/blog/public-blog-service.d.ts +47 -18
- package/dist/blog/public-blog-service.d.ts.map +1 -1
- package/dist/blog/public-blog-service.js +127 -101
- package/dist/blog/public-blog-service.js.map +1 -1
- package/dist/browser-api/http-message.d.ts +55 -0
- package/dist/browser-api/http-message.d.ts.map +1 -0
- package/dist/browser-api/http-message.js +159 -0
- package/dist/browser-api/http-message.js.map +1 -0
- package/dist/command/index.js +2 -6
- package/dist/command/index.js.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +10 -3
- package/dist/config/schema.js.map +1 -1
- package/dist/contracts/mcp.d.ts +9 -9
- package/dist/contracts/mcp.d.ts.map +1 -1
- package/dist/contracts/mcp.js +44 -15
- package/dist/contracts/mcp.js.map +1 -1
- package/dist/contracts/public-api.d.ts +1 -1
- package/dist/contracts/public-api.d.ts.map +1 -1
- package/dist/contracts/public-api.js +1 -1
- package/dist/contracts/public-api.js.map +1 -1
- package/dist/events/blog-domain-events.d.ts +21 -20
- package/dist/events/blog-domain-events.d.ts.map +1 -1
- package/dist/events/blog-domain-events.js +54 -21
- package/dist/events/blog-domain-events.js.map +1 -1
- package/dist/mcp/blog-prompts.d.ts.map +1 -1
- package/dist/mcp/blog-prompts.js +5 -4
- package/dist/mcp/blog-prompts.js.map +1 -1
- package/dist/mcp/blog-provider.d.ts +3 -3
- package/dist/mcp/blog-provider.d.ts.map +1 -1
- package/dist/mcp/blog-provider.js +3 -3
- package/dist/mcp/blog-provider.js.map +1 -1
- package/dist/mcp/blog-resources.d.ts +113 -1
- package/dist/mcp/blog-resources.d.ts.map +1 -1
- package/dist/mcp/blog-resources.js +156 -63
- package/dist/mcp/blog-resources.js.map +1 -1
- package/dist/mcp/blog-theme-authoring-prompt.d.ts.map +1 -1
- package/dist/mcp/blog-theme-authoring-prompt.js +4 -3
- package/dist/mcp/blog-theme-authoring-prompt.js.map +1 -1
- package/dist/mcp/category-tools.d.ts +2 -7
- package/dist/mcp/category-tools.d.ts.map +1 -1
- package/dist/mcp/category-tools.js +6 -8
- package/dist/mcp/category-tools.js.map +1 -1
- package/dist/mcp/comment-tools.d.ts +2 -7
- package/dist/mcp/comment-tools.d.ts.map +1 -1
- package/dist/mcp/comment-tools.js +7 -9
- package/dist/mcp/comment-tools.js.map +1 -1
- package/dist/mcp/friend-link-tools.d.ts +2 -7
- package/dist/mcp/friend-link-tools.d.ts.map +1 -1
- package/dist/mcp/friend-link-tools.js +8 -10
- package/dist/mcp/friend-link-tools.js.map +1 -1
- package/dist/mcp/page-tools.d.ts +2 -7
- package/dist/mcp/page-tools.d.ts.map +1 -1
- package/dist/mcp/page-tools.js +8 -30
- package/dist/mcp/page-tools.js.map +1 -1
- package/dist/mcp/post-tools.d.ts +2 -7
- package/dist/mcp/post-tools.d.ts.map +1 -1
- package/dist/mcp/post-tools.js +26 -114
- package/dist/mcp/post-tools.js.map +1 -1
- package/dist/mcp/tag-tools.d.ts +2 -7
- package/dist/mcp/tag-tools.d.ts.map +1 -1
- package/dist/mcp/tag-tools.js +6 -8
- package/dist/mcp/tag-tools.js.map +1 -1
- package/dist/mcp/theme-tools.d.ts +2 -9
- package/dist/mcp/theme-tools.d.ts.map +1 -1
- package/dist/mcp/theme-tools.js +6 -59
- package/dist/mcp/theme-tools.js.map +1 -1
- package/dist/mcp/tool-descriptions.d.ts.map +1 -1
- package/dist/mcp/tool-descriptions.js +2 -11
- package/dist/mcp/tool-descriptions.js.map +1 -1
- package/dist/mcp/tool-support.d.ts +13 -232
- package/dist/mcp/tool-support.d.ts.map +1 -1
- package/dist/mcp/tool-support.js +57 -98
- package/dist/mcp/tool-support.js.map +1 -1
- package/dist/messages/api/blog/[path+]/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/[path+]/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/[path+]/index.msg.js +7 -0
- package/dist/messages/api/blog/[path+]/index.msg.js.map +1 -0
- package/dist/messages/api/blog/categories/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/categories/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/categories/index.msg.js +6 -0
- package/dist/messages/api/blog/categories/index.msg.js.map +1 -0
- package/dist/messages/api/blog/friend-links/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/friend-links/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/friend-links/index.msg.js +6 -0
- package/dist/messages/api/blog/friend-links/index.msg.js.map +1 -0
- package/dist/messages/api/blog/likes/[slug]/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/likes/[slug]/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/likes/[slug]/index.msg.js +14 -0
- package/dist/messages/api/blog/likes/[slug]/index.msg.js.map +1 -0
- package/dist/messages/api/blog/posts/[slug]/comments/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/posts/[slug]/comments/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/posts/[slug]/comments/index.msg.js +18 -0
- package/dist/messages/api/blog/posts/[slug]/comments/index.msg.js.map +1 -0
- package/dist/messages/api/blog/posts/[slug]/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/posts/[slug]/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/posts/[slug]/index.msg.js +11 -0
- package/dist/messages/api/blog/posts/[slug]/index.msg.js.map +1 -0
- package/dist/messages/api/blog/posts/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/posts/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/posts/index.msg.js +12 -0
- package/dist/messages/api/blog/posts/index.msg.js.map +1 -0
- package/dist/messages/api/blog/search/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/search/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/search/index.msg.js +9 -0
- package/dist/messages/api/blog/search/index.msg.js.map +1 -0
- package/dist/messages/api/blog/tags/index.msg.d.ts +3 -0
- package/dist/messages/api/blog/tags/index.msg.d.ts.map +1 -0
- package/dist/messages/api/blog/tags/index.msg.js +6 -0
- package/dist/messages/api/blog/tags/index.msg.js.map +1 -0
- package/dist/messages/management/categories/create.msg.d.ts +22 -0
- package/dist/messages/management/categories/create.msg.d.ts.map +1 -0
- package/dist/messages/management/categories/create.msg.js +5 -0
- package/dist/messages/management/categories/create.msg.js.map +1 -0
- package/dist/messages/management/categories/delete.msg.d.ts +12 -0
- package/dist/messages/management/categories/delete.msg.d.ts.map +1 -0
- package/dist/messages/management/categories/delete.msg.js +5 -0
- package/dist/messages/management/categories/delete.msg.js.map +1 -0
- package/dist/messages/management/categories/list.msg.d.ts +21 -0
- package/dist/messages/management/categories/list.msg.d.ts.map +1 -0
- package/dist/messages/management/categories/list.msg.js +5 -0
- package/dist/messages/management/categories/list.msg.js.map +1 -0
- package/dist/messages/management/categories/read.msg.d.ts +19 -0
- package/dist/messages/management/categories/read.msg.d.ts.map +1 -0
- package/dist/messages/management/categories/read.msg.js +5 -0
- package/dist/messages/management/categories/read.msg.js.map +1 -0
- package/dist/messages/management/categories/update.msg.d.ts +23 -0
- package/dist/messages/management/categories/update.msg.d.ts.map +1 -0
- package/dist/messages/management/categories/update.msg.js +5 -0
- package/dist/messages/management/categories/update.msg.js.map +1 -0
- package/dist/messages/management/comments/approve.msg.d.ts +29 -0
- package/dist/messages/management/comments/approve.msg.d.ts.map +1 -0
- package/dist/messages/management/comments/approve.msg.js +5 -0
- package/dist/messages/management/comments/approve.msg.js.map +1 -0
- package/dist/messages/management/comments/delete.msg.d.ts +12 -0
- package/dist/messages/management/comments/delete.msg.d.ts.map +1 -0
- package/dist/messages/management/comments/delete.msg.js +5 -0
- package/dist/messages/management/comments/delete.msg.js.map +1 -0
- package/dist/messages/management/comments/list.msg.d.ts +41 -0
- package/dist/messages/management/comments/list.msg.d.ts.map +1 -0
- package/dist/messages/management/comments/list.msg.js +5 -0
- package/dist/messages/management/comments/list.msg.js.map +1 -0
- package/dist/messages/management/comments/read.msg.d.ts +29 -0
- package/dist/messages/management/comments/read.msg.d.ts.map +1 -0
- package/dist/messages/management/comments/read.msg.js +5 -0
- package/dist/messages/management/comments/read.msg.js.map +1 -0
- package/dist/messages/management/comments/reject.msg.d.ts +29 -0
- package/dist/messages/management/comments/reject.msg.d.ts.map +1 -0
- package/dist/messages/management/comments/reject.msg.js +5 -0
- package/dist/messages/management/comments/reject.msg.js.map +1 -0
- package/dist/messages/management/comments/reply.msg.d.ts +30 -0
- package/dist/messages/management/comments/reply.msg.d.ts.map +1 -0
- package/dist/messages/management/comments/reply.msg.js +5 -0
- package/dist/messages/management/comments/reply.msg.js.map +1 -0
- package/dist/messages/management/friend-links/create.msg.d.ts +26 -0
- package/dist/messages/management/friend-links/create.msg.d.ts.map +1 -0
- package/dist/messages/management/friend-links/create.msg.js +5 -0
- package/dist/messages/management/friend-links/create.msg.js.map +1 -0
- package/dist/messages/management/friend-links/delete.msg.d.ts +12 -0
- package/dist/messages/management/friend-links/delete.msg.d.ts.map +1 -0
- package/dist/messages/management/friend-links/delete.msg.js +5 -0
- package/dist/messages/management/friend-links/delete.msg.js.map +1 -0
- package/dist/messages/management/friend-links/disable.msg.d.ts +21 -0
- package/dist/messages/management/friend-links/disable.msg.d.ts.map +1 -0
- package/dist/messages/management/friend-links/disable.msg.js +5 -0
- package/dist/messages/management/friend-links/disable.msg.js.map +1 -0
- package/dist/messages/management/friend-links/enable.msg.d.ts +21 -0
- package/dist/messages/management/friend-links/enable.msg.d.ts.map +1 -0
- package/dist/messages/management/friend-links/enable.msg.js +5 -0
- package/dist/messages/management/friend-links/enable.msg.js.map +1 -0
- package/dist/messages/management/friend-links/list.msg.d.ts +23 -0
- package/dist/messages/management/friend-links/list.msg.d.ts.map +1 -0
- package/dist/messages/management/friend-links/list.msg.js +5 -0
- package/dist/messages/management/friend-links/list.msg.js.map +1 -0
- package/dist/messages/management/friend-links/read.msg.d.ts +21 -0
- package/dist/messages/management/friend-links/read.msg.d.ts.map +1 -0
- package/dist/messages/management/friend-links/read.msg.js +5 -0
- package/dist/messages/management/friend-links/read.msg.js.map +1 -0
- package/dist/messages/management/friend-links/update.msg.d.ts +27 -0
- package/dist/messages/management/friend-links/update.msg.d.ts.map +1 -0
- package/dist/messages/management/friend-links/update.msg.js +5 -0
- package/dist/messages/management/friend-links/update.msg.js.map +1 -0
- package/dist/messages/management/pages/archive.msg.d.ts +30 -0
- package/dist/messages/management/pages/archive.msg.d.ts.map +1 -0
- package/dist/messages/management/pages/archive.msg.js +5 -0
- package/dist/messages/management/pages/archive.msg.js.map +1 -0
- package/dist/messages/management/pages/create.msg.d.ts +38 -0
- package/dist/messages/management/pages/create.msg.d.ts.map +1 -0
- package/dist/messages/management/pages/create.msg.js +5 -0
- package/dist/messages/management/pages/create.msg.js.map +1 -0
- package/dist/messages/management/pages/delete.msg.d.ts +12 -0
- package/dist/messages/management/pages/delete.msg.d.ts.map +1 -0
- package/dist/messages/management/pages/delete.msg.js +5 -0
- package/dist/messages/management/pages/delete.msg.js.map +1 -0
- package/dist/messages/management/pages/list.msg.d.ts +41 -0
- package/dist/messages/management/pages/list.msg.d.ts.map +1 -0
- package/dist/messages/management/pages/list.msg.js +5 -0
- package/dist/messages/management/pages/list.msg.js.map +1 -0
- package/dist/messages/management/pages/publish.msg.d.ts +30 -0
- package/dist/messages/management/pages/publish.msg.d.ts.map +1 -0
- package/dist/messages/management/pages/publish.msg.js +5 -0
- package/dist/messages/management/pages/publish.msg.js.map +1 -0
- package/dist/messages/management/pages/read.msg.d.ts +30 -0
- package/dist/messages/management/pages/read.msg.d.ts.map +1 -0
- package/dist/messages/management/pages/read.msg.js +5 -0
- package/dist/messages/management/pages/read.msg.js.map +1 -0
- package/dist/messages/management/pages/update.msg.d.ts +39 -0
- package/dist/messages/management/pages/update.msg.d.ts.map +1 -0
- package/dist/messages/management/pages/update.msg.js +5 -0
- package/dist/messages/management/pages/update.msg.js.map +1 -0
- package/dist/messages/management/posts/archive-list.msg.d.ts +48 -0
- package/dist/messages/management/posts/archive-list.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/archive-list.msg.js +5 -0
- package/dist/messages/management/posts/archive-list.msg.js.map +1 -0
- package/dist/messages/management/posts/archive.msg.d.ts +34 -0
- package/dist/messages/management/posts/archive.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/archive.msg.js +5 -0
- package/dist/messages/management/posts/archive.msg.js.map +1 -0
- package/dist/messages/management/posts/audit.msg.d.ts +41 -0
- package/dist/messages/management/posts/audit.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/audit.msg.js +5 -0
- package/dist/messages/management/posts/audit.msg.js.map +1 -0
- package/dist/messages/management/posts/create.msg.d.ts +40 -0
- package/dist/messages/management/posts/create.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/create.msg.js +5 -0
- package/dist/messages/management/posts/create.msg.js.map +1 -0
- package/dist/messages/management/posts/delete.msg.d.ts +12 -0
- package/dist/messages/management/posts/delete.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/delete.msg.js +5 -0
- package/dist/messages/management/posts/delete.msg.js.map +1 -0
- package/dist/messages/management/posts/list.msg.d.ts +42 -0
- package/dist/messages/management/posts/list.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/list.msg.js +5 -0
- package/dist/messages/management/posts/list.msg.js.map +1 -0
- package/dist/messages/management/posts/publish.msg.d.ts +68 -0
- package/dist/messages/management/posts/publish.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/publish.msg.js +23 -0
- package/dist/messages/management/posts/publish.msg.js.map +1 -0
- package/dist/messages/management/posts/read.msg.d.ts +34 -0
- package/dist/messages/management/posts/read.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/read.msg.js +5 -0
- package/dist/messages/management/posts/read.msg.js.map +1 -0
- package/dist/messages/management/posts/search.msg.d.ts +39 -0
- package/dist/messages/management/posts/search.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/search.msg.js +5 -0
- package/dist/messages/management/posts/search.msg.js.map +1 -0
- package/dist/messages/management/posts/update.msg.d.ts +41 -0
- package/dist/messages/management/posts/update.msg.d.ts.map +1 -0
- package/dist/messages/management/posts/update.msg.js +5 -0
- package/dist/messages/management/posts/update.msg.js.map +1 -0
- package/dist/messages/management/tags/create.msg.d.ts +18 -0
- package/dist/messages/management/tags/create.msg.d.ts.map +1 -0
- package/dist/messages/management/tags/create.msg.js +5 -0
- package/dist/messages/management/tags/create.msg.js.map +1 -0
- package/dist/messages/management/tags/delete.msg.d.ts +12 -0
- package/dist/messages/management/tags/delete.msg.d.ts.map +1 -0
- package/dist/messages/management/tags/delete.msg.js +5 -0
- package/dist/messages/management/tags/delete.msg.js.map +1 -0
- package/dist/messages/management/tags/list.msg.d.ts +19 -0
- package/dist/messages/management/tags/list.msg.d.ts.map +1 -0
- package/dist/messages/management/tags/list.msg.js +5 -0
- package/dist/messages/management/tags/list.msg.js.map +1 -0
- package/dist/messages/management/tags/read.msg.d.ts +17 -0
- package/dist/messages/management/tags/read.msg.d.ts.map +1 -0
- package/dist/messages/management/tags/read.msg.js +5 -0
- package/dist/messages/management/tags/read.msg.js.map +1 -0
- package/dist/messages/management/tags/update.msg.d.ts +19 -0
- package/dist/messages/management/tags/update.msg.d.ts.map +1 -0
- package/dist/messages/management/tags/update.msg.js +5 -0
- package/dist/messages/management/tags/update.msg.js.map +1 -0
- package/dist/messages/management/themes/list.msg.d.ts +32 -0
- package/dist/messages/management/themes/list.msg.d.ts.map +1 -0
- package/dist/messages/management/themes/list.msg.js +5 -0
- package/dist/messages/management/themes/list.msg.js.map +1 -0
- package/dist/messages/management/themes/read-selection.msg.d.ts +12 -0
- package/dist/messages/management/themes/read-selection.msg.d.ts.map +1 -0
- package/dist/messages/management/themes/read-selection.msg.js +5 -0
- package/dist/messages/management/themes/read-selection.msg.js.map +1 -0
- package/dist/messages/management/themes/read-status.msg.d.ts +25 -0
- package/dist/messages/management/themes/read-status.msg.d.ts.map +1 -0
- package/dist/messages/management/themes/read-status.msg.js +5 -0
- package/dist/messages/management/themes/read-status.msg.js.map +1 -0
- package/dist/messages/management/themes/select.msg.d.ts +35 -0
- package/dist/messages/management/themes/select.msg.d.ts.map +1 -0
- package/dist/messages/management/themes/select.msg.js +5 -0
- package/dist/messages/management/themes/select.msg.js.map +1 -0
- package/dist/messages/model-message.d.ts +7 -0
- package/dist/messages/model-message.d.ts.map +1 -0
- package/dist/messages/model-message.js +9 -0
- package/dist/messages/model-message.js.map +1 -0
- package/dist/messages/public/categories/list.msg.d.ts +12 -1
- package/dist/messages/public/categories/list.msg.js +4 -7
- package/dist/messages/public/categories/list.msg.js.map +1 -1
- package/dist/messages/public/comments/create.msg.d.ts +37 -0
- package/dist/messages/public/comments/create.msg.d.ts.map +1 -0
- package/dist/messages/public/comments/create.msg.js +36 -0
- package/dist/messages/public/comments/create.msg.js.map +1 -0
- package/dist/messages/public/comments/list.msg.d.ts +38 -1
- package/dist/messages/public/comments/list.msg.js +20 -5
- package/dist/messages/public/comments/list.msg.js.map +1 -1
- package/dist/messages/public/comments/recent.msg.d.ts +31 -1
- package/dist/messages/public/comments/recent.msg.js +12 -5
- package/dist/messages/public/comments/recent.msg.js.map +1 -1
- package/dist/messages/public/friend-links/list.msg.d.ts +12 -1
- package/dist/messages/public/friend-links/list.msg.js +4 -7
- package/dist/messages/public/friend-links/list.msg.js.map +1 -1
- package/dist/messages/public/pages/list.msg.d.ts +22 -1
- package/dist/messages/public/pages/list.msg.js +4 -7
- package/dist/messages/public/pages/list.msg.js.map +1 -1
- package/dist/messages/public/pages/read.msg.d.ts +25 -1
- package/dist/messages/public/pages/read.msg.js +4 -7
- package/dist/messages/public/pages/read.msg.js.map +1 -1
- package/dist/messages/public/posts/archive.msg.d.ts +45 -1
- package/dist/messages/public/posts/archive.msg.js +4 -7
- package/dist/messages/public/posts/archive.msg.js.map +1 -1
- package/dist/messages/public/posts/connections.msg.d.ts +77 -1
- package/dist/messages/public/posts/connections.msg.js +4 -7
- package/dist/messages/public/posts/connections.msg.js.map +1 -1
- package/dist/messages/public/posts/list.msg.d.ts +40 -1
- package/dist/messages/public/posts/list.msg.js +19 -5
- package/dist/messages/public/posts/list.msg.js.map +1 -1
- package/dist/messages/public/posts/open.msg.d.ts +43 -1
- package/dist/messages/public/posts/open.msg.js +12 -5
- package/dist/messages/public/posts/open.msg.js.map +1 -1
- package/dist/messages/public/posts/read.msg.d.ts +33 -1
- package/dist/messages/public/posts/read.msg.js +4 -7
- package/dist/messages/public/posts/read.msg.js.map +1 -1
- package/dist/messages/public/posts/search.msg.d.ts +32 -0
- package/dist/messages/public/posts/search.msg.d.ts.map +1 -0
- package/dist/messages/public/posts/search.msg.js +5 -0
- package/dist/messages/public/posts/search.msg.js.map +1 -0
- package/dist/messages/public/posts/set-liked.msg.d.ts +23 -0
- package/dist/messages/public/posts/set-liked.msg.d.ts.map +1 -0
- package/dist/messages/public/posts/set-liked.msg.js +34 -0
- package/dist/messages/public/posts/set-liked.msg.js.map +1 -0
- package/dist/messages/public/tags/list.msg.d.ts +9 -1
- package/dist/messages/public/tags/list.msg.js +4 -7
- package/dist/messages/public/tags/list.msg.js.map +1 -1
- package/dist/messages/resources/event-catalog.msg.d.ts +7 -0
- package/dist/messages/resources/event-catalog.msg.d.ts.map +1 -0
- package/dist/messages/resources/event-catalog.msg.js +6 -0
- package/dist/messages/resources/event-catalog.msg.js.map +1 -0
- package/dist/messages/resources/theme-authoring-contract.msg.d.ts +7 -0
- package/dist/messages/resources/theme-authoring-contract.msg.d.ts.map +1 -0
- package/dist/messages/resources/theme-authoring-contract.msg.js +6 -0
- package/dist/messages/resources/theme-authoring-contract.msg.js.map +1 -0
- package/dist/messages/{browser/dispatch.msg.d.ts → sitemap/entries.msg.d.ts} +1 -1
- package/dist/messages/sitemap/entries.msg.d.ts.map +1 -0
- package/dist/messages/sitemap/entries.msg.js +9 -0
- package/dist/messages/sitemap/entries.msg.js.map +1 -0
- package/dist/messages/user-context.d.ts +21 -0
- package/dist/messages/user-context.d.ts.map +1 -0
- package/dist/messages/user-context.js +47 -0
- package/dist/messages/user-context.js.map +1 -0
- package/dist/migrations/index.d.ts +2 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +6 -0
- package/dist/migrations/index.js.map +1 -1
- package/dist/models/blog-resource-documents.d.ts +33 -0
- package/dist/models/blog-resource-documents.d.ts.map +1 -0
- package/dist/models/blog-resource-documents.js +52 -0
- package/dist/models/blog-resource-documents.js.map +1 -0
- package/dist/models/management/approve-comment.model.d.ts +23 -0
- package/dist/models/management/approve-comment.model.d.ts.map +1 -0
- package/dist/models/management/approve-comment.model.js +14 -0
- package/dist/models/management/approve-comment.model.js.map +1 -0
- package/dist/models/management/archive-page.model.d.ts +21 -0
- package/dist/models/management/archive-page.model.d.ts.map +1 -0
- package/dist/models/management/archive-page.model.js +14 -0
- package/dist/models/management/archive-page.model.js.map +1 -0
- package/dist/models/management/archive-post.model.d.ts +28 -0
- package/dist/models/management/archive-post.model.d.ts.map +1 -0
- package/dist/models/management/archive-post.model.js +14 -0
- package/dist/models/management/archive-post.model.js.map +1 -0
- package/dist/models/management/audit-post-content.model.d.ts +21 -0
- package/dist/models/management/audit-post-content.model.d.ts.map +1 -0
- package/dist/models/management/audit-post-content.model.js +12 -0
- package/dist/models/management/audit-post-content.model.js.map +1 -0
- package/dist/models/management/create-category.model.d.ts +17 -0
- package/dist/models/management/create-category.model.d.ts.map +1 -0
- package/dist/models/management/create-category.model.js +14 -0
- package/dist/models/management/create-category.model.js.map +1 -0
- package/dist/models/management/create-friend-link.model.d.ts +19 -0
- package/dist/models/management/create-friend-link.model.d.ts.map +1 -0
- package/dist/models/management/create-friend-link.model.js +14 -0
- package/dist/models/management/create-friend-link.model.js.map +1 -0
- package/dist/models/management/create-page.model.d.ts +21 -0
- package/dist/models/management/create-page.model.d.ts.map +1 -0
- package/dist/models/management/create-page.model.js +14 -0
- package/dist/models/management/create-page.model.js.map +1 -0
- package/dist/models/management/create-post.model.d.ts +28 -0
- package/dist/models/management/create-post.model.d.ts.map +1 -0
- package/dist/models/management/create-post.model.js +14 -0
- package/dist/models/management/create-post.model.js.map +1 -0
- package/dist/models/management/create-tag.model.d.ts +15 -0
- package/dist/models/management/create-tag.model.d.ts.map +1 -0
- package/dist/models/management/create-tag.model.js +14 -0
- package/dist/models/management/create-tag.model.js.map +1 -0
- package/dist/models/management/delete-category.model.d.ts +10 -0
- package/dist/models/management/delete-category.model.d.ts.map +1 -0
- package/dist/models/management/delete-category.model.js +13 -0
- package/dist/models/management/delete-category.model.js.map +1 -0
- package/dist/models/management/delete-comment.model.d.ts +10 -0
- package/dist/models/management/delete-comment.model.d.ts.map +1 -0
- package/dist/models/management/delete-comment.model.js +13 -0
- package/dist/models/management/delete-comment.model.js.map +1 -0
- package/dist/models/management/delete-friend-link.model.d.ts +10 -0
- package/dist/models/management/delete-friend-link.model.d.ts.map +1 -0
- package/dist/models/management/delete-friend-link.model.js +13 -0
- package/dist/models/management/delete-friend-link.model.js.map +1 -0
- package/dist/models/management/delete-page.model.d.ts +10 -0
- package/dist/models/management/delete-page.model.d.ts.map +1 -0
- package/dist/models/management/delete-page.model.js +13 -0
- package/dist/models/management/delete-page.model.js.map +1 -0
- package/dist/models/management/delete-post.model.d.ts +10 -0
- package/dist/models/management/delete-post.model.d.ts.map +1 -0
- package/dist/models/management/delete-post.model.js +13 -0
- package/dist/models/management/delete-post.model.js.map +1 -0
- package/dist/models/management/delete-tag.model.d.ts +10 -0
- package/dist/models/management/delete-tag.model.d.ts.map +1 -0
- package/dist/models/management/delete-tag.model.js +13 -0
- package/dist/models/management/delete-tag.model.js.map +1 -0
- package/dist/models/management/disable-friend-link.model.d.ts +19 -0
- package/dist/models/management/disable-friend-link.model.d.ts.map +1 -0
- package/dist/models/management/disable-friend-link.model.js +14 -0
- package/dist/models/management/disable-friend-link.model.js.map +1 -0
- package/dist/models/management/enable-friend-link.model.d.ts +19 -0
- package/dist/models/management/enable-friend-link.model.d.ts.map +1 -0
- package/dist/models/management/enable-friend-link.model.js +14 -0
- package/dist/models/management/enable-friend-link.model.js.map +1 -0
- package/dist/models/management/list-category.model.d.ts +18 -0
- package/dist/models/management/list-category.model.d.ts.map +1 -0
- package/dist/models/management/list-category.model.js +13 -0
- package/dist/models/management/list-category.model.js.map +1 -0
- package/dist/models/management/list-comment.model.d.ts +24 -0
- package/dist/models/management/list-comment.model.d.ts.map +1 -0
- package/dist/models/management/list-comment.model.js +13 -0
- package/dist/models/management/list-comment.model.js.map +1 -0
- package/dist/models/management/list-friend-link.model.d.ts +20 -0
- package/dist/models/management/list-friend-link.model.d.ts.map +1 -0
- package/dist/models/management/list-friend-link.model.js +16 -0
- package/dist/models/management/list-friend-link.model.js.map +1 -0
- package/dist/models/management/list-page.model.d.ts +22 -0
- package/dist/models/management/list-page.model.d.ts.map +1 -0
- package/dist/models/management/list-page.model.js +13 -0
- package/dist/models/management/list-page.model.js.map +1 -0
- package/dist/models/management/list-post-archive.model.d.ts +30 -0
- package/dist/models/management/list-post-archive.model.d.ts.map +1 -0
- package/dist/models/management/list-post-archive.model.js +18 -0
- package/dist/models/management/list-post-archive.model.js.map +1 -0
- package/dist/models/management/list-post.model.d.ts +29 -0
- package/dist/models/management/list-post.model.d.ts.map +1 -0
- package/dist/models/management/list-post.model.js +13 -0
- package/dist/models/management/list-post.model.js.map +1 -0
- package/dist/models/management/list-tag.model.d.ts +16 -0
- package/dist/models/management/list-tag.model.d.ts.map +1 -0
- package/dist/models/management/list-tag.model.js +13 -0
- package/dist/models/management/list-tag.model.js.map +1 -0
- package/dist/models/management/list-theme.model.d.ts +3 -0
- package/dist/models/management/list-theme.model.d.ts.map +1 -0
- package/dist/models/management/list-theme.model.js +12 -0
- package/dist/models/management/list-theme.model.js.map +1 -0
- package/dist/models/management/publish-page.model.d.ts +21 -0
- package/dist/models/management/publish-page.model.d.ts.map +1 -0
- package/dist/models/management/publish-page.model.js +14 -0
- package/dist/models/management/publish-page.model.js.map +1 -0
- package/dist/models/management/publish-post.model.d.ts +28 -0
- package/dist/models/management/publish-post.model.d.ts.map +1 -0
- package/dist/models/management/publish-post.model.js +14 -0
- package/dist/models/management/publish-post.model.js.map +1 -0
- package/dist/models/management/read-category.model.d.ts +17 -0
- package/dist/models/management/read-category.model.d.ts.map +1 -0
- package/dist/models/management/read-category.model.js +14 -0
- package/dist/models/management/read-category.model.js.map +1 -0
- package/dist/models/management/read-comment.model.d.ts +23 -0
- package/dist/models/management/read-comment.model.d.ts.map +1 -0
- package/dist/models/management/read-comment.model.js +14 -0
- package/dist/models/management/read-comment.model.js.map +1 -0
- package/dist/models/management/read-friend-link.model.d.ts +19 -0
- package/dist/models/management/read-friend-link.model.d.ts.map +1 -0
- package/dist/models/management/read-friend-link.model.js +14 -0
- package/dist/models/management/read-friend-link.model.js.map +1 -0
- package/dist/models/management/read-page.model.d.ts +21 -0
- package/dist/models/management/read-page.model.d.ts.map +1 -0
- package/dist/models/management/read-page.model.js +14 -0
- package/dist/models/management/read-page.model.js.map +1 -0
- package/dist/models/management/read-post.model.d.ts +28 -0
- package/dist/models/management/read-post.model.d.ts.map +1 -0
- package/dist/models/management/read-post.model.js +14 -0
- package/dist/models/management/read-post.model.js.map +1 -0
- package/dist/models/management/read-tag.model.d.ts +15 -0
- package/dist/models/management/read-tag.model.d.ts.map +1 -0
- package/dist/models/management/read-tag.model.js +14 -0
- package/dist/models/management/read-tag.model.js.map +1 -0
- package/dist/models/management/read-theme-selection.model.d.ts +8 -0
- package/dist/models/management/read-theme-selection.model.d.ts.map +1 -0
- package/dist/models/management/read-theme-selection.model.js +12 -0
- package/dist/models/management/read-theme-selection.model.js.map +1 -0
- package/dist/models/management/read-theme-status.model.d.ts +3 -0
- package/dist/models/management/read-theme-status.model.d.ts.map +1 -0
- package/dist/models/management/read-theme-status.model.js +12 -0
- package/dist/models/management/read-theme-status.model.js.map +1 -0
- package/dist/models/management/reject-comment.model.d.ts +23 -0
- package/dist/models/management/reject-comment.model.d.ts.map +1 -0
- package/dist/models/management/reject-comment.model.js +14 -0
- package/dist/models/management/reject-comment.model.js.map +1 -0
- package/dist/models/management/reply-comment.model.d.ts +23 -0
- package/dist/models/management/reply-comment.model.d.ts.map +1 -0
- package/dist/models/management/reply-comment.model.js +14 -0
- package/dist/models/management/reply-comment.model.js.map +1 -0
- package/dist/models/management/search-post.model.d.ts +27 -0
- package/dist/models/management/search-post.model.d.ts.map +1 -0
- package/dist/models/management/search-post.model.js +18 -0
- package/dist/models/management/search-post.model.js.map +1 -0
- package/dist/models/management/select-theme.model.d.ts +3 -0
- package/dist/models/management/select-theme.model.d.ts.map +1 -0
- package/dist/models/management/select-theme.model.js +11 -0
- package/dist/models/management/select-theme.model.js.map +1 -0
- package/dist/models/management/update-category.model.d.ts +17 -0
- package/dist/models/management/update-category.model.d.ts.map +1 -0
- package/dist/models/management/update-category.model.js +14 -0
- package/dist/models/management/update-category.model.js.map +1 -0
- package/dist/models/management/update-friend-link.model.d.ts +19 -0
- package/dist/models/management/update-friend-link.model.d.ts.map +1 -0
- package/dist/models/management/update-friend-link.model.js +14 -0
- package/dist/models/management/update-friend-link.model.js.map +1 -0
- package/dist/models/management/update-page.model.d.ts +21 -0
- package/dist/models/management/update-page.model.d.ts.map +1 -0
- package/dist/models/management/update-page.model.js +14 -0
- package/dist/models/management/update-page.model.js.map +1 -0
- package/dist/models/management/update-post.model.d.ts +28 -0
- package/dist/models/management/update-post.model.d.ts.map +1 -0
- package/dist/models/management/update-post.model.js +14 -0
- package/dist/models/management/update-post.model.js.map +1 -0
- package/dist/models/management/update-tag.model.d.ts +15 -0
- package/dist/models/management/update-tag.model.d.ts.map +1 -0
- package/dist/models/management/update-tag.model.js +14 -0
- package/dist/models/management/update-tag.model.js.map +1 -0
- package/dist/models/management-projection.d.ts +101 -0
- package/dist/models/management-projection.d.ts.map +1 -0
- package/dist/models/management-projection.js +79 -0
- package/dist/models/management-projection.js.map +1 -0
- package/dist/models/public/create-comment.model.d.ts +24 -0
- package/dist/models/public/create-comment.model.d.ts.map +1 -0
- package/dist/models/public/create-comment.model.js +12 -0
- package/dist/models/public/create-comment.model.js.map +1 -0
- package/dist/models/public/list-categories.model.d.ts +14 -0
- package/dist/models/public/list-categories.model.d.ts.map +1 -0
- package/dist/models/public/list-categories.model.js +11 -0
- package/dist/models/public/list-categories.model.js.map +1 -0
- package/dist/models/public/list-comments.model.d.ts +13 -0
- package/dist/models/public/list-comments.model.d.ts.map +1 -0
- package/dist/models/public/list-comments.model.js +16 -0
- package/dist/models/public/list-comments.model.js.map +1 -0
- package/dist/models/public/list-friend-links.model.d.ts +14 -0
- package/dist/models/public/list-friend-links.model.d.ts.map +1 -0
- package/dist/models/public/list-friend-links.model.js +11 -0
- package/dist/models/public/list-friend-links.model.js.map +1 -0
- package/dist/models/public/list-pages.model.d.ts +16 -0
- package/dist/models/public/list-pages.model.d.ts.map +1 -0
- package/dist/models/public/list-pages.model.js +11 -0
- package/dist/models/public/list-pages.model.js.map +1 -0
- package/dist/models/public/list-post-archive.model.d.ts +36 -0
- package/dist/models/public/list-post-archive.model.d.ts.map +1 -0
- package/dist/models/public/list-post-archive.model.js +11 -0
- package/dist/models/public/list-post-archive.model.js.map +1 -0
- package/dist/models/public/list-posts.model.d.ts +31 -0
- package/dist/models/public/list-posts.model.d.ts.map +1 -0
- package/dist/models/public/list-posts.model.js +17 -0
- package/dist/models/public/list-posts.model.js.map +1 -0
- package/dist/models/public/list-recent-comments.model.d.ts +10 -0
- package/dist/models/public/list-recent-comments.model.d.ts.map +1 -0
- package/dist/models/public/list-recent-comments.model.js +15 -0
- package/dist/models/public/list-recent-comments.model.js.map +1 -0
- package/dist/models/public/list-tags.model.d.ts +11 -0
- package/dist/models/public/list-tags.model.d.ts.map +1 -0
- package/dist/models/public/list-tags.model.js +11 -0
- package/dist/models/public/list-tags.model.js.map +1 -0
- package/dist/models/public/open-post.model.d.ts +38 -0
- package/dist/models/public/open-post.model.d.ts.map +1 -0
- package/dist/models/public/open-post.model.js +13 -0
- package/dist/models/public/open-post.model.js.map +1 -0
- package/dist/models/public/project-comments.model.d.ts +27 -0
- package/dist/models/public/project-comments.model.d.ts.map +1 -0
- package/dist/models/public/project-comments.model.js +12 -0
- package/dist/models/public/project-comments.model.js.map +1 -0
- package/dist/models/public/project-recent-comments.model.d.ts +31 -0
- package/dist/models/public/project-recent-comments.model.d.ts.map +1 -0
- package/dist/models/public/project-recent-comments.model.js +12 -0
- package/dist/models/public/project-recent-comments.model.js.map +1 -0
- package/dist/models/public/public-model-inputs.d.ts +99 -0
- package/dist/models/public/public-model-inputs.d.ts.map +1 -0
- package/dist/models/public/public-model-inputs.js +102 -0
- package/dist/models/public/public-model-inputs.js.map +1 -0
- package/dist/models/public/read-page.model.d.ts +22 -0
- package/dist/models/public/read-page.model.d.ts.map +1 -0
- package/dist/models/public/read-page.model.js +12 -0
- package/dist/models/public/read-page.model.js.map +1 -0
- package/dist/models/public/read-post-connections.model.d.ts +76 -0
- package/dist/models/public/read-post-connections.model.d.ts.map +1 -0
- package/dist/models/public/read-post-connections.model.js +12 -0
- package/dist/models/public/read-post-connections.model.js.map +1 -0
- package/dist/models/public/read-post.model.d.ts +33 -0
- package/dist/models/public/read-post.model.d.ts.map +1 -0
- package/dist/models/public/read-post.model.js +12 -0
- package/dist/models/public/read-post.model.js.map +1 -0
- package/dist/models/public/search-posts.model.d.ts +29 -0
- package/dist/models/public/search-posts.model.d.ts.map +1 -0
- package/dist/models/public/search-posts.model.js +11 -0
- package/dist/models/public/search-posts.model.js.map +1 -0
- package/dist/models/public/set-post-liked.model.d.ts +10 -0
- package/dist/models/public/set-post-liked.model.d.ts.map +1 -0
- package/dist/models/public/set-post-liked.model.js +12 -0
- package/dist/models/public/set-post-liked.model.js.map +1 -0
- package/dist/models/read-event-catalog.model.d.ts +3 -0
- package/dist/models/read-event-catalog.model.d.ts.map +1 -0
- package/dist/models/read-event-catalog.model.js +9 -0
- package/dist/models/read-event-catalog.model.js.map +1 -0
- package/dist/models/read-theme-authoring-contract.model.d.ts +33 -0
- package/dist/models/read-theme-authoring-contract.model.d.ts.map +1 -0
- package/dist/models/read-theme-authoring-contract.model.js +9 -0
- package/dist/models/read-theme-authoring-contract.model.js.map +1 -0
- package/dist/persistence/category-store.d.ts.map +1 -1
- package/dist/persistence/category-store.js +28 -11
- package/dist/persistence/category-store.js.map +1 -1
- package/dist/persistence/comment-store.d.ts.map +1 -1
- package/dist/persistence/comment-store.js +61 -20
- package/dist/persistence/comment-store.js.map +1 -1
- package/dist/persistence/entities.d.ts.map +1 -1
- package/dist/persistence/entities.js +15 -3
- package/dist/persistence/entities.js.map +1 -1
- package/dist/persistence/friend-link-store.d.ts.map +1 -1
- package/dist/persistence/friend-link-store.js +24 -7
- package/dist/persistence/friend-link-store.js.map +1 -1
- package/dist/persistence/page-store.d.ts +12 -0
- package/dist/persistence/page-store.d.ts.map +1 -1
- package/dist/persistence/page-store.js +33 -0
- package/dist/persistence/page-store.js.map +1 -1
- package/dist/persistence/post-store.d.ts +14 -12
- package/dist/persistence/post-store.d.ts.map +1 -1
- package/dist/persistence/post-store.js +240 -62
- package/dist/persistence/post-store.js.map +1 -1
- package/dist/persistence/tag-store.d.ts.map +1 -1
- package/dist/persistence/tag-store.js +23 -8
- package/dist/persistence/tag-store.js.map +1 -1
- package/dist/services/application.service.d.ts +6 -2
- package/dist/services/application.service.d.ts.map +1 -1
- package/dist/services/application.service.js +13 -5
- package/dist/services/application.service.js.map +1 -1
- package/dist/services/blog-runtime.service.d.ts +4 -4
- package/dist/services/blog-runtime.service.d.ts.map +1 -1
- package/dist/services/blog-runtime.service.js +11 -15
- package/dist/services/blog-runtime.service.js.map +1 -1
- package/dist/services/blog.boot.d.ts +1 -1
- package/dist/services/blog.boot.js +7 -4
- package/dist/services/blog.boot.js.map +1 -1
- package/dist/services/config.service.js +1 -1
- package/dist/services/config.service.js.map +1 -1
- package/dist/services/database.service.js +18 -3
- package/dist/services/database.service.js.map +1 -1
- package/dist/services/mcp-provider.service.js +3 -6
- package/dist/services/mcp-provider.service.js.map +1 -1
- package/dist/services/sitemap-provider.service.d.ts +4 -0
- package/dist/services/sitemap-provider.service.d.ts.map +1 -0
- package/dist/services/sitemap-provider.service.js +26 -0
- package/dist/services/sitemap-provider.service.js.map +1 -0
- package/dist/services/theme-control.service.js +24 -9
- package/dist/services/theme-control.service.js.map +1 -1
- package/dist/sitemap/blog-sitemap-provider.d.ts +34 -0
- package/dist/sitemap/blog-sitemap-provider.d.ts.map +1 -0
- package/dist/sitemap/blog-sitemap-provider.js +116 -0
- package/dist/sitemap/blog-sitemap-provider.js.map +1 -0
- package/dist/themes/theme-catalog.d.ts.map +1 -1
- package/dist/themes/theme-catalog.js +43 -26
- package/dist/themes/theme-catalog.js.map +1 -1
- package/dist/themes/theme-control.d.ts.map +1 -1
- package/dist/themes/theme-control.js +17 -7
- package/dist/themes/theme-control.js.map +1 -1
- package/dist/themes/theme-discovery-runtime.d.ts.map +1 -1
- package/dist/themes/theme-discovery-runtime.js +17 -7
- package/dist/themes/theme-discovery-runtime.js.map +1 -1
- package/dist/themes/theme-generation-store.d.ts.map +1 -1
- package/dist/themes/theme-generation-store.js +10 -5
- package/dist/themes/theme-generation-store.js.map +1 -1
- package/dist/themes/theme-selection-publisher.d.ts.map +1 -1
- package/dist/themes/theme-selection-publisher.js +11 -5
- package/dist/themes/theme-selection-publisher.js.map +1 -1
- package/package.json +24 -20
- package/dist/blog/micro-user-directory.d.ts +0 -11
- package/dist/blog/micro-user-directory.d.ts.map +0 -1
- package/dist/blog/micro-user-directory.js +0 -18
- package/dist/blog/micro-user-directory.js.map +0 -1
- package/dist/blog/public-blog-micro.d.ts +0 -291
- package/dist/blog/public-blog-micro.d.ts.map +0 -1
- package/dist/blog/public-blog-micro.js +0 -71
- package/dist/blog/public-blog-micro.js.map +0 -1
- package/dist/browser-api/dispatch-stream.d.ts +0 -5
- package/dist/browser-api/dispatch-stream.d.ts.map +0 -1
- package/dist/browser-api/dispatch-stream.js +0 -4
- package/dist/browser-api/dispatch-stream.js.map +0 -1
- package/dist/browser-api/dispatcher.d.ts +0 -15
- package/dist/browser-api/dispatcher.d.ts.map +0 -1
- package/dist/browser-api/dispatcher.js +0 -145
- package/dist/browser-api/dispatcher.js.map +0 -1
- package/dist/browser-api/provider-publisher.d.ts +0 -24
- package/dist/browser-api/provider-publisher.d.ts.map +0 -1
- package/dist/browser-api/provider-publisher.js +0 -107
- package/dist/browser-api/provider-publisher.js.map +0 -1
- package/dist/messages/browser/dispatch.msg.d.ts.map +0 -1
- package/dist/messages/browser/dispatch.msg.js +0 -9
- package/dist/messages/browser/dispatch.msg.js.map +0 -1
- package/dist/services/browser-api-provider.service.d.ts +0 -4
- package/dist/services/browser-api-provider.service.d.ts.map +0 -1
- package/dist/services/browser-api-provider.service.js +0 -25
- package/dist/services/browser-api-provider.service.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { And, Equal, ILike, In, LessThan, MoreThan, MoreThanOrEqual } from 'typeorm';
|
|
2
|
-
import { BlogConflictError, BlogCursorError, BlogNotFoundError, PostContentBlockedError } from '../blog/errors.js';
|
|
1
|
+
import { And, Equal, ILike, In, LessThan, MoreThan, MoreThanOrEqual, } from 'typeorm';
|
|
2
|
+
import { BlogConflictError, BlogCursorError, BlogNotFoundError, PostContentBlockedError, } from '../blog/errors.js';
|
|
3
3
|
import { auditPostContent } from '../blog/post-content-audit.js';
|
|
4
4
|
import { buildBlogPostArchivedEvent, buildBlogPostPublicationUpdatedEvent, buildBlogPostPublishedEvent, } from '../events/blog-domain-events.js';
|
|
5
5
|
import { BlogCategoryEntity, BlogPostEntity, BlogPostTagEntity, BlogTagEntity, } from './entities.js';
|
|
@@ -15,7 +15,8 @@ export class PostStore {
|
|
|
15
15
|
}
|
|
16
16
|
async countPublishedByCategory(signal) {
|
|
17
17
|
signal?.throwIfAborted();
|
|
18
|
-
const rows = await this.dataSource
|
|
18
|
+
const rows = await this.dataSource
|
|
19
|
+
.getRepository(BlogPostEntity)
|
|
19
20
|
.createQueryBuilder('post')
|
|
20
21
|
.select('post.categoryId', 'categoryId')
|
|
21
22
|
.addSelect('COUNT(post.id)', 'postCount')
|
|
@@ -23,44 +24,75 @@ export class PostStore {
|
|
|
23
24
|
.groupBy('post.categoryId')
|
|
24
25
|
.getRawMany();
|
|
25
26
|
signal?.throwIfAborted();
|
|
26
|
-
return new Map(rows.map(({ categoryId, postCount }) => [
|
|
27
|
+
return new Map(rows.map(({ categoryId, postCount }) => [
|
|
28
|
+
categoryId,
|
|
29
|
+
parsePostCount(postCount),
|
|
30
|
+
]));
|
|
27
31
|
}
|
|
28
32
|
async list(input, signal) {
|
|
29
33
|
signal?.throwIfAborted();
|
|
30
|
-
const base = {
|
|
31
|
-
|
|
34
|
+
const base = {
|
|
35
|
+
...(input.status ? { status: input.status } : {}),
|
|
36
|
+
...(input.categoryId ? { categoryId: input.categoryId } : {}),
|
|
37
|
+
};
|
|
38
|
+
const cursor = input.cursor
|
|
39
|
+
? await this.dataSource
|
|
40
|
+
.getRepository(BlogPostEntity)
|
|
41
|
+
.findOne({ where: { id: input.cursor, ...base } })
|
|
42
|
+
: undefined;
|
|
32
43
|
signal?.throwIfAborted();
|
|
33
44
|
if (input.cursor && !cursor)
|
|
34
45
|
throw new BlogCursorError('Post cursor not found in current filter');
|
|
35
46
|
const where = cursor
|
|
36
|
-
? [
|
|
47
|
+
? [
|
|
48
|
+
{ ...base, createdAt: LessThan(cursor.createdAt) },
|
|
49
|
+
{
|
|
50
|
+
...base,
|
|
51
|
+
createdAt: Equal(cursor.createdAt),
|
|
52
|
+
id: LessThan(cursor.id),
|
|
53
|
+
},
|
|
54
|
+
]
|
|
37
55
|
: base;
|
|
38
|
-
const posts = await this.dataSource
|
|
56
|
+
const posts = await this.dataSource
|
|
57
|
+
.getRepository(BlogPostEntity)
|
|
58
|
+
.find({
|
|
59
|
+
where,
|
|
60
|
+
order: { createdAt: 'DESC', id: 'DESC' },
|
|
61
|
+
take: input.limit + 1,
|
|
62
|
+
});
|
|
39
63
|
signal?.throwIfAborted();
|
|
40
64
|
const hasMore = posts.length > input.limit;
|
|
41
65
|
const bounded = hasMore ? posts.slice(0, input.limit) : posts;
|
|
42
|
-
return {
|
|
66
|
+
return {
|
|
67
|
+
items: await this.withTags(bounded, this.dataSource.manager, signal),
|
|
68
|
+
nextCursor: hasMore ? (bounded.at(-1)?.id ?? null) : null,
|
|
69
|
+
};
|
|
43
70
|
}
|
|
44
71
|
async listPublished(options, signal) {
|
|
45
72
|
signal?.throwIfAborted();
|
|
46
73
|
let categoryId;
|
|
47
74
|
let tagId;
|
|
48
75
|
if (options.categorySlug) {
|
|
49
|
-
const category = await this.dataSource
|
|
76
|
+
const category = await this.dataSource
|
|
77
|
+
.getRepository(BlogCategoryEntity)
|
|
78
|
+
.findOneBy({ slug: options.categorySlug });
|
|
50
79
|
signal?.throwIfAborted();
|
|
51
80
|
if (!category)
|
|
52
81
|
return { items: [], nextCursor: null, total: 0 };
|
|
53
82
|
categoryId = category.id;
|
|
54
83
|
}
|
|
55
84
|
if (options.tagSlug) {
|
|
56
|
-
const tag = await this.dataSource
|
|
85
|
+
const tag = await this.dataSource
|
|
86
|
+
.getRepository(BlogTagEntity)
|
|
87
|
+
.findOneBy({ slug: options.tagSlug });
|
|
57
88
|
signal?.throwIfAborted();
|
|
58
89
|
if (!tag)
|
|
59
90
|
return { items: [], nextCursor: null, total: 0 };
|
|
60
91
|
tagId = tag.id;
|
|
61
92
|
}
|
|
62
93
|
const base = {
|
|
63
|
-
status: 'published',
|
|
94
|
+
status: 'published',
|
|
95
|
+
...(categoryId ? { categoryId } : {}),
|
|
64
96
|
...(tagId ? { postTags: { tagId } } : {}),
|
|
65
97
|
};
|
|
66
98
|
const repository = this.dataSource.getRepository(BlogPostEntity);
|
|
@@ -76,7 +108,9 @@ export class PostStore {
|
|
|
76
108
|
signal?.throwIfAborted();
|
|
77
109
|
return {
|
|
78
110
|
items: await this.withTags(posts, this.dataSource.manager, signal),
|
|
79
|
-
nextCursor: options.page * options.limit < total
|
|
111
|
+
nextCursor: options.page * options.limit < total
|
|
112
|
+
? (posts.at(-1)?.id ?? null)
|
|
113
|
+
: null,
|
|
80
114
|
total,
|
|
81
115
|
};
|
|
82
116
|
}
|
|
@@ -91,16 +125,69 @@ export class PostStore {
|
|
|
91
125
|
const where = cursor?.publishedAt
|
|
92
126
|
? [
|
|
93
127
|
{ ...base, publishedAt: LessThan(cursor.publishedAt) },
|
|
94
|
-
{
|
|
128
|
+
{
|
|
129
|
+
...base,
|
|
130
|
+
publishedAt: Equal(cursor.publishedAt),
|
|
131
|
+
id: LessThan(cursor.id),
|
|
132
|
+
},
|
|
95
133
|
]
|
|
96
134
|
: base;
|
|
97
135
|
const posts = await repository.find({
|
|
98
|
-
where,
|
|
136
|
+
where,
|
|
137
|
+
order: { publishedAt: 'DESC', id: 'DESC' },
|
|
138
|
+
take: options.limit + 1,
|
|
99
139
|
});
|
|
100
140
|
signal?.throwIfAborted();
|
|
101
141
|
const hasMore = posts.length > options.limit;
|
|
102
142
|
const bounded = hasMore ? posts.slice(0, options.limit) : posts;
|
|
103
|
-
return {
|
|
143
|
+
return {
|
|
144
|
+
items: await this.withTags(bounded, this.dataSource.manager, signal),
|
|
145
|
+
nextCursor: hasMore ? (bounded.at(-1)?.id ?? null) : null,
|
|
146
|
+
total,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
async listPublishedReferences(input, signal) {
|
|
150
|
+
signal?.throwIfAborted();
|
|
151
|
+
const repository = this.dataSource.getRepository(BlogPostEntity);
|
|
152
|
+
const cursor = input.cursor
|
|
153
|
+
? await repository.findOne({
|
|
154
|
+
select: { id: true, publishedAt: true },
|
|
155
|
+
where: { id: input.cursor, status: 'published' },
|
|
156
|
+
})
|
|
157
|
+
: undefined;
|
|
158
|
+
signal?.throwIfAborted();
|
|
159
|
+
if (input.cursor && !cursor)
|
|
160
|
+
throw new BlogCursorError('Post cursor not found in current filter');
|
|
161
|
+
if (cursor && !cursor.publishedAt)
|
|
162
|
+
throw new Error('Published post cursor is incomplete');
|
|
163
|
+
const base = { status: 'published' };
|
|
164
|
+
const where = cursor
|
|
165
|
+
? [
|
|
166
|
+
{ ...base, publishedAt: LessThan(cursor.publishedAt) },
|
|
167
|
+
{
|
|
168
|
+
...base,
|
|
169
|
+
publishedAt: Equal(cursor.publishedAt),
|
|
170
|
+
id: LessThan(cursor.id),
|
|
171
|
+
},
|
|
172
|
+
]
|
|
173
|
+
: base;
|
|
174
|
+
const rows = await repository.find({
|
|
175
|
+
select: { id: true, slug: true, updatedAt: true, publishedAt: true },
|
|
176
|
+
where,
|
|
177
|
+
order: { publishedAt: 'DESC', id: 'DESC' },
|
|
178
|
+
take: input.limit + 1,
|
|
179
|
+
});
|
|
180
|
+
signal?.throwIfAborted();
|
|
181
|
+
const hasMore = rows.length > input.limit;
|
|
182
|
+
const bounded = hasMore ? rows.slice(0, input.limit) : rows;
|
|
183
|
+
return {
|
|
184
|
+
items: bounded.map(({ id, slug, updatedAt }) => ({
|
|
185
|
+
id,
|
|
186
|
+
slug,
|
|
187
|
+
updatedAt,
|
|
188
|
+
})),
|
|
189
|
+
nextCursor: hasMore ? (bounded.at(-1)?.id ?? null) : null,
|
|
190
|
+
};
|
|
104
191
|
}
|
|
105
192
|
async listPublishedArchive(options, signal) {
|
|
106
193
|
signal?.throwIfAborted();
|
|
@@ -136,7 +223,9 @@ export class PostStore {
|
|
|
136
223
|
return {
|
|
137
224
|
items: await this.withTags(posts, this.dataSource.manager, signal),
|
|
138
225
|
months,
|
|
139
|
-
nextCursor: options.page * options.limit < total
|
|
226
|
+
nextCursor: options.page * options.limit < total
|
|
227
|
+
? (posts.at(-1)?.id ?? null)
|
|
228
|
+
: null,
|
|
140
229
|
total,
|
|
141
230
|
};
|
|
142
231
|
}
|
|
@@ -156,11 +245,17 @@ export class PostStore {
|
|
|
156
245
|
? And(publishedAt, LessThan(cursor.publishedAt))
|
|
157
246
|
: LessThan(cursor.publishedAt),
|
|
158
247
|
},
|
|
159
|
-
{
|
|
248
|
+
{
|
|
249
|
+
...base,
|
|
250
|
+
publishedAt: Equal(cursor.publishedAt),
|
|
251
|
+
id: LessThan(cursor.id),
|
|
252
|
+
},
|
|
160
253
|
]
|
|
161
254
|
: base;
|
|
162
255
|
const posts = await repository.find({
|
|
163
|
-
where,
|
|
256
|
+
where,
|
|
257
|
+
order: { publishedAt: 'DESC', id: 'DESC' },
|
|
258
|
+
take: options.limit + 1,
|
|
164
259
|
});
|
|
165
260
|
signal?.throwIfAborted();
|
|
166
261
|
const hasMore = posts.length > options.limit;
|
|
@@ -168,7 +263,7 @@ export class PostStore {
|
|
|
168
263
|
return {
|
|
169
264
|
items: await this.withTags(bounded, this.dataSource.manager, signal),
|
|
170
265
|
months,
|
|
171
|
-
nextCursor: hasMore ? bounded.at(-1)?.id ?? null : null,
|
|
266
|
+
nextCursor: hasMore ? (bounded.at(-1)?.id ?? null) : null,
|
|
172
267
|
total,
|
|
173
268
|
};
|
|
174
269
|
}
|
|
@@ -190,7 +285,9 @@ export class PostStore {
|
|
|
190
285
|
}
|
|
191
286
|
async read(id, signal) {
|
|
192
287
|
signal?.throwIfAborted();
|
|
193
|
-
const post = await this.dataSource
|
|
288
|
+
const post = await this.dataSource
|
|
289
|
+
.getRepository(BlogPostEntity)
|
|
290
|
+
.findOneBy({ id });
|
|
194
291
|
signal?.throwIfAborted();
|
|
195
292
|
if (!post)
|
|
196
293
|
throw new BlogNotFoundError('Post not found');
|
|
@@ -198,9 +295,13 @@ export class PostStore {
|
|
|
198
295
|
}
|
|
199
296
|
async readPublishedBySlug(slug, signal) {
|
|
200
297
|
signal?.throwIfAborted();
|
|
201
|
-
const post = await this.dataSource
|
|
298
|
+
const post = await this.dataSource
|
|
299
|
+
.getRepository(BlogPostEntity)
|
|
300
|
+
.findOneBy({ slug, status: 'published' });
|
|
202
301
|
signal?.throwIfAborted();
|
|
203
|
-
return post
|
|
302
|
+
return post
|
|
303
|
+
? (await this.withTags([post], this.dataSource.manager, signal))[0]
|
|
304
|
+
: undefined;
|
|
204
305
|
}
|
|
205
306
|
async readPublishedByIds(ids, signal) {
|
|
206
307
|
signal?.throwIfAborted();
|
|
@@ -222,7 +323,11 @@ export class PostStore {
|
|
|
222
323
|
const previous = await repository.find({
|
|
223
324
|
where: [
|
|
224
325
|
{ status: 'published', publishedAt: LessThan(current.publishedAt) },
|
|
225
|
-
{
|
|
326
|
+
{
|
|
327
|
+
status: 'published',
|
|
328
|
+
publishedAt: Equal(current.publishedAt),
|
|
329
|
+
id: LessThan(current.id),
|
|
330
|
+
},
|
|
226
331
|
],
|
|
227
332
|
order: { publishedAt: 'DESC', id: 'DESC' },
|
|
228
333
|
take: 1,
|
|
@@ -231,7 +336,11 @@ export class PostStore {
|
|
|
231
336
|
const next = await repository.find({
|
|
232
337
|
where: [
|
|
233
338
|
{ status: 'published', publishedAt: MoreThan(current.publishedAt) },
|
|
234
|
-
{
|
|
339
|
+
{
|
|
340
|
+
status: 'published',
|
|
341
|
+
publishedAt: Equal(current.publishedAt),
|
|
342
|
+
id: MoreThan(current.id),
|
|
343
|
+
},
|
|
235
344
|
],
|
|
236
345
|
order: { publishedAt: 'ASC', id: 'ASC' },
|
|
237
346
|
take: 1,
|
|
@@ -241,14 +350,13 @@ export class PostStore {
|
|
|
241
350
|
? await this.listRelated(current.id, relatedLimit, signal)
|
|
242
351
|
: [];
|
|
243
352
|
signal?.throwIfAborted();
|
|
244
|
-
const adjacentPosts = await this.withTags([
|
|
245
|
-
...(previous[0] ? [previous[0]] : []),
|
|
246
|
-
...(next[0] ? [next[0]] : []),
|
|
247
|
-
], this.dataSource.manager, signal);
|
|
353
|
+
const adjacentPosts = await this.withTags([...(previous[0] ? [previous[0]] : []), ...(next[0] ? [next[0]] : [])], this.dataSource.manager, signal);
|
|
248
354
|
const adjacentById = new Map(adjacentPosts.map((post) => [post.id, post]));
|
|
249
355
|
return {
|
|
250
|
-
previousPost: previous[0]
|
|
251
|
-
|
|
356
|
+
previousPost: previous[0]
|
|
357
|
+
? (adjacentById.get(previous[0].id) ?? null)
|
|
358
|
+
: null,
|
|
359
|
+
nextPost: next[0] ? (adjacentById.get(next[0].id) ?? null) : null,
|
|
252
360
|
relatedPosts: related,
|
|
253
361
|
};
|
|
254
362
|
}
|
|
@@ -259,7 +367,10 @@ export class PostStore {
|
|
|
259
367
|
signal?.throwIfAborted();
|
|
260
368
|
const repository = manager.getRepository(BlogPostEntity);
|
|
261
369
|
const post = await repository.save(repository.create({
|
|
262
|
-
...withoutTagIds(input),
|
|
370
|
+
...withoutTagIds(input),
|
|
371
|
+
status: 'draft',
|
|
372
|
+
publishedAt: null,
|
|
373
|
+
viewCount: 0,
|
|
263
374
|
}));
|
|
264
375
|
signal?.throwIfAborted();
|
|
265
376
|
await this.replaceTags(manager, post.id, input.tagIds, signal);
|
|
@@ -271,7 +382,8 @@ export class PostStore {
|
|
|
271
382
|
signal?.throwIfAborted();
|
|
272
383
|
const result = await this.dataSource.transaction(async (manager) => {
|
|
273
384
|
const current = await manager.getRepository(BlogPostEntity).findOne({
|
|
274
|
-
where: { id },
|
|
385
|
+
where: { id },
|
|
386
|
+
lock: { mode: 'pessimistic_write' },
|
|
275
387
|
});
|
|
276
388
|
signal?.throwIfAborted();
|
|
277
389
|
if (!current)
|
|
@@ -285,11 +397,15 @@ export class PostStore {
|
|
|
285
397
|
if (!changedFields.length)
|
|
286
398
|
return { value: currentView };
|
|
287
399
|
const occurredAt = this.clock();
|
|
288
|
-
await manager
|
|
400
|
+
await manager
|
|
401
|
+
.getRepository(BlogPostEntity)
|
|
402
|
+
.update({ id }, { ...withoutTagIds(input), updatedAt: occurredAt });
|
|
289
403
|
signal?.throwIfAborted();
|
|
290
404
|
await this.replaceTags(manager, id, input.tagIds, signal);
|
|
291
405
|
signal?.throwIfAborted();
|
|
292
|
-
const post = await manager
|
|
406
|
+
const post = await manager
|
|
407
|
+
.getRepository(BlogPostEntity)
|
|
408
|
+
.findOneByOrFail({ id });
|
|
293
409
|
signal?.throwIfAborted();
|
|
294
410
|
const updated = (await this.withTags([post], manager, signal))[0];
|
|
295
411
|
const event = current.status === 'published'
|
|
@@ -305,22 +421,34 @@ export class PostStore {
|
|
|
305
421
|
signal?.throwIfAborted();
|
|
306
422
|
const result = await this.dataSource.transaction(async (manager) => {
|
|
307
423
|
const repository = manager.getRepository(BlogPostEntity);
|
|
308
|
-
const post = await repository.findOne({
|
|
424
|
+
const post = await repository.findOne({
|
|
425
|
+
where: { id },
|
|
426
|
+
lock: { mode: 'pessimistic_write' },
|
|
427
|
+
});
|
|
309
428
|
signal?.throwIfAborted();
|
|
310
429
|
if (!post)
|
|
311
430
|
throw new BlogNotFoundError('Post not found');
|
|
312
431
|
assertPublishableContent(post);
|
|
313
432
|
if (post.status !== 'published') {
|
|
314
433
|
const occurredAt = this.clock();
|
|
315
|
-
await repository.update({ id }, {
|
|
434
|
+
await repository.update({ id }, {
|
|
435
|
+
status: 'published',
|
|
436
|
+
publishedAt: occurredAt,
|
|
437
|
+
updatedAt: occurredAt,
|
|
438
|
+
});
|
|
316
439
|
signal?.throwIfAborted();
|
|
317
440
|
const updated = await repository.findOneByOrFail({ id });
|
|
318
441
|
const view = (await this.withTags([updated], manager, signal))[0];
|
|
319
|
-
return {
|
|
442
|
+
return {
|
|
443
|
+
value: view,
|
|
444
|
+
event: await buildBlogPostPublishedEvent(manager, view, occurredAt),
|
|
445
|
+
};
|
|
320
446
|
}
|
|
321
447
|
const updated = await repository.findOneByOrFail({ id });
|
|
322
448
|
signal?.throwIfAborted();
|
|
323
|
-
return {
|
|
449
|
+
return {
|
|
450
|
+
value: (await this.withTags([updated], manager, signal))[0],
|
|
451
|
+
};
|
|
324
452
|
});
|
|
325
453
|
if (result.event)
|
|
326
454
|
await this.events.publish(result.event);
|
|
@@ -330,7 +458,10 @@ export class PostStore {
|
|
|
330
458
|
signal?.throwIfAborted();
|
|
331
459
|
const result = await this.dataSource.transaction(async (manager) => {
|
|
332
460
|
const repository = manager.getRepository(BlogPostEntity);
|
|
333
|
-
const post = await repository.findOne({
|
|
461
|
+
const post = await repository.findOne({
|
|
462
|
+
where: { id },
|
|
463
|
+
lock: { mode: 'pessimistic_write' },
|
|
464
|
+
});
|
|
334
465
|
signal?.throwIfAborted();
|
|
335
466
|
if (!post)
|
|
336
467
|
throw new BlogNotFoundError('Post not found');
|
|
@@ -340,12 +471,16 @@ export class PostStore {
|
|
|
340
471
|
signal?.throwIfAborted();
|
|
341
472
|
const updated = await repository.findOneByOrFail({ id });
|
|
342
473
|
const view = (await this.withTags([updated], manager, signal))[0];
|
|
343
|
-
const event = post.status === 'published'
|
|
474
|
+
const event = post.status === 'published'
|
|
475
|
+
? await buildBlogPostArchivedEvent(manager, view, occurredAt)
|
|
476
|
+
: undefined;
|
|
344
477
|
return { value: view, event };
|
|
345
478
|
}
|
|
346
479
|
const updated = await repository.findOneByOrFail({ id });
|
|
347
480
|
signal?.throwIfAborted();
|
|
348
|
-
return {
|
|
481
|
+
return {
|
|
482
|
+
value: (await this.withTags([updated], manager, signal))[0],
|
|
483
|
+
};
|
|
349
484
|
});
|
|
350
485
|
if (result.event)
|
|
351
486
|
await this.events.publish(result.event);
|
|
@@ -355,7 +490,10 @@ export class PostStore {
|
|
|
355
490
|
signal?.throwIfAborted();
|
|
356
491
|
return this.dataSource.transaction(async (manager) => {
|
|
357
492
|
const repository = manager.getRepository(BlogPostEntity);
|
|
358
|
-
const post = await repository.findOne({
|
|
493
|
+
const post = await repository.findOne({
|
|
494
|
+
where: { id },
|
|
495
|
+
lock: { mode: 'pessimistic_write' },
|
|
496
|
+
});
|
|
359
497
|
signal?.throwIfAborted();
|
|
360
498
|
if (!post)
|
|
361
499
|
throw new BlogNotFoundError('Post not found');
|
|
@@ -367,7 +505,9 @@ export class PostStore {
|
|
|
367
505
|
}
|
|
368
506
|
async assertReferences(manager, input, signal) {
|
|
369
507
|
signal?.throwIfAborted();
|
|
370
|
-
const category = await manager
|
|
508
|
+
const category = await manager
|
|
509
|
+
.getRepository(BlogCategoryEntity)
|
|
510
|
+
.findOneBy({ id: input.categoryId });
|
|
371
511
|
signal?.throwIfAborted();
|
|
372
512
|
if (!category)
|
|
373
513
|
throw new BlogNotFoundError('Category not found');
|
|
@@ -377,7 +517,9 @@ export class PostStore {
|
|
|
377
517
|
throw new BlogConflictError('Post cannot contain more than 20 tags');
|
|
378
518
|
if (!input.tagIds.length)
|
|
379
519
|
return;
|
|
380
|
-
const tags = await manager
|
|
520
|
+
const tags = await manager
|
|
521
|
+
.getRepository(BlogTagEntity)
|
|
522
|
+
.countBy({ id: In([...input.tagIds]) });
|
|
381
523
|
signal?.throwIfAborted();
|
|
382
524
|
if (tags !== input.tagIds.length)
|
|
383
525
|
throw new BlogNotFoundError('Tag not found');
|
|
@@ -387,7 +529,9 @@ export class PostStore {
|
|
|
387
529
|
await manager.getRepository(BlogPostTagEntity).delete({ postId });
|
|
388
530
|
signal?.throwIfAborted();
|
|
389
531
|
if (tagIds.length) {
|
|
390
|
-
await manager
|
|
532
|
+
await manager
|
|
533
|
+
.getRepository(BlogPostTagEntity)
|
|
534
|
+
.insert(tagIds.map((tagId) => ({ postId, tagId })));
|
|
391
535
|
signal?.throwIfAborted();
|
|
392
536
|
}
|
|
393
537
|
}
|
|
@@ -396,10 +540,14 @@ export class PostStore {
|
|
|
396
540
|
if (!posts.length)
|
|
397
541
|
return [];
|
|
398
542
|
const postIds = posts.map(({ id }) => id);
|
|
399
|
-
const links = await manager
|
|
543
|
+
const links = await manager
|
|
544
|
+
.getRepository(BlogPostTagEntity)
|
|
545
|
+
.findBy({ postId: In(postIds) });
|
|
400
546
|
signal?.throwIfAborted();
|
|
401
547
|
const tagIds = [...new Set(links.map(({ tagId }) => tagId))];
|
|
402
|
-
const tags = tagIds.length
|
|
548
|
+
const tags = tagIds.length
|
|
549
|
+
? await manager.getRepository(BlogTagEntity).findBy({ id: In(tagIds) })
|
|
550
|
+
: [];
|
|
403
551
|
signal?.throwIfAborted();
|
|
404
552
|
const tagById = new Map(tags.map((tag) => [tag.id, tag]));
|
|
405
553
|
const tagsByPost = new Map();
|
|
@@ -411,15 +559,21 @@ export class PostStore {
|
|
|
411
559
|
current.push(tag);
|
|
412
560
|
tagsByPost.set(link.postId, current);
|
|
413
561
|
}
|
|
414
|
-
return posts.map((post) => ({
|
|
562
|
+
return posts.map((post) => ({
|
|
563
|
+
...post,
|
|
564
|
+
tags: tagsByPost.get(post.id) ?? [],
|
|
565
|
+
}));
|
|
415
566
|
}
|
|
416
567
|
async listRelated(postId, limit, signal) {
|
|
417
|
-
const currentLinks = await this.dataSource
|
|
568
|
+
const currentLinks = await this.dataSource
|
|
569
|
+
.getRepository(BlogPostTagEntity)
|
|
570
|
+
.findBy({ postId });
|
|
418
571
|
signal?.throwIfAborted();
|
|
419
572
|
if (!currentLinks.length)
|
|
420
573
|
return [];
|
|
421
574
|
const tagIds = currentLinks.map(({ tagId }) => tagId);
|
|
422
|
-
const ranked = await this.dataSource
|
|
575
|
+
const ranked = await this.dataSource
|
|
576
|
+
.getRepository(BlogPostTagEntity)
|
|
423
577
|
.createQueryBuilder('postTag')
|
|
424
578
|
.select('postTag.postId', 'postId')
|
|
425
579
|
.addSelect('COUNT(postTag.tagId)', 'sharedTagCount')
|
|
@@ -439,10 +593,12 @@ export class PostStore {
|
|
|
439
593
|
const ids = ranked.map(({ postId: id }) => id);
|
|
440
594
|
if (!ids.length)
|
|
441
595
|
return [];
|
|
442
|
-
const posts = await this.dataSource
|
|
596
|
+
const posts = await this.dataSource
|
|
597
|
+
.getRepository(BlogPostEntity)
|
|
598
|
+
.findBy({ id: In(ids) });
|
|
443
599
|
signal?.throwIfAborted();
|
|
444
600
|
const byId = new Map(posts.map((post) => [post.id, post]));
|
|
445
|
-
return this.withTags(ids.flatMap((id) => byId.get(id) ? [byId.get(id)] : []), this.dataSource.manager, signal);
|
|
601
|
+
return this.withTags(ids.flatMap((id) => (byId.get(id) ? [byId.get(id)] : [])), this.dataSource.manager, signal);
|
|
446
602
|
}
|
|
447
603
|
}
|
|
448
604
|
function parsePostCount(value) {
|
|
@@ -459,13 +615,21 @@ function assertPublishableContent(input) {
|
|
|
459
615
|
}
|
|
460
616
|
function postChangedFields(current, input) {
|
|
461
617
|
const changed = [];
|
|
462
|
-
for (const field of [
|
|
618
|
+
for (const field of [
|
|
619
|
+
'categoryId',
|
|
620
|
+
'title',
|
|
621
|
+
'slug',
|
|
622
|
+
'summary',
|
|
623
|
+
'coverUrl',
|
|
624
|
+
'content',
|
|
625
|
+
]) {
|
|
463
626
|
if (current[field] !== input[field])
|
|
464
627
|
changed.push(field);
|
|
465
628
|
}
|
|
466
629
|
const currentTags = current.tags.map(({ id }) => id).sort();
|
|
467
630
|
const nextTags = [...input.tagIds].sort();
|
|
468
|
-
if (currentTags.length !== nextTags.length ||
|
|
631
|
+
if (currentTags.length !== nextTags.length ||
|
|
632
|
+
currentTags.some((id, index) => id !== nextTags[index])) {
|
|
469
633
|
changed.push('tagIds');
|
|
470
634
|
}
|
|
471
635
|
return changed;
|
|
@@ -474,18 +638,32 @@ function escapeLikePattern(value) {
|
|
|
474
638
|
return value.replace(/[\\%_]/g, (character) => `\\${character}`);
|
|
475
639
|
}
|
|
476
640
|
function archivePublishedAtRange(options) {
|
|
477
|
-
const isRange = options.startYear !== undefined &&
|
|
478
|
-
|
|
641
|
+
const isRange = options.startYear !== undefined &&
|
|
642
|
+
options.startMonth !== undefined &&
|
|
643
|
+
options.endYear !== undefined &&
|
|
644
|
+
options.endMonth !== undefined;
|
|
479
645
|
if (!isRange && options.year === undefined)
|
|
480
646
|
return undefined;
|
|
481
|
-
const startYear = isRange
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
const
|
|
647
|
+
const startYear = isRange
|
|
648
|
+
? options.startYear
|
|
649
|
+
: options.year;
|
|
650
|
+
const startMonth = isRange
|
|
651
|
+
? options.startMonth - 1
|
|
652
|
+
: options.month === undefined
|
|
653
|
+
? 0
|
|
654
|
+
: options.month - 1;
|
|
655
|
+
const selectedEndYear = isRange
|
|
656
|
+
? options.endYear
|
|
657
|
+
: options.year;
|
|
658
|
+
const selectedEndMonth = isRange
|
|
659
|
+
? options.endMonth
|
|
660
|
+
: options.month;
|
|
485
661
|
const endYear = selectedEndMonth === undefined || selectedEndMonth === 12
|
|
486
662
|
? selectedEndYear + 1
|
|
487
663
|
: selectedEndYear;
|
|
488
|
-
const endMonth = selectedEndMonth === undefined || selectedEndMonth === 12
|
|
664
|
+
const endMonth = selectedEndMonth === undefined || selectedEndMonth === 12
|
|
665
|
+
? 0
|
|
666
|
+
: selectedEndMonth;
|
|
489
667
|
return And(MoreThanOrEqual(new Date(Date.UTC(startYear, startMonth, 1))), LessThan(new Date(Date.UTC(endYear, endMonth, 1))));
|
|
490
668
|
}
|
|
491
669
|
function aggregateArchiveMonths(posts, limit) {
|