@crowi/api 2.0.0-alpha.0 → 2.0.0-alpha.2
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/hono/handlers/access-token.d.ts +55 -55
- package/dist/hono/handlers/activation.d.ts +27 -27
- package/dist/hono/handlers/admin/app.d.ts +26 -26
- package/dist/hono/handlers/admin/auth.d.ts +24 -24
- package/dist/hono/handlers/admin/mail.d.ts +30 -30
- package/dist/hono/handlers/admin/plugins.d.ts +112 -112
- package/dist/hono/handlers/admin/search.d.ts +21 -21
- package/dist/hono/handlers/admin/security.d.ts +24 -24
- package/dist/hono/handlers/admin/storage.d.ts +19 -19
- package/dist/hono/handlers/admin/users.d.ts +399 -281
- package/dist/hono/handlers/admin/users.js +28 -0
- package/dist/hono/handlers/admin/users.js.map +1 -1
- package/dist/hono/handlers/adminCrypto.d.ts +32 -32
- package/dist/hono/handlers/app.d.ts +12 -8
- package/dist/hono/handlers/app.js +42 -1
- package/dist/hono/handlers/app.js.map +1 -1
- package/dist/hono/handlers/attachment-stream.js +23 -0
- package/dist/hono/handlers/attachment-stream.js.map +1 -1
- package/dist/hono/handlers/attachment.d.ts +180 -180
- package/dist/hono/handlers/autocomplete.d.ts +45 -45
- package/dist/hono/handlers/backlink.d.ts +33 -33
- package/dist/hono/handlers/bookmark.d.ts +95 -95
- package/dist/hono/handlers/comment.d.ts +55 -55
- package/dist/hono/handlers/draft.d.ts +27 -27
- package/dist/hono/handlers/draft.js +10 -0
- package/dist/hono/handlers/draft.js.map +1 -1
- package/dist/hono/handlers/emailChange.d.ts +25 -25
- package/dist/hono/handlers/installer.d.ts +16 -16
- package/dist/hono/handlers/inviteAccept.d.ts +37 -37
- package/dist/hono/handlers/me.d.ts +92 -92
- package/dist/hono/handlers/notification.d.ts +94 -94
- package/dist/hono/handlers/oauth.d.ts +58 -58
- package/dist/hono/handlers/page-collab.d.ts +20 -20
- package/dist/hono/handlers/page-preview.d.ts +7 -7
- package/dist/hono/handlers/page.d.ts +575 -324
- package/dist/hono/handlers/page.js +123 -6
- package/dist/hono/handlers/page.js.map +1 -1
- package/dist/hono/handlers/passwordReset.d.ts +37 -37
- package/dist/hono/handlers/presence.d.ts +44 -44
- package/dist/hono/handlers/revision.d.ts +99 -99
- package/dist/hono/handlers/search.d.ts +64 -64
- package/dist/hono/handlers/tokenAuth.d.ts +80 -80
- package/dist/hono/handlers/user.d.ts +102 -102
- package/dist/hono/handlers/user.js +15 -5
- package/dist/hono/handlers/user.js.map +1 -1
- package/dist/hono/index.d.ts +94 -94
- package/dist/mcp/result.d.ts +52 -11
- package/dist/mcp/result.js +66 -1
- package/dist/mcp/result.js.map +1 -1
- package/dist/mcp/tools/page.js +30 -5
- package/dist/mcp/tools/page.js.map +1 -1
- package/dist/mcp/tools/search.d.ts +12 -0
- package/dist/mcp/tools/search.js +21 -5
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/migration/helpers.d.ts +13 -0
- package/dist/migration/helpers.js +29 -0
- package/dist/migration/helpers.js.map +1 -0
- package/dist/migration/migrations/files-url-to-attachments.d.ts +35 -0
- package/dist/migration/migrations/files-url-to-attachments.js +291 -0
- package/dist/migration/migrations/files-url-to-attachments.js.map +1 -0
- package/dist/migration/migrations/index.js +6 -0
- package/dist/migration/migrations/index.js.map +1 -1
- package/dist/migration/migrations/published-current-revision.d.ts +47 -0
- package/dist/migration/migrations/published-current-revision.js +90 -0
- package/dist/migration/migrations/published-current-revision.js.map +1 -0
- package/dist/migration/migrations/relocate-reserved-api-paths.d.ts +3 -0
- package/dist/migration/migrations/relocate-reserved-api-paths.js +135 -0
- package/dist/migration/migrations/relocate-reserved-api-paths.js.map +1 -0
- package/dist/migration/migrations/wikilink-format.d.ts +0 -11
- package/dist/migration/migrations/wikilink-format.js +5 -156
- package/dist/migration/migrations/wikilink-format.js.map +1 -1
- package/dist/migration/migrations/wikilink-html-recover.d.ts +116 -0
- package/dist/migration/migrations/wikilink-html-recover.js +314 -0
- package/dist/migration/migrations/wikilink-html-recover.js.map +1 -0
- package/dist/models/page.d.ts +3 -0
- package/dist/models/page.js +40 -2
- package/dist/models/page.js.map +1 -1
- package/dist/models/user.d.ts +1 -0
- package/dist/models/user.js +40 -21
- package/dist/models/user.js.map +1 -1
- package/dist/renderer/core/headings.d.ts +12 -1
- package/dist/renderer/core/headings.js +48 -8
- package/dist/renderer/core/headings.js.map +1 -1
- package/dist/renderer/pipeline.d.ts +6 -0
- package/dist/renderer/pipeline.js.map +1 -1
- package/dist/util/page-response.js +19 -2
- package/dist/util/page-response.js.map +1 -1
- package/dist/util/replace-url.d.ts +85 -0
- package/dist/util/replace-url.js +251 -0
- package/dist/util/replace-url.js.map +1 -0
- package/package.json +13 -5
- package/public/images/file-not-found.png +0 -0
- package/views/mail/activation.mjml +9 -0
- package/views/mail/activation.text +13 -0
- package/views/mail/adminApprovalPending.mjml +7 -0
- package/views/mail/adminApprovalPending.text +11 -0
- package/views/mail/emailChange.mjml +9 -0
- package/views/mail/emailChange.text +13 -0
- package/views/mail/invite.mjml +9 -0
- package/views/mail/invite.text +13 -0
- package/views/mail/layout.mjml +38 -0
- package/views/mail/passwordChanged.mjml +4 -0
- package/views/mail/passwordChanged.text +9 -0
- package/views/mail/passwordReset.mjml +9 -0
- package/views/mail/passwordReset.text +13 -0
- package/views/mail/test.mjml +2 -0
- package/views/mail/test.text +7 -0
- package/dist/common/functions/path2name.d.ts +0 -1
- package/dist/common/functions/path2name.js +0 -22
- package/dist/common/functions/path2name.js.map +0 -1
- package/dist/common/functions/renderIcon.d.ts +0 -1
- package/dist/common/functions/renderIcon.js +0 -9
- package/dist/common/functions/renderIcon.js.map +0 -1
- package/dist/controllers/admin.d.ts +0 -3
- package/dist/controllers/admin.js +0 -474
- package/dist/controllers/admin.js.map +0 -1
- package/dist/controllers/attachment.d.ts +0 -4
- package/dist/controllers/attachment.js +0 -200
- package/dist/controllers/attachment.js.map +0 -1
- package/dist/controllers/backlink.d.ts +0 -3
- package/dist/controllers/backlink.js +0 -42
- package/dist/controllers/backlink.js.map +0 -1
- package/dist/controllers/bookmark.d.ts +0 -3
- package/dist/controllers/bookmark.js +0 -100
- package/dist/controllers/bookmark.js.map +0 -1
- package/dist/controllers/comment.d.ts +0 -3
- package/dist/controllers/comment.js +0 -111
- package/dist/controllers/comment.js.map +0 -1
- package/dist/controllers/index.d.ts +0 -25
- package/dist/controllers/index.js +0 -44
- package/dist/controllers/index.js.map +0 -1
- package/dist/controllers/installer.d.ts +0 -3
- package/dist/controllers/installer.js +0 -48
- package/dist/controllers/installer.js.map +0 -1
- package/dist/controllers/login.d.ts +0 -4
- package/dist/controllers/login.js +0 -438
- package/dist/controllers/login.js.map +0 -1
- package/dist/controllers/logout.d.ts +0 -5
- package/dist/controllers/logout.js +0 -11
- package/dist/controllers/logout.js.map +0 -1
- package/dist/controllers/me.d.ts +0 -4
- package/dist/controllers/me.js +0 -369
- package/dist/controllers/me.js.map +0 -1
- package/dist/controllers/notification.d.ts +0 -3
- package/dist/controllers/notification.js +0 -88
- package/dist/controllers/notification.js.map +0 -1
- package/dist/controllers/page.d.ts +0 -3
- package/dist/controllers/page.js +0 -881
- package/dist/controllers/page.js.map +0 -1
- package/dist/controllers/revision.d.ts +0 -3
- package/dist/controllers/revision.js +0 -91
- package/dist/controllers/revision.js.map +0 -1
- package/dist/controllers/search.d.ts +0 -3
- package/dist/controllers/search.js +0 -93
- package/dist/controllers/search.js.map +0 -1
- package/dist/controllers/share.d.ts +0 -3
- package/dist/controllers/share.js +0 -207
- package/dist/controllers/share.js.map +0 -1
- package/dist/controllers/shareAccess.d.ts +0 -3
- package/dist/controllers/shareAccess.js +0 -28
- package/dist/controllers/shareAccess.js.map +0 -1
- package/dist/controllers/slack.d.ts +0 -3
- package/dist/controllers/slack.js +0 -87
- package/dist/controllers/slack.js.map +0 -1
- package/dist/controllers/tokenAuth.d.ts +0 -10
- package/dist/controllers/tokenAuth.js +0 -292
- package/dist/controllers/tokenAuth.js.map +0 -1
- package/dist/controllers/user.d.ts +0 -3
- package/dist/controllers/user.js +0 -67
- package/dist/controllers/user.js.map +0 -1
- package/dist/controllers/version.d.ts +0 -4
- package/dist/controllers/version.js +0 -19
- package/dist/controllers/version.js.map +0 -1
- package/dist/crowi/express-init.d.ts +0 -4
- package/dist/crowi/express-init.js +0 -101
- package/dist/crowi/express-init.js.map +0 -1
- package/dist/form/admin/app.d.ts +0 -2
- package/dist/form/admin/app.js +0 -9
- package/dist/form/admin/app.js.map +0 -1
- package/dist/form/admin/auth.d.ts +0 -2
- package/dist/form/admin/auth.js +0 -9
- package/dist/form/admin/auth.js.map +0 -1
- package/dist/form/admin/aws.d.ts +0 -2
- package/dist/form/admin/aws.js +0 -13
- package/dist/form/admin/aws.js.map +0 -1
- package/dist/form/admin/github.d.ts +0 -2
- package/dist/form/admin/github.js +0 -15
- package/dist/form/admin/github.js.map +0 -1
- package/dist/form/admin/google.d.ts +0 -2
- package/dist/form/admin/google.js +0 -13
- package/dist/form/admin/google.js.map +0 -1
- package/dist/form/admin/mail.d.ts +0 -2
- package/dist/form/admin/mail.js +0 -13
- package/dist/form/admin/mail.js.map +0 -1
- package/dist/form/admin/sec.d.ts +0 -2
- package/dist/form/admin/sec.js +0 -10
- package/dist/form/admin/sec.js.map +0 -1
- package/dist/form/admin/slackSetting.d.ts +0 -2
- package/dist/form/admin/slackSetting.js +0 -13
- package/dist/form/admin/slackSetting.js.map +0 -1
- package/dist/form/admin/userEdit.d.ts +0 -2
- package/dist/form/admin/userEdit.js +0 -9
- package/dist/form/admin/userEdit.js.map +0 -1
- package/dist/form/admin/userInvite.d.ts +0 -2
- package/dist/form/admin/userInvite.js +0 -9
- package/dist/form/admin/userInvite.js.map +0 -1
- package/dist/form/comment.d.ts +0 -2
- package/dist/form/comment.js +0 -9
- package/dist/form/comment.js.map +0 -1
- package/dist/form/index.d.ts +0 -25
- package/dist/form/index.js +0 -48
- package/dist/form/index.js.map +0 -1
- package/dist/form/invited.d.ts +0 -2
- package/dist/form/invited.js +0 -13
- package/dist/form/invited.js.map +0 -1
- package/dist/form/login.d.ts +0 -2
- package/dist/form/login.js +0 -11
- package/dist/form/login.js.map +0 -1
- package/dist/form/me/apiToken.d.ts +0 -2
- package/dist/form/me/apiToken.js +0 -9
- package/dist/form/me/apiToken.js.map +0 -1
- package/dist/form/me/password.d.ts +0 -2
- package/dist/form/me/password.js +0 -11
- package/dist/form/me/password.js.map +0 -1
- package/dist/form/me/user.d.ts +0 -2
- package/dist/form/me/user.js +0 -9
- package/dist/form/me/user.js.map +0 -1
- package/dist/form/register.d.ts +0 -2
- package/dist/form/register.js +0 -13
- package/dist/form/register.js.map +0 -1
- package/dist/form/revision.d.ts +0 -2
- package/dist/form/revision.js +0 -13
- package/dist/form/revision.js.map +0 -1
- package/dist/hono/handlers/admin/share.d.ts +0 -106
- package/dist/hono/handlers/admin/share.js +0 -55
- package/dist/hono/handlers/admin/share.js.map +0 -1
- package/dist/middlewares/accessTokenParser.d.ts +0 -4
- package/dist/middlewares/accessTokenParser.js +0 -29
- package/dist/middlewares/accessTokenParser.js.map +0 -1
- package/dist/middlewares/adminRequired.d.ts +0 -10
- package/dist/middlewares/adminRequired.js +0 -35
- package/dist/middlewares/adminRequired.js.map +0 -1
- package/dist/middlewares/applicationInstalled.d.ts +0 -3
- package/dist/middlewares/applicationInstalled.js +0 -20
- package/dist/middlewares/applicationInstalled.js.map +0 -1
- package/dist/middlewares/applicationNotInstalled.d.ts +0 -3
- package/dist/middlewares/applicationNotInstalled.js +0 -13
- package/dist/middlewares/applicationNotInstalled.js.map +0 -1
- package/dist/middlewares/basicAuth.d.ts +0 -4
- package/dist/middlewares/basicAuth.js +0 -23
- package/dist/middlewares/basicAuth.js.map +0 -1
- package/dist/middlewares/csrfVerify.d.ts +0 -4
- package/dist/middlewares/csrfVerify.js +0 -24
- package/dist/middlewares/csrfVerify.js.map +0 -1
- package/dist/middlewares/encodeSpace.d.ts +0 -3
- package/dist/middlewares/encodeSpace.js +0 -14
- package/dist/middlewares/encodeSpace.js.map +0 -1
- package/dist/middlewares/fileAccessRightOrLoginRequired.d.ts +0 -4
- package/dist/middlewares/fileAccessRightOrLoginRequired.js +0 -29
- package/dist/middlewares/fileAccessRightOrLoginRequired.js.map +0 -1
- package/dist/middlewares/index.d.ts +0 -16
- package/dist/middlewares/index.js +0 -30
- package/dist/middlewares/index.js.map +0 -1
- package/dist/middlewares/jwtAdminRequired.d.ts +0 -8
- package/dist/middlewares/jwtAdminRequired.js +0 -35
- package/dist/middlewares/jwtAdminRequired.js.map +0 -1
- package/dist/middlewares/jwtAuth.d.ts +0 -4
- package/dist/middlewares/jwtAuth.js +0 -104
- package/dist/middlewares/jwtAuth.js.map +0 -1
- package/dist/middlewares/loginChecker.d.ts +0 -4
- package/dist/middlewares/loginChecker.js +0 -32
- package/dist/middlewares/loginChecker.js.map +0 -1
- package/dist/middlewares/loginRequired.d.ts +0 -4
- package/dist/middlewares/loginRequired.js +0 -88
- package/dist/middlewares/loginRequired.js.map +0 -1
- package/dist/routes/admin.d.ts +0 -4
- package/dist/routes/admin.js +0 -17
- package/dist/routes/admin.js.map +0 -1
- package/dist/routes/api/admin.d.ts +0 -4
- package/dist/routes/api/admin.js +0 -37
- package/dist/routes/api/admin.js.map +0 -1
- package/dist/routes/api/attachment.d.ts +0 -4
- package/dist/routes/api/attachment.js +0 -19
- package/dist/routes/api/attachment.js.map +0 -1
- package/dist/routes/api/bookmark.d.ts +0 -4
- package/dist/routes/api/bookmark.js +0 -15
- package/dist/routes/api/bookmark.js.map +0 -1
- package/dist/routes/api/comment.d.ts +0 -4
- package/dist/routes/api/comment.js +0 -14
- package/dist/routes/api/comment.js.map +0 -1
- package/dist/routes/api/index.d.ts +0 -4
- package/dist/routes/api/index.js +0 -36
- package/dist/routes/api/index.js.map +0 -1
- package/dist/routes/api/like.d.ts +0 -4
- package/dist/routes/api/like.js +0 -13
- package/dist/routes/api/like.js.map +0 -1
- package/dist/routes/api/notification.d.ts +0 -4
- package/dist/routes/api/notification.js +0 -15
- package/dist/routes/api/notification.js.map +0 -1
- package/dist/routes/api/page.d.ts +0 -4
- package/dist/routes/api/page.js +0 -24
- package/dist/routes/api/page.js.map +0 -1
- package/dist/routes/api/revision.d.ts +0 -4
- package/dist/routes/api/revision.js +0 -14
- package/dist/routes/api/revision.js.map +0 -1
- package/dist/routes/api/share.d.ts +0 -4
- package/dist/routes/api/share.js +0 -16
- package/dist/routes/api/share.js.map +0 -1
- package/dist/routes/api/version.d.ts +0 -4
- package/dist/routes/api/version.js +0 -10
- package/dist/routes/api/version.js.map +0 -1
- package/dist/routes/index.d.ts +0 -4
- package/dist/routes/index.js +0 -71
- package/dist/routes/index.js.map +0 -1
- package/dist/routes/login.d.ts +0 -4
- package/dist/routes/login.js +0 -18
- package/dist/routes/login.js.map +0 -1
- package/dist/routes/me.d.ts +0 -4
- package/dist/routes/me.js +0 -24
- package/dist/routes/me.js.map +0 -1
- package/dist/routes/ts-rest/admin/app.d.ts +0 -4
- package/dist/routes/ts-rest/admin/app.js +0 -67
- package/dist/routes/ts-rest/admin/app.js.map +0 -1
- package/dist/routes/ts-rest/admin/auth.d.ts +0 -4
- package/dist/routes/ts-rest/admin/auth.js +0 -95
- package/dist/routes/ts-rest/admin/auth.js.map +0 -1
- package/dist/routes/ts-rest/admin/index.d.ts +0 -10
- package/dist/routes/ts-rest/admin/index.js +0 -35
- package/dist/routes/ts-rest/admin/index.js.map +0 -1
- package/dist/routes/ts-rest/admin/mail.d.ts +0 -4
- package/dist/routes/ts-rest/admin/mail.js +0 -156
- package/dist/routes/ts-rest/admin/mail.js.map +0 -1
- package/dist/routes/ts-rest/admin/plugins.d.ts +0 -4
- package/dist/routes/ts-rest/admin/plugins.js +0 -317
- package/dist/routes/ts-rest/admin/plugins.js.map +0 -1
- package/dist/routes/ts-rest/admin/search.d.ts +0 -4
- package/dist/routes/ts-rest/admin/search.js +0 -67
- package/dist/routes/ts-rest/admin/search.js.map +0 -1
- package/dist/routes/ts-rest/admin/security.d.ts +0 -4
- package/dist/routes/ts-rest/admin/security.js +0 -114
- package/dist/routes/ts-rest/admin/security.js.map +0 -1
- package/dist/routes/ts-rest/admin/share.d.ts +0 -4
- package/dist/routes/ts-rest/admin/share.js +0 -69
- package/dist/routes/ts-rest/admin/share.js.map +0 -1
- package/dist/routes/ts-rest/admin/storage.d.ts +0 -4
- package/dist/routes/ts-rest/admin/storage.js +0 -59
- package/dist/routes/ts-rest/admin/storage.js.map +0 -1
- package/dist/routes/ts-rest/admin/users.d.ts +0 -4
- package/dist/routes/ts-rest/admin/users.js +0 -215
- package/dist/routes/ts-rest/admin/users.js.map +0 -1
- package/dist/routes/ts-rest/adminCrypto.d.ts +0 -4
- package/dist/routes/ts-rest/adminCrypto.js +0 -111
- package/dist/routes/ts-rest/adminCrypto.js.map +0 -1
- package/dist/routes/ts-rest/app.d.ts +0 -4
- package/dist/routes/ts-rest/app.js +0 -23
- package/dist/routes/ts-rest/app.js.map +0 -1
- package/dist/routes/ts-rest/attachment.d.ts +0 -4
- package/dist/routes/ts-rest/attachment.js +0 -830
- package/dist/routes/ts-rest/attachment.js.map +0 -1
- package/dist/routes/ts-rest/auth.d.ts +0 -4
- package/dist/routes/ts-rest/auth.js +0 -70
- package/dist/routes/ts-rest/auth.js.map +0 -1
- package/dist/routes/ts-rest/autocomplete.d.ts +0 -30
- package/dist/routes/ts-rest/autocomplete.js +0 -189
- package/dist/routes/ts-rest/autocomplete.js.map +0 -1
- package/dist/routes/ts-rest/backlink.d.ts +0 -4
- package/dist/routes/ts-rest/backlink.js +0 -106
- package/dist/routes/ts-rest/backlink.js.map +0 -1
- package/dist/routes/ts-rest/bookmark.d.ts +0 -4
- package/dist/routes/ts-rest/bookmark.js +0 -189
- package/dist/routes/ts-rest/bookmark.js.map +0 -1
- package/dist/routes/ts-rest/comment.d.ts +0 -4
- package/dist/routes/ts-rest/comment.js +0 -217
- package/dist/routes/ts-rest/comment.js.map +0 -1
- package/dist/routes/ts-rest/draft.d.ts +0 -22
- package/dist/routes/ts-rest/draft.js +0 -200
- package/dist/routes/ts-rest/draft.js.map +0 -1
- package/dist/routes/ts-rest/index.d.ts +0 -4
- package/dist/routes/ts-rest/index.js +0 -103
- package/dist/routes/ts-rest/index.js.map +0 -1
- package/dist/routes/ts-rest/installer.d.ts +0 -4
- package/dist/routes/ts-rest/installer.js +0 -77
- package/dist/routes/ts-rest/installer.js.map +0 -1
- package/dist/routes/ts-rest/me.d.ts +0 -4
- package/dist/routes/ts-rest/me.js +0 -410
- package/dist/routes/ts-rest/me.js.map +0 -1
- package/dist/routes/ts-rest/notification.d.ts +0 -4
- package/dist/routes/ts-rest/notification.js +0 -241
- package/dist/routes/ts-rest/notification.js.map +0 -1
- package/dist/routes/ts-rest/page-collab.d.ts +0 -29
- package/dist/routes/ts-rest/page-collab.js +0 -90
- package/dist/routes/ts-rest/page-collab.js.map +0 -1
- package/dist/routes/ts-rest/page-preview.d.ts +0 -26
- package/dist/routes/ts-rest/page-preview.js +0 -80
- package/dist/routes/ts-rest/page-preview.js.map +0 -1
- package/dist/routes/ts-rest/page.d.ts +0 -4
- package/dist/routes/ts-rest/page.js +0 -676
- package/dist/routes/ts-rest/page.js.map +0 -1
- package/dist/routes/ts-rest/presence.d.ts +0 -30
- package/dist/routes/ts-rest/presence.js +0 -155
- package/dist/routes/ts-rest/presence.js.map +0 -1
- package/dist/routes/ts-rest/revision.d.ts +0 -4
- package/dist/routes/ts-rest/revision.js +0 -240
- package/dist/routes/ts-rest/revision.js.map +0 -1
- package/dist/routes/ts-rest/search.d.ts +0 -4
- package/dist/routes/ts-rest/search.js +0 -121
- package/dist/routes/ts-rest/search.js.map +0 -1
- package/dist/routes/ts-rest/tokenAuth.d.ts +0 -4
- package/dist/routes/ts-rest/tokenAuth.js +0 -94
- package/dist/routes/ts-rest/tokenAuth.js.map +0 -1
- package/dist/routes/ts-rest/user.d.ts +0 -4
- package/dist/routes/ts-rest/user.js +0 -307
- package/dist/routes/ts-rest/user.js.map +0 -1
- package/dist/types/express.d.ts +0 -34
- package/dist/types/express.js +0 -50
- package/dist/types/express.js.map +0 -1
- package/dist/util/accessTokenParser.d.ts +0 -1
- package/dist/util/accessTokenParser.js +0 -34
- package/dist/util/accessTokenParser.js.map +0 -1
- package/dist/util/apiPaginate.d.ts +0 -11
- package/dist/util/apiPaginate.js +0 -33
- package/dist/util/apiPaginate.js.map +0 -1
- package/dist/util/apiResponse.d.ts +0 -9
- package/dist/util/apiResponse.js +0 -23
- package/dist/util/apiResponse.js.map +0 -1
- package/dist/util/auth.d.ts +0 -11
- package/dist/util/auth.js +0 -48
- package/dist/util/auth.js.map +0 -1
- package/dist/util/aws-config-migration.d.ts +0 -11
- package/dist/util/aws-config-migration.js +0 -68
- package/dist/util/aws-config-migration.js.map +0 -1
- package/dist/util/formUtil.d.ts +0 -2
- package/dist/util/formUtil.js +0 -15
- package/dist/util/formUtil.js.map +0 -1
- package/dist/util/githubAuth.d.ts +0 -2
- package/dist/util/githubAuth.js +0 -82
- package/dist/util/githubAuth.js.map +0 -1
- package/dist/util/googleAuth.d.ts +0 -2
- package/dist/util/googleAuth.js +0 -85
- package/dist/util/googleAuth.js.map +0 -1
- package/dist/util/mailer.d.ts +0 -7
- package/dist/util/mailer.js +0 -98
- package/dist/util/mailer.js.map +0 -1
- package/dist/util/page-status-migration.d.ts +0 -23
- package/dist/util/page-status-migration.js +0 -48
- package/dist/util/page-status-migration.js.map +0 -1
- package/dist/util/ssr.d.ts +0 -3
- package/dist/util/ssr.js +0 -9
- package/dist/util/ssr.js.map +0 -1
- package/dist/util/view.d.ts +0 -10
- package/dist/util/view.js +0 -99
- package/dist/util/view.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"me.js","sourceRoot":"","sources":["../../../src/routes/ts-rest/me.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const express_1 = require("@ts-rest/express");
|
|
7
|
-
const api_contract_1 = require("@crowi/api-contract");
|
|
8
|
-
const express_2 = require("express");
|
|
9
|
-
const mongoose_1 = require("mongoose");
|
|
10
|
-
const ts_rest_helpers_1 = require("../../util/ts-rest-helpers");
|
|
11
|
-
const debug_1 = __importDefault(require("debug"));
|
|
12
|
-
const debug = (0, debug_1.default)('crowi:routes:ts-rest:notification');
|
|
13
|
-
const isPopulatedUser = (value) => {
|
|
14
|
-
return !!value && typeof value === 'object' && '_id' in value && 'username' in value && 'email' in value;
|
|
15
|
-
};
|
|
16
|
-
const isPopulatedPage = (value) => {
|
|
17
|
-
return !!value && typeof value === 'object' && '_id' in value && 'path' in value;
|
|
18
|
-
};
|
|
19
|
-
const isPopulatedActivity = (value) => {
|
|
20
|
-
return !!value && typeof value === 'object' && '_id' in value && 'user' in value;
|
|
21
|
-
};
|
|
22
|
-
const toPageRef = (page) => ({
|
|
23
|
-
_id: (0, ts_rest_helpers_1.toStringId)(page._id),
|
|
24
|
-
path: page.path,
|
|
25
|
-
status: page.status ?? null,
|
|
26
|
-
});
|
|
27
|
-
/**
|
|
28
|
-
* Build the actionUsers array from a (possibly populated) notification.
|
|
29
|
-
* Prefer the `actionUsers` virtual when populated activities are present,
|
|
30
|
-
* otherwise derive it manually from `activities[].user`. Duplicates are
|
|
31
|
-
* removed by user id.
|
|
32
|
-
*/
|
|
33
|
-
const buildActionUsers = (notification) => {
|
|
34
|
-
const candidates = [];
|
|
35
|
-
// Prefer the virtual when it produced populated user objects.
|
|
36
|
-
if (Array.isArray(notification.actionUsers)) {
|
|
37
|
-
for (const u of notification.actionUsers) {
|
|
38
|
-
if (isPopulatedUser(u))
|
|
39
|
-
candidates.push(u);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// Fallback / supplement with activities[].user (also populated by findLatestNotificationsByUser).
|
|
43
|
-
if (candidates.length === 0 && Array.isArray(notification.activities)) {
|
|
44
|
-
for (const a of notification.activities) {
|
|
45
|
-
if (isPopulatedActivity(a) && isPopulatedUser(a.user)) {
|
|
46
|
-
candidates.push(a.user);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
// Dedup by string id, preserving first-seen order.
|
|
51
|
-
const seen = new Set();
|
|
52
|
-
const result = [];
|
|
53
|
-
for (const u of candidates) {
|
|
54
|
-
const id = (0, ts_rest_helpers_1.toStringId)(u._id);
|
|
55
|
-
if (seen.has(id))
|
|
56
|
-
continue;
|
|
57
|
-
seen.add(id);
|
|
58
|
-
result.push((0, ts_rest_helpers_1.toUserPublic)(u));
|
|
59
|
-
}
|
|
60
|
-
return result;
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Convert a NotificationDocument (with user / target / activities.user populated)
|
|
64
|
-
* into the API response shape. The response uses a lightweight PageRef for target
|
|
65
|
-
* and resolves the actionUsers virtual into UserPublic[].
|
|
66
|
-
*
|
|
67
|
-
* `user` and `activities[].user` are normalized to ObjectId strings whenever they
|
|
68
|
-
* are populated, since the contract declares `user` as a string id.
|
|
69
|
-
*/
|
|
70
|
-
const notificationToResponse = (doc) => {
|
|
71
|
-
// toObject({ virtuals: true }) is what the schema is configured with by default,
|
|
72
|
-
// so this exposes `actionUsers` and resolves populated nested docs to plain objects.
|
|
73
|
-
const obj = doc.toObject({ virtuals: true });
|
|
74
|
-
const userId = isPopulatedUser(obj.user) ? (0, ts_rest_helpers_1.toStringId)(obj.user._id) : (0, ts_rest_helpers_1.toStringId)(obj.user);
|
|
75
|
-
// target is required by the schema. If for any reason it is not populated
|
|
76
|
-
// (legacy data), fall back to a minimal placeholder using the raw id.
|
|
77
|
-
let target;
|
|
78
|
-
if (isPopulatedPage(obj.target)) {
|
|
79
|
-
target = toPageRef(obj.target);
|
|
80
|
-
}
|
|
81
|
-
else if (obj.target) {
|
|
82
|
-
target = { _id: (0, ts_rest_helpers_1.toStringId)(obj.target), path: '', status: null };
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
target = { _id: '', path: '', status: null };
|
|
86
|
-
}
|
|
87
|
-
return {
|
|
88
|
-
_id: (0, ts_rest_helpers_1.toStringId)(obj._id),
|
|
89
|
-
user: userId,
|
|
90
|
-
targetModel: obj.targetModel,
|
|
91
|
-
target,
|
|
92
|
-
action: obj.action,
|
|
93
|
-
status: obj.status,
|
|
94
|
-
actionUsers: buildActionUsers(obj),
|
|
95
|
-
createdAt: (0, ts_rest_helpers_1.toISOStringOrNull)(obj.createdAt) ?? new Date(0).toISOString(),
|
|
96
|
-
};
|
|
97
|
-
};
|
|
98
|
-
const invalidIdResponse = () => ({
|
|
99
|
-
status: 400,
|
|
100
|
-
body: {
|
|
101
|
-
error: {
|
|
102
|
-
code: 'INVALID_REQUEST',
|
|
103
|
-
message: 'Invalid notification id',
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
});
|
|
107
|
-
const notificationNotFoundResponse = () => ({
|
|
108
|
-
status: 404,
|
|
109
|
-
body: {
|
|
110
|
-
error: {
|
|
111
|
-
code: 'NOTIFICATION_NOT_FOUND',
|
|
112
|
-
message: 'Notification not found',
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
exports.default = (crowi, _app) => {
|
|
117
|
-
const s = (0, express_1.initServer)();
|
|
118
|
-
const router = (0, express_2.Router)();
|
|
119
|
-
const Notification = crowi.model('Notification');
|
|
120
|
-
const notificationRouter = s.router(api_contract_1.apiContract.notification, {
|
|
121
|
-
/**
|
|
122
|
-
* GET /api/v2/notifications?limit&offset
|
|
123
|
-
* List notifications for the current user (paginated, newest first).
|
|
124
|
-
* Equivalent to legacy GET /_api/notification.list.
|
|
125
|
-
*/
|
|
126
|
-
listNotifications: async ({ query, req }) => {
|
|
127
|
-
const user = req.user;
|
|
128
|
-
const { limit = 10, offset = 0 } = query;
|
|
129
|
-
debug('listNotifications called with:', { limit, offset, userId: user._id });
|
|
130
|
-
try {
|
|
131
|
-
// Fetch one extra row to compute hasNext, mirroring legacy controller.
|
|
132
|
-
const requestLimit = limit + 1;
|
|
133
|
-
const fetched = (await Notification.findLatestNotificationsByUser(user._id, requestLimit, offset));
|
|
134
|
-
const sliced = fetched.slice(0, limit);
|
|
135
|
-
const hasNext = fetched.length > limit;
|
|
136
|
-
const next = hasNext ? offset + limit : null;
|
|
137
|
-
const prev = offset > 0 ? Math.max(0, offset - limit) : null;
|
|
138
|
-
return {
|
|
139
|
-
status: 200,
|
|
140
|
-
body: {
|
|
141
|
-
notifications: sliced.map(notificationToResponse),
|
|
142
|
-
pager: { prev, next, offset },
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
catch (err) {
|
|
147
|
-
const error = err;
|
|
148
|
-
debug('Error listing notifications:', error.message);
|
|
149
|
-
return {
|
|
150
|
-
status: 500,
|
|
151
|
-
body: { error: { code: 'INTERNAL_ERROR', message: 'Internal server error' } },
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
/**
|
|
156
|
-
* POST /api/v2/notifications/read
|
|
157
|
-
* Mark all UNREAD notifications of the current user as UNOPENED ("read").
|
|
158
|
-
* The legacy controller returned the raw updateMany result; we simplify
|
|
159
|
-
* to { ok: true } since the UI only cares about success / failure.
|
|
160
|
-
*/
|
|
161
|
-
markAllAsRead: async ({ req }) => {
|
|
162
|
-
const user = req.user;
|
|
163
|
-
debug('markAllAsRead called by:', { userId: user._id });
|
|
164
|
-
try {
|
|
165
|
-
await Notification.read(user);
|
|
166
|
-
return { status: 200, body: { ok: true } };
|
|
167
|
-
}
|
|
168
|
-
catch (err) {
|
|
169
|
-
const error = err;
|
|
170
|
-
debug('Error marking notifications as read:', error.message);
|
|
171
|
-
return {
|
|
172
|
-
status: 500,
|
|
173
|
-
body: { error: { code: 'INTERNAL_ERROR', message: 'Internal server error' } },
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
},
|
|
177
|
-
/**
|
|
178
|
-
* POST /api/v2/notifications/:id/open
|
|
179
|
-
* Open (set OPENED status) a single notification.
|
|
180
|
-
* Notification.open filters on `{ _id, user: user._id }` so a foreign
|
|
181
|
-
* notification id naturally resolves to null and we surface 404 for it.
|
|
182
|
-
*/
|
|
183
|
-
openNotification: async ({ params, req }) => {
|
|
184
|
-
const user = req.user;
|
|
185
|
-
const { id } = params;
|
|
186
|
-
debug('openNotification called with:', { id, userId: user._id });
|
|
187
|
-
if (!(0, ts_rest_helpers_1.isValidObjectId)(id)) {
|
|
188
|
-
return invalidIdResponse();
|
|
189
|
-
}
|
|
190
|
-
try {
|
|
191
|
-
const updated = await Notification.open(user, new mongoose_1.Types.ObjectId(id));
|
|
192
|
-
if (!updated) {
|
|
193
|
-
return notificationNotFoundResponse();
|
|
194
|
-
}
|
|
195
|
-
// Re-fetch with population so the response shape matches the list endpoint.
|
|
196
|
-
const populated = await Notification.findById(updated._id)
|
|
197
|
-
.populate(['user', 'target'])
|
|
198
|
-
.populate({ path: 'activities', populate: { path: 'user' } })
|
|
199
|
-
.exec();
|
|
200
|
-
if (!populated) {
|
|
201
|
-
return notificationNotFoundResponse();
|
|
202
|
-
}
|
|
203
|
-
return {
|
|
204
|
-
status: 200,
|
|
205
|
-
body: { notification: notificationToResponse(populated) },
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
catch (err) {
|
|
209
|
-
const error = err;
|
|
210
|
-
debug('Error opening notification:', error.message);
|
|
211
|
-
return {
|
|
212
|
-
status: 500,
|
|
213
|
-
body: { error: { code: 'INTERNAL_ERROR', message: 'Internal server error' } },
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
/**
|
|
218
|
-
* GET /api/v2/notifications/status
|
|
219
|
-
* Return the unread notification count for the current user.
|
|
220
|
-
*/
|
|
221
|
-
getUnreadCount: async ({ req }) => {
|
|
222
|
-
const user = req.user;
|
|
223
|
-
debug('getUnreadCount called by:', { userId: user._id });
|
|
224
|
-
try {
|
|
225
|
-
const count = (await Notification.getUnreadCountByUser(user._id)) ?? 0;
|
|
226
|
-
return { status: 200, body: { count } };
|
|
227
|
-
}
|
|
228
|
-
catch (err) {
|
|
229
|
-
const error = err;
|
|
230
|
-
debug('Error counting unread notifications:', error.message);
|
|
231
|
-
return {
|
|
232
|
-
status: 500,
|
|
233
|
-
body: { error: { code: 'INTERNAL_ERROR', message: 'Internal server error' } },
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
},
|
|
237
|
-
});
|
|
238
|
-
(0, express_1.createExpressEndpoints)(api_contract_1.apiContract.notification, notificationRouter, router);
|
|
239
|
-
return router;
|
|
240
|
-
};
|
|
241
|
-
//# sourceMappingURL=notification.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../src/routes/ts-rest/notification.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import Crowi from '../../crowi';
|
|
2
|
-
import { Express } from 'express';
|
|
3
|
-
/**
|
|
4
|
-
* GET /api/v2/pages/:id/yjs-token (RFC-0003 Phase 2)
|
|
5
|
-
*
|
|
6
|
-
* Mints the short-lived JWT (`wsToken`) the Hocuspocus client carries
|
|
7
|
-
* on the WebSocket handshake. Phase 3 wires `onAuthenticate` to the
|
|
8
|
-
* matching verify helper so a leaked wsToken is reduced to a 5-minute
|
|
9
|
-
* exposure window scoped to a single page id.
|
|
10
|
-
*
|
|
11
|
-
* Authorisation pipeline (all gates fail-closed):
|
|
12
|
-
* 1. `jwtAuth` — already applied at the router level, so we just
|
|
13
|
-
* narrow `req.user` to `UserDocument`.
|
|
14
|
-
* 2. `loadGrantedPage` — validates the 24-char hex page id and
|
|
15
|
-
* ensures the caller has grant. Crowi v1.x has no read-only grant
|
|
16
|
-
* tier, so being able to read the page is equivalent to being
|
|
17
|
-
* able to edit it; downstream Hocuspocus only needs to re-check
|
|
18
|
-
* grant on `onAuthenticate` for token-replay safety (Phase 3).
|
|
19
|
-
* 3. `checkEditorCap` — Phase 6 will INCR a Redis counter here and
|
|
20
|
-
* flip `readonly` to true at the 20-user cap. The stub always
|
|
21
|
-
* returns `{ readonly: false }`.
|
|
22
|
-
*
|
|
23
|
-
* Note on `403 vs 404`: the spec section header says "403 if no edit
|
|
24
|
-
* permission", but every other page-scoped ts-rest endpoint collapses
|
|
25
|
-
* "not found" and "not granted" into a 404 so page existence is not
|
|
26
|
-
* leaked. We do the same here. See the openQuestion in the task plan.
|
|
27
|
-
*/
|
|
28
|
-
declare const _default: (crowi: Crowi, _app: Express) => import("express-serve-static-core").Router;
|
|
29
|
-
export default _default;
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const express_1 = require("@ts-rest/express");
|
|
7
|
-
const api_contract_1 = require("@crowi/api-contract");
|
|
8
|
-
const express_2 = require("express");
|
|
9
|
-
const ts_rest_helpers_1 = require("../../util/ts-rest-helpers");
|
|
10
|
-
const collab_cap_1 = require("../../util/collab-cap");
|
|
11
|
-
const page_1 = require("../../models/page");
|
|
12
|
-
const ws_token_1 = require("../../util/ws-token");
|
|
13
|
-
const debug_1 = __importDefault(require("debug"));
|
|
14
|
-
const debug = (0, debug_1.default)('crowi:routes:ts-rest:page-collab');
|
|
15
|
-
/**
|
|
16
|
-
* GET /api/v2/pages/:id/yjs-token (RFC-0003 Phase 2)
|
|
17
|
-
*
|
|
18
|
-
* Mints the short-lived JWT (`wsToken`) the Hocuspocus client carries
|
|
19
|
-
* on the WebSocket handshake. Phase 3 wires `onAuthenticate` to the
|
|
20
|
-
* matching verify helper so a leaked wsToken is reduced to a 5-minute
|
|
21
|
-
* exposure window scoped to a single page id.
|
|
22
|
-
*
|
|
23
|
-
* Authorisation pipeline (all gates fail-closed):
|
|
24
|
-
* 1. `jwtAuth` — already applied at the router level, so we just
|
|
25
|
-
* narrow `req.user` to `UserDocument`.
|
|
26
|
-
* 2. `loadGrantedPage` — validates the 24-char hex page id and
|
|
27
|
-
* ensures the caller has grant. Crowi v1.x has no read-only grant
|
|
28
|
-
* tier, so being able to read the page is equivalent to being
|
|
29
|
-
* able to edit it; downstream Hocuspocus only needs to re-check
|
|
30
|
-
* grant on `onAuthenticate` for token-replay safety (Phase 3).
|
|
31
|
-
* 3. `checkEditorCap` — Phase 6 will INCR a Redis counter here and
|
|
32
|
-
* flip `readonly` to true at the 20-user cap. The stub always
|
|
33
|
-
* returns `{ readonly: false }`.
|
|
34
|
-
*
|
|
35
|
-
* Note on `403 vs 404`: the spec section header says "403 if no edit
|
|
36
|
-
* permission", but every other page-scoped ts-rest endpoint collapses
|
|
37
|
-
* "not found" and "not granted" into a 404 so page existence is not
|
|
38
|
-
* leaked. We do the same here. See the openQuestion in the task plan.
|
|
39
|
-
*/
|
|
40
|
-
exports.default = (crowi, _app) => {
|
|
41
|
-
const s = (0, express_1.initServer)();
|
|
42
|
-
const router = (0, express_2.Router)();
|
|
43
|
-
// Resolve / sign helper once per server (closure-captures the secret).
|
|
44
|
-
const wsTokenUtil = (0, ws_token_1.createWsTokenUtil)();
|
|
45
|
-
const collabRouter = s.router(api_contract_1.apiContract.pageCollab, {
|
|
46
|
-
getYjsToken: async ({ params, req }) => {
|
|
47
|
-
const user = req.user;
|
|
48
|
-
const { id: pageId } = params;
|
|
49
|
-
const Page = crowi.model('Page');
|
|
50
|
-
debug('getYjsToken called', { pageId, userId: user._id.toString() });
|
|
51
|
-
const loaded = await (0, ts_rest_helpers_1.loadGrantedPage)(Page, pageId, user);
|
|
52
|
-
if ('error' in loaded)
|
|
53
|
-
return loaded.error;
|
|
54
|
-
// RFC-0004: a draft page is editable only by its author. The
|
|
55
|
-
// collab WebSocket carries the wsToken minted here, so refusing
|
|
56
|
-
// to sign a token for a non-author is the first of the two draft
|
|
57
|
-
// gates (the second is the Hocuspocus `onAuthenticate` hook).
|
|
58
|
-
// Collapse "draft owned by someone else" into the same 404 the
|
|
59
|
-
// grant check uses so draft existence is never leaked.
|
|
60
|
-
if (loaded.page.status === page_1.STATUS_DRAFT && !loaded.page.isCreator(user)) {
|
|
61
|
-
debug('getYjsToken rejected: draft page %s not owned by %s', pageId, user._id.toString());
|
|
62
|
-
return ts_rest_helpers_1.pageNotFoundResponse;
|
|
63
|
-
}
|
|
64
|
-
try {
|
|
65
|
-
const { readonly } = await (0, collab_cap_1.checkEditorCap)(crowi, pageId);
|
|
66
|
-
const { token, expiresAt } = wsTokenUtil.signWsToken({
|
|
67
|
-
userId: user._id.toString(),
|
|
68
|
-
pageId,
|
|
69
|
-
readonly,
|
|
70
|
-
});
|
|
71
|
-
return {
|
|
72
|
-
status: 200,
|
|
73
|
-
body: {
|
|
74
|
-
wsToken: token,
|
|
75
|
-
pageId,
|
|
76
|
-
expiresAt: expiresAt.toISOString(),
|
|
77
|
-
readonly,
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
debug('wsToken signing failed:', err.message);
|
|
83
|
-
return ts_rest_helpers_1.internalServerErrorResponse;
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
(0, express_1.createExpressEndpoints)(api_contract_1.apiContract.pageCollab, collabRouter, router);
|
|
88
|
-
return router;
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=page-collab.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page-collab.js","sourceRoot":"","sources":["../../../src/routes/ts-rest/page-collab.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsE;AACtE,sDAAkD;AAElD,qCAA0C;AAC1C,8DAA8G;AAC9G,oDAAqD;AACrD,0CAA+C;AAC/C,gDAAsD;AAEtD,kDAA0B;AAE1B,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,kCAAkC,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,kBAAe,CAAC,KAAY,EAAE,IAAa,EAAE,EAAE;IAC7C,MAAM,CAAC,GAAG,IAAA,oBAAU,GAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,uEAAuE;IACvE,MAAM,WAAW,GAAG,IAAA,4BAAiB,GAAE,CAAC;IAExC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,0BAAW,CAAC,UAAU,EAAE;QACpD,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAoB,CAAC;YACtC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEjC,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAErE,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAe,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,OAAO,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,KAAK,CAAC;YAE3C,6DAA6D;YAC7D,gEAAgE;YAChE,iEAAiE;YACjE,8DAA8D;YAC9D,+DAA+D;YAC/D,uDAAuD;YACvD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,mBAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxE,KAAK,CAAC,qDAAqD,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1F,OAAO,sCAAoB,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,2BAAc,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACzD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC;oBACnD,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC3B,MAAM;oBACN,QAAQ;iBACT,CAAC,CAAC;gBAEH,OAAO;oBACL,MAAM,EAAE,GAAY;oBACpB,IAAI,EAAE;wBACJ,OAAO,EAAE,KAAK;wBACd,MAAM;wBACN,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;wBAClC,QAAQ;qBACT;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,yBAAyB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBACzD,OAAO,6CAA2B,CAAC;YACrC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,IAAA,gCAAsB,EAAC,0BAAW,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAErE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import Crowi from '../../crowi';
|
|
2
|
-
import { Express } from 'express';
|
|
3
|
-
/**
|
|
4
|
-
* POST /api/v2/pages/preview
|
|
5
|
-
*
|
|
6
|
-
* Render arbitrary markdown to mdast for the editor preview pane. The
|
|
7
|
-
* pipeline is shared with the save path so editor preview and page
|
|
8
|
-
* show produce byte-identical trees for the same input — preview is
|
|
9
|
-
* the single source of truth for "what will this body look like when
|
|
10
|
-
* saved" instead of duplicating the renderer on the client.
|
|
11
|
-
*
|
|
12
|
-
* Why a separate handler (not a flag on existing `getPage` / `getRevision`):
|
|
13
|
-
* - The input is raw text that has not been (and may never be)
|
|
14
|
-
* persisted, so the contract has no `page_id` to plumb in.
|
|
15
|
-
* - It does not touch any model — no revision is created, no `seen`
|
|
16
|
-
* bookkeeping fires, no plugin-dispatch cache is consulted (we run
|
|
17
|
-
* the pipeline without a `pageId` so embed-tag / url-inline-expand
|
|
18
|
-
* degrade to plain text, same as orphan-revision fallback).
|
|
19
|
-
*
|
|
20
|
-
* Auth: this handler is mounted under `authenticatedRouter`, so
|
|
21
|
-
* `jwtAuth` already gated the request before we get here. We do not
|
|
22
|
-
* need an additional admin / grant check because the renderer is pure
|
|
23
|
-
* and never reads from the page graph.
|
|
24
|
-
*/
|
|
25
|
-
declare const _default: (crowi: Crowi, _app: Express) => import("express-serve-static-core").Router;
|
|
26
|
-
export default _default;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const express_1 = require("@ts-rest/express");
|
|
7
|
-
const api_contract_1 = require("@crowi/api-contract");
|
|
8
|
-
const express_2 = require("express");
|
|
9
|
-
const ts_rest_helpers_1 = require("../../util/ts-rest-helpers");
|
|
10
|
-
const renderer_1 = require("../../renderer");
|
|
11
|
-
const debug_1 = __importDefault(require("debug"));
|
|
12
|
-
const debug = (0, debug_1.default)('crowi:routes:ts-rest:page-preview');
|
|
13
|
-
/**
|
|
14
|
-
* POST /api/v2/pages/preview
|
|
15
|
-
*
|
|
16
|
-
* Render arbitrary markdown to mdast for the editor preview pane. The
|
|
17
|
-
* pipeline is shared with the save path so editor preview and page
|
|
18
|
-
* show produce byte-identical trees for the same input — preview is
|
|
19
|
-
* the single source of truth for "what will this body look like when
|
|
20
|
-
* saved" instead of duplicating the renderer on the client.
|
|
21
|
-
*
|
|
22
|
-
* Why a separate handler (not a flag on existing `getPage` / `getRevision`):
|
|
23
|
-
* - The input is raw text that has not been (and may never be)
|
|
24
|
-
* persisted, so the contract has no `page_id` to plumb in.
|
|
25
|
-
* - It does not touch any model — no revision is created, no `seen`
|
|
26
|
-
* bookkeeping fires, no plugin-dispatch cache is consulted (we run
|
|
27
|
-
* the pipeline without a `pageId` so embed-tag / url-inline-expand
|
|
28
|
-
* degrade to plain text, same as orphan-revision fallback).
|
|
29
|
-
*
|
|
30
|
-
* Auth: this handler is mounted under `authenticatedRouter`, so
|
|
31
|
-
* `jwtAuth` already gated the request before we get here. We do not
|
|
32
|
-
* need an additional admin / grant check because the renderer is pure
|
|
33
|
-
* and never reads from the page graph.
|
|
34
|
-
*/
|
|
35
|
-
exports.default = (crowi, _app) => {
|
|
36
|
-
const s = (0, express_1.initServer)();
|
|
37
|
-
const router = (0, express_2.Router)();
|
|
38
|
-
const previewRouter = s.router(api_contract_1.apiContract.pagePreview, {
|
|
39
|
-
previewPage: async ({ body: requestBody }) => {
|
|
40
|
-
try {
|
|
41
|
-
// `mode: 'view'` mirrors what `computeRevisionRenderArtifactsAsync`
|
|
42
|
-
// uses for read-path on-the-fly fallback; the registered
|
|
43
|
-
// transforms decide whether to short-circuit based on it.
|
|
44
|
-
// No `pageId` is supplied — plugin-dispatch transforms degrade
|
|
45
|
-
// to plain text in that case, which is the right behaviour for
|
|
46
|
-
// a preview that may belong to no persisted page yet.
|
|
47
|
-
// `getRenderer()` throws if setup hasn't run; the catch maps
|
|
48
|
-
// it to 500 alongside any pipeline failure.
|
|
49
|
-
//
|
|
50
|
-
// We call `run()` (not `runRender()`) so we can grab the raw
|
|
51
|
-
// mdast tree and inject source-line anchors before serialising —
|
|
52
|
-
// see `injectSourceLineAnchors` below.
|
|
53
|
-
const { tree } = await crowi.getRenderer().run(requestBody.body, { mode: 'view' });
|
|
54
|
-
injectSourceLineAnchors(tree);
|
|
55
|
-
return {
|
|
56
|
-
status: 200,
|
|
57
|
-
body: { renderedAst: (0, renderer_1.serializeMdast)(tree) },
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
debug('preview pipeline failed:', err.message);
|
|
62
|
-
return ts_rest_helpers_1.internalServerErrorResponse;
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
(0, express_1.createExpressEndpoints)(api_contract_1.apiContract.pagePreview, previewRouter, router);
|
|
67
|
-
return router;
|
|
68
|
-
};
|
|
69
|
-
function injectSourceLineAnchors(tree) {
|
|
70
|
-
for (const child of tree.children) {
|
|
71
|
-
const line = child.position?.start?.line;
|
|
72
|
-
if (typeof line !== 'number')
|
|
73
|
-
continue;
|
|
74
|
-
const node = child;
|
|
75
|
-
const data = node.data ?? (node.data = {});
|
|
76
|
-
const hProperties = data.hProperties ?? (data.hProperties = {});
|
|
77
|
-
hProperties['data-source-line'] = line;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=page-preview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page-preview.js","sourceRoot":"","sources":["../../../src/routes/ts-rest/page-preview.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsE;AACtE,sDAAkD;AAElD,qCAA0C;AAC1C,8DAAuE;AACvE,2CAA8C;AAE9C,kDAA0B;AAE1B,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,mCAAmC,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,kBAAe,CAAC,KAAY,EAAE,IAAa,EAAE,EAAE;IAC7C,MAAM,CAAC,GAAG,IAAA,oBAAU,GAAE,CAAC;IACvB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,0BAAW,CAAC,WAAW,EAAE;QACtD,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,oEAAoE;gBACpE,yDAAyD;gBACzD,0DAA0D;gBAC1D,+DAA+D;gBAC/D,+DAA+D;gBAC/D,sDAAsD;gBACtD,6DAA6D;gBAC7D,4CAA4C;gBAC5C,EAAE;gBACF,6DAA6D;gBAC7D,iEAAiE;gBACjE,uCAAuC;gBACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBACnF,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO;oBACL,MAAM,EAAE,GAAY;oBACpB,IAAI,EAAE,EAAE,WAAW,EAAE,IAAA,yBAAc,EAAC,IAAI,CAAC,EAAE;iBAC5C,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,0BAA0B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;gBAC1D,OAAO,6CAA2B,CAAC;YACrC,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,IAAA,gCAAsB,EAAC,0BAAW,CAAC,WAAW,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IAEvE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAwBF,SAAS,uBAAuB,CAAC,IAAU;IACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;QACzC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,MAAM,IAAI,GAAG,KAA4B,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAChE,WAAW,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACzC,CAAC;AACH,CAAC"}
|