@crowi/api 2.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/app.d.ts +8 -0
- package/dist/app.js +65 -0
- package/dist/app.js.map +1 -0
- package/dist/collab/attach.d.ts +33 -0
- package/dist/collab/attach.js +341 -0
- package/dist/collab/attach.js.map +1 -0
- package/dist/collab/extension-redis.d.ts +25 -0
- package/dist/collab/extension-redis.js +133 -0
- package/dist/collab/extension-redis.js.map +1 -0
- package/dist/common/functions/path2name.d.ts +1 -0
- package/dist/common/functions/path2name.js +22 -0
- package/dist/common/functions/path2name.js.map +1 -0
- package/dist/common/functions/renderIcon.d.ts +1 -0
- package/dist/common/functions/renderIcon.js +9 -0
- package/dist/common/functions/renderIcon.js.map +1 -0
- package/dist/controllers/admin.d.ts +3 -0
- package/dist/controllers/admin.js +474 -0
- package/dist/controllers/admin.js.map +1 -0
- package/dist/controllers/attachment.d.ts +4 -0
- package/dist/controllers/attachment.js +200 -0
- package/dist/controllers/attachment.js.map +1 -0
- package/dist/controllers/backlink.d.ts +3 -0
- package/dist/controllers/backlink.js +42 -0
- package/dist/controllers/backlink.js.map +1 -0
- package/dist/controllers/bookmark.d.ts +3 -0
- package/dist/controllers/bookmark.js +100 -0
- package/dist/controllers/bookmark.js.map +1 -0
- package/dist/controllers/comment.d.ts +3 -0
- package/dist/controllers/comment.js +111 -0
- package/dist/controllers/comment.js.map +1 -0
- package/dist/controllers/index.d.ts +25 -0
- package/dist/controllers/index.js +44 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/controllers/installer.d.ts +3 -0
- package/dist/controllers/installer.js +48 -0
- package/dist/controllers/installer.js.map +1 -0
- package/dist/controllers/login.d.ts +4 -0
- package/dist/controllers/login.js +438 -0
- package/dist/controllers/login.js.map +1 -0
- package/dist/controllers/logout.d.ts +5 -0
- package/dist/controllers/logout.js +11 -0
- package/dist/controllers/logout.js.map +1 -0
- package/dist/controllers/me.d.ts +4 -0
- package/dist/controllers/me.js +369 -0
- package/dist/controllers/me.js.map +1 -0
- package/dist/controllers/notification.d.ts +3 -0
- package/dist/controllers/notification.js +88 -0
- package/dist/controllers/notification.js.map +1 -0
- package/dist/controllers/page.d.ts +3 -0
- package/dist/controllers/page.js +881 -0
- package/dist/controllers/page.js.map +1 -0
- package/dist/controllers/revision.d.ts +3 -0
- package/dist/controllers/revision.js +91 -0
- package/dist/controllers/revision.js.map +1 -0
- package/dist/controllers/search.d.ts +3 -0
- package/dist/controllers/search.js +93 -0
- package/dist/controllers/search.js.map +1 -0
- package/dist/controllers/share.d.ts +3 -0
- package/dist/controllers/share.js +207 -0
- package/dist/controllers/share.js.map +1 -0
- package/dist/controllers/shareAccess.d.ts +3 -0
- package/dist/controllers/shareAccess.js +28 -0
- package/dist/controllers/shareAccess.js.map +1 -0
- package/dist/controllers/slack.d.ts +3 -0
- package/dist/controllers/slack.js +87 -0
- package/dist/controllers/slack.js.map +1 -0
- package/dist/controllers/tokenAuth.d.ts +10 -0
- package/dist/controllers/tokenAuth.js +292 -0
- package/dist/controllers/tokenAuth.js.map +1 -0
- package/dist/controllers/user.d.ts +3 -0
- package/dist/controllers/user.js +67 -0
- package/dist/controllers/user.js.map +1 -0
- package/dist/controllers/version.d.ts +4 -0
- package/dist/controllers/version.js +19 -0
- package/dist/controllers/version.js.map +1 -0
- package/dist/crowi/express-init.d.ts +4 -0
- package/dist/crowi/express-init.js +101 -0
- package/dist/crowi/express-init.js.map +1 -0
- package/dist/crowi/index.d.ts +245 -0
- package/dist/crowi/index.js +726 -0
- package/dist/crowi/index.js.map +1 -0
- package/dist/events/activity.d.ts +7 -0
- package/dist/events/activity.js +15 -0
- package/dist/events/activity.js.map +1 -0
- package/dist/events/bookmark.d.ts +8 -0
- package/dist/events/bookmark.js +16 -0
- package/dist/events/bookmark.js.map +1 -0
- package/dist/events/comment.d.ts +6 -0
- package/dist/events/comment.js +14 -0
- package/dist/events/comment.js.map +1 -0
- package/dist/events/config.d.ts +6 -0
- package/dist/events/config.js +12 -0
- package/dist/events/config.js.map +1 -0
- package/dist/events/index.d.ts +17 -0
- package/dist/events/index.js +22 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/mention-dispatch.d.ts +44 -0
- package/dist/events/mention-dispatch.js +151 -0
- package/dist/events/mention-dispatch.js.map +1 -0
- package/dist/events/notification.d.ts +7 -0
- package/dist/events/notification.js +15 -0
- package/dist/events/notification.js.map +1 -0
- package/dist/events/page.d.ts +44 -0
- package/dist/events/page.js +134 -0
- package/dist/events/page.js.map +1 -0
- package/dist/events/render-cache.d.ts +24 -0
- package/dist/events/render-cache.js +63 -0
- package/dist/events/render-cache.js.map +1 -0
- package/dist/events/user.d.ts +9 -0
- package/dist/events/user.js +39 -0
- package/dist/events/user.js.map +1 -0
- package/dist/form/admin/app.d.ts +2 -0
- package/dist/form/admin/app.js +9 -0
- package/dist/form/admin/app.js.map +1 -0
- package/dist/form/admin/auth.d.ts +2 -0
- package/dist/form/admin/auth.js +9 -0
- package/dist/form/admin/auth.js.map +1 -0
- package/dist/form/admin/aws.d.ts +2 -0
- package/dist/form/admin/aws.js +13 -0
- package/dist/form/admin/aws.js.map +1 -0
- package/dist/form/admin/github.d.ts +2 -0
- package/dist/form/admin/github.js +15 -0
- package/dist/form/admin/github.js.map +1 -0
- package/dist/form/admin/google.d.ts +2 -0
- package/dist/form/admin/google.js +13 -0
- package/dist/form/admin/google.js.map +1 -0
- package/dist/form/admin/mail.d.ts +2 -0
- package/dist/form/admin/mail.js +13 -0
- package/dist/form/admin/mail.js.map +1 -0
- package/dist/form/admin/sec.d.ts +2 -0
- package/dist/form/admin/sec.js +10 -0
- package/dist/form/admin/sec.js.map +1 -0
- package/dist/form/admin/slackSetting.d.ts +2 -0
- package/dist/form/admin/slackSetting.js +13 -0
- package/dist/form/admin/slackSetting.js.map +1 -0
- package/dist/form/admin/userEdit.d.ts +2 -0
- package/dist/form/admin/userEdit.js +9 -0
- package/dist/form/admin/userEdit.js.map +1 -0
- package/dist/form/admin/userInvite.d.ts +2 -0
- package/dist/form/admin/userInvite.js +9 -0
- package/dist/form/admin/userInvite.js.map +1 -0
- package/dist/form/comment.d.ts +2 -0
- package/dist/form/comment.js +9 -0
- package/dist/form/comment.js.map +1 -0
- package/dist/form/index.d.ts +25 -0
- package/dist/form/index.js +48 -0
- package/dist/form/index.js.map +1 -0
- package/dist/form/invited.d.ts +2 -0
- package/dist/form/invited.js +13 -0
- package/dist/form/invited.js.map +1 -0
- package/dist/form/login.d.ts +2 -0
- package/dist/form/login.js +11 -0
- package/dist/form/login.js.map +1 -0
- package/dist/form/me/apiToken.d.ts +2 -0
- package/dist/form/me/apiToken.js +9 -0
- package/dist/form/me/apiToken.js.map +1 -0
- package/dist/form/me/password.d.ts +2 -0
- package/dist/form/me/password.js +11 -0
- package/dist/form/me/password.js.map +1 -0
- package/dist/form/me/user.d.ts +2 -0
- package/dist/form/me/user.js +9 -0
- package/dist/form/me/user.js.map +1 -0
- package/dist/form/register.d.ts +2 -0
- package/dist/form/register.js +13 -0
- package/dist/form/register.js.map +1 -0
- package/dist/form/revision.d.ts +2 -0
- package/dist/form/revision.js +13 -0
- package/dist/form/revision.js.map +1 -0
- package/dist/hono/app.d.ts +19 -0
- package/dist/hono/app.js +21 -0
- package/dist/hono/app.js.map +1 -0
- package/dist/hono/handlers/_helpers/errors.d.ts +61 -0
- package/dist/hono/handlers/_helpers/errors.js +51 -0
- package/dist/hono/handlers/_helpers/errors.js.map +1 -0
- package/dist/hono/handlers/_helpers/user-shape.d.ts +46 -0
- package/dist/hono/handlers/_helpers/user-shape.js +23 -0
- package/dist/hono/handlers/_helpers/user-shape.js.map +1 -0
- package/dist/hono/handlers/access-token.d.ts +221 -0
- package/dist/hono/handlers/access-token.js +113 -0
- package/dist/hono/handlers/access-token.js.map +1 -0
- package/dist/hono/handlers/activation.d.ts +117 -0
- package/dist/hono/handlers/activation.js +77 -0
- package/dist/hono/handlers/activation.js.map +1 -0
- package/dist/hono/handlers/admin/app.d.ts +123 -0
- package/dist/hono/handlers/admin/app.js +76 -0
- package/dist/hono/handlers/admin/app.js.map +1 -0
- package/dist/hono/handlers/admin/auth.d.ts +127 -0
- package/dist/hono/handlers/admin/auth.js +91 -0
- package/dist/hono/handlers/admin/auth.js.map +1 -0
- package/dist/hono/handlers/admin/mail.d.ts +168 -0
- package/dist/hono/handlers/admin/mail.js +76 -0
- package/dist/hono/handlers/admin/mail.js.map +1 -0
- package/dist/hono/handlers/admin/plugins.d.ts +409 -0
- package/dist/hono/handlers/admin/plugins.js +257 -0
- package/dist/hono/handlers/admin/plugins.js.map +1 -0
- package/dist/hono/handlers/admin/search.d.ts +57 -0
- package/dist/hono/handlers/admin/search.js +55 -0
- package/dist/hono/handlers/admin/search.js.map +1 -0
- package/dist/hono/handlers/admin/security.d.ts +112 -0
- package/dist/hono/handlers/admin/security.js +71 -0
- package/dist/hono/handlers/admin/security.js.map +1 -0
- package/dist/hono/handlers/admin/share.d.ts +106 -0
- package/dist/hono/handlers/admin/share.js +55 -0
- package/dist/hono/handlers/admin/share.js.map +1 -0
- package/dist/hono/handlers/admin/storage.d.ts +55 -0
- package/dist/hono/handlers/admin/storage.js +40 -0
- package/dist/hono/handlers/admin/storage.js.map +1 -0
- package/dist/hono/handlers/admin/users.d.ts +1230 -0
- package/dist/hono/handlers/admin/users.js +316 -0
- package/dist/hono/handlers/admin/users.js.map +1 -0
- package/dist/hono/handlers/adminCrypto.d.ts +110 -0
- package/dist/hono/handlers/adminCrypto.js +151 -0
- package/dist/hono/handlers/adminCrypto.js.map +1 -0
- package/dist/hono/handlers/app.d.ts +26 -0
- package/dist/hono/handlers/app.js +34 -0
- package/dist/hono/handlers/app.js.map +1 -0
- package/dist/hono/handlers/attachment-stream.d.ts +4 -0
- package/dist/hono/handlers/attachment-stream.js +211 -0
- package/dist/hono/handlers/attachment-stream.js.map +1 -0
- package/dist/hono/handlers/attachment.d.ts +687 -0
- package/dist/hono/handlers/attachment.js +566 -0
- package/dist/hono/handlers/attachment.js.map +1 -0
- package/dist/hono/handlers/autocomplete.d.ts +160 -0
- package/dist/hono/handlers/autocomplete.js +181 -0
- package/dist/hono/handlers/autocomplete.js.map +1 -0
- package/dist/hono/handlers/backlink.d.ts +78 -0
- package/dist/hono/handlers/backlink.js +93 -0
- package/dist/hono/handlers/backlink.js.map +1 -0
- package/dist/hono/handlers/bookmark.d.ts +558 -0
- package/dist/hono/handlers/bookmark.js +166 -0
- package/dist/hono/handlers/bookmark.js.map +1 -0
- package/dist/hono/handlers/comment.d.ts +231 -0
- package/dist/hono/handlers/comment.js +191 -0
- package/dist/hono/handlers/comment.js.map +1 -0
- package/dist/hono/handlers/draft.d.ts +136 -0
- package/dist/hono/handlers/draft.js +191 -0
- package/dist/hono/handlers/draft.js.map +1 -0
- package/dist/hono/handlers/emailChange.d.ts +124 -0
- package/dist/hono/handlers/emailChange.js +79 -0
- package/dist/hono/handlers/emailChange.js.map +1 -0
- package/dist/hono/handlers/installer.d.ts +94 -0
- package/dist/hono/handlers/installer.js +93 -0
- package/dist/hono/handlers/installer.js.map +1 -0
- package/dist/hono/handlers/inviteAccept.d.ts +180 -0
- package/dist/hono/handlers/inviteAccept.js +94 -0
- package/dist/hono/handlers/inviteAccept.js.map +1 -0
- package/dist/hono/handlers/me.d.ts +401 -0
- package/dist/hono/handlers/me.js +390 -0
- package/dist/hono/handlers/me.js.map +1 -0
- package/dist/hono/handlers/notification.d.ts +274 -0
- package/dist/hono/handlers/notification.js +224 -0
- package/dist/hono/handlers/notification.js.map +1 -0
- package/dist/hono/handlers/oauth.d.ts +299 -0
- package/dist/hono/handlers/oauth.js +443 -0
- package/dist/hono/handlers/oauth.js.map +1 -0
- package/dist/hono/handlers/page-collab.d.ts +79 -0
- package/dist/hono/handlers/page-collab.js +98 -0
- package/dist/hono/handlers/page-collab.js.map +1 -0
- package/dist/hono/handlers/page-preview.d.ts +48 -0
- package/dist/hono/handlers/page-preview.js +83 -0
- package/dist/hono/handlers/page-preview.js.map +1 -0
- package/dist/hono/handlers/page.d.ts +2059 -0
- package/dist/hono/handlers/page.js +793 -0
- package/dist/hono/handlers/page.js.map +1 -0
- package/dist/hono/handlers/passwordReset.d.ts +181 -0
- package/dist/hono/handlers/passwordReset.js +101 -0
- package/dist/hono/handlers/passwordReset.js.map +1 -0
- package/dist/hono/handlers/presence.d.ts +178 -0
- package/dist/hono/handlers/presence.js +163 -0
- package/dist/hono/handlers/presence.js.map +1 -0
- package/dist/hono/handlers/revision.d.ts +345 -0
- package/dist/hono/handlers/revision.js +202 -0
- package/dist/hono/handlers/revision.js.map +1 -0
- package/dist/hono/handlers/search.d.ts +208 -0
- package/dist/hono/handlers/search.js +152 -0
- package/dist/hono/handlers/search.js.map +1 -0
- package/dist/hono/handlers/tokenAuth.d.ts +369 -0
- package/dist/hono/handlers/tokenAuth.js +240 -0
- package/dist/hono/handlers/tokenAuth.js.map +1 -0
- package/dist/hono/handlers/user.d.ts +710 -0
- package/dist/hono/handlers/user.js +212 -0
- package/dist/hono/handlers/user.js.map +1 -0
- package/dist/hono/index.d.ts +289 -0
- package/dist/hono/index.js +240 -0
- package/dist/hono/index.js.map +1 -0
- package/dist/hono/middleware/admin.d.ts +5 -0
- package/dist/hono/middleware/admin.js +34 -0
- package/dist/hono/middleware/admin.js.map +1 -0
- package/dist/hono/middleware/auth.d.ts +54 -0
- package/dist/hono/middleware/auth.js +142 -0
- package/dist/hono/middleware/auth.js.map +1 -0
- package/dist/hono/middleware/cors.d.ts +3 -0
- package/dist/hono/middleware/cors.js +86 -0
- package/dist/hono/middleware/cors.js.map +1 -0
- package/dist/hono/middleware/default-hook.d.ts +8 -0
- package/dist/hono/middleware/default-hook.js +17 -0
- package/dist/hono/middleware/default-hook.js.map +1 -0
- package/dist/hono/middleware/error-handler.d.ts +2 -0
- package/dist/hono/middleware/error-handler.js +20 -0
- package/dist/hono/middleware/error-handler.js.map +1 -0
- package/dist/hono/middleware/rate-limit.d.ts +57 -0
- package/dist/hono/middleware/rate-limit.js +42 -0
- package/dist/hono/middleware/rate-limit.js.map +1 -0
- package/dist/hono/middleware/require-scope.d.ts +50 -0
- package/dist/hono/middleware/require-scope.js +64 -0
- package/dist/hono/middleware/require-scope.js.map +1 -0
- package/dist/hono/path-rewrite.d.ts +15 -0
- package/dist/hono/path-rewrite.js +59 -0
- package/dist/hono/path-rewrite.js.map +1 -0
- package/dist/mail/i18n/en.d.ts +2 -0
- package/dist/mail/i18n/en.js +66 -0
- package/dist/mail/i18n/en.js.map +1 -0
- package/dist/mail/i18n/index.d.ts +46 -0
- package/dist/mail/i18n/index.js +31 -0
- package/dist/mail/i18n/index.js.map +1 -0
- package/dist/mail/i18n/ja.d.ts +2 -0
- package/dist/mail/i18n/ja.js +66 -0
- package/dist/mail/i18n/ja.js.map +1 -0
- package/dist/mcp/attach.d.ts +25 -0
- package/dist/mcp/attach.js +104 -0
- package/dist/mcp/attach.js.map +1 -0
- package/dist/mcp/dispatch.d.ts +59 -0
- package/dist/mcp/dispatch.js +70 -0
- package/dist/mcp/dispatch.js.map +1 -0
- package/dist/mcp/result.d.ts +40 -0
- package/dist/mcp/result.js +78 -0
- package/dist/mcp/result.js.map +1 -0
- package/dist/mcp/server.d.ts +67 -0
- package/dist/mcp/server.js +113 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/page.d.ts +2 -0
- package/dist/mcp/tools/page.js +256 -0
- package/dist/mcp/tools/page.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +2 -0
- package/dist/mcp/tools/search.js +36 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/middlewares/accessTokenParser.d.ts +4 -0
- package/dist/middlewares/accessTokenParser.js +29 -0
- package/dist/middlewares/accessTokenParser.js.map +1 -0
- package/dist/middlewares/adminRequired.d.ts +10 -0
- package/dist/middlewares/adminRequired.js +35 -0
- package/dist/middlewares/adminRequired.js.map +1 -0
- package/dist/middlewares/applicationInstalled.d.ts +3 -0
- package/dist/middlewares/applicationInstalled.js +20 -0
- package/dist/middlewares/applicationInstalled.js.map +1 -0
- package/dist/middlewares/applicationNotInstalled.d.ts +3 -0
- package/dist/middlewares/applicationNotInstalled.js +13 -0
- package/dist/middlewares/applicationNotInstalled.js.map +1 -0
- package/dist/middlewares/basicAuth.d.ts +4 -0
- package/dist/middlewares/basicAuth.js +23 -0
- package/dist/middlewares/basicAuth.js.map +1 -0
- package/dist/middlewares/csrfVerify.d.ts +4 -0
- package/dist/middlewares/csrfVerify.js +24 -0
- package/dist/middlewares/csrfVerify.js.map +1 -0
- package/dist/middlewares/encodeSpace.d.ts +3 -0
- package/dist/middlewares/encodeSpace.js +14 -0
- package/dist/middlewares/encodeSpace.js.map +1 -0
- package/dist/middlewares/fileAccessRightOrLoginRequired.d.ts +4 -0
- package/dist/middlewares/fileAccessRightOrLoginRequired.js +29 -0
- package/dist/middlewares/fileAccessRightOrLoginRequired.js.map +1 -0
- package/dist/middlewares/index.d.ts +16 -0
- package/dist/middlewares/index.js +30 -0
- package/dist/middlewares/index.js.map +1 -0
- package/dist/middlewares/jwtAdminRequired.d.ts +8 -0
- package/dist/middlewares/jwtAdminRequired.js +35 -0
- package/dist/middlewares/jwtAdminRequired.js.map +1 -0
- package/dist/middlewares/jwtAuth.d.ts +4 -0
- package/dist/middlewares/jwtAuth.js +104 -0
- package/dist/middlewares/jwtAuth.js.map +1 -0
- package/dist/middlewares/loginChecker.d.ts +4 -0
- package/dist/middlewares/loginChecker.js +32 -0
- package/dist/middlewares/loginChecker.js.map +1 -0
- package/dist/middlewares/loginRequired.d.ts +4 -0
- package/dist/middlewares/loginRequired.js +88 -0
- package/dist/middlewares/loginRequired.js.map +1 -0
- package/dist/migration/cli-api.d.ts +83 -0
- package/dist/migration/cli-api.js +128 -0
- package/dist/migration/cli-api.js.map +1 -0
- package/dist/migration/migrations/index.d.ts +12 -0
- package/dist/migration/migrations/index.js +24 -0
- package/dist/migration/migrations/index.js.map +1 -0
- package/dist/migration/migrations/page-status-default.d.ts +25 -0
- package/dist/migration/migrations/page-status-default.js +79 -0
- package/dist/migration/migrations/page-status-default.js.map +1 -0
- package/dist/migration/migrations/revisions-schema-unify.d.ts +33 -0
- package/dist/migration/migrations/revisions-schema-unify.js +88 -0
- package/dist/migration/migrations/revisions-schema-unify.js.map +1 -0
- package/dist/migration/migrations/user-unique-prepare.d.ts +1 -0
- package/dist/migration/migrations/user-unique-prepare.js +214 -0
- package/dist/migration/migrations/user-unique-prepare.js.map +1 -0
- package/dist/migration/migrations/wikilink-format.d.ts +97 -0
- package/dist/migration/migrations/wikilink-format.js +418 -0
- package/dist/migration/migrations/wikilink-format.js.map +1 -0
- package/dist/migration/rebuild-api.d.ts +50 -0
- package/dist/migration/rebuild-api.js +45 -0
- package/dist/migration/rebuild-api.js.map +1 -0
- package/dist/migration/rebuild-runner.d.ts +64 -0
- package/dist/migration/rebuild-runner.js +42 -0
- package/dist/migration/rebuild-runner.js.map +1 -0
- package/dist/migration/rebuilds/index.d.ts +26 -0
- package/dist/migration/rebuilds/index.js +69 -0
- package/dist/migration/rebuilds/index.js.map +1 -0
- package/dist/migration/registry.d.ts +15 -0
- package/dist/migration/registry.js +96 -0
- package/dist/migration/registry.js.map +1 -0
- package/dist/migration/run-boot-migrations.d.ts +31 -0
- package/dist/migration/run-boot-migrations.js +95 -0
- package/dist/migration/run-boot-migrations.js.map +1 -0
- package/dist/migration/runner.d.ts +120 -0
- package/dist/migration/runner.js +276 -0
- package/dist/migration/runner.js.map +1 -0
- package/dist/migration/types.d.ts +153 -0
- package/dist/migration/types.js +13 -0
- package/dist/migration/types.js.map +1 -0
- package/dist/models/activity.d.ts +34 -0
- package/dist/models/activity.js +263 -0
- package/dist/models/activity.js.map +1 -0
- package/dist/models/attachment.d.ts +25 -0
- package/dist/models/attachment.js +82 -0
- package/dist/models/attachment.js.map +1 -0
- package/dist/models/backlink.d.ts +19 -0
- package/dist/models/backlink.js +138 -0
- package/dist/models/backlink.js.map +1 -0
- package/dist/models/bookmark.d.ts +28 -0
- package/dist/models/bookmark.js +136 -0
- package/dist/models/bookmark.js.map +1 -0
- package/dist/models/comment.d.ts +21 -0
- package/dist/models/comment.js +87 -0
- package/dist/models/comment.js.map +1 -0
- package/dist/models/config-sensitive.d.ts +21 -0
- package/dist/models/config-sensitive.js +71 -0
- package/dist/models/config-sensitive.js.map +1 -0
- package/dist/models/config.d.ts +34 -0
- package/dist/models/config.js +161 -0
- package/dist/models/config.js.map +1 -0
- package/dist/models/index.d.ts +30 -0
- package/dist/models/index.js +55 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/migration-application.d.ts +54 -0
- package/dist/models/migration-application.js +36 -0
- package/dist/models/migration-application.js.map +1 -0
- package/dist/models/notification.d.ts +28 -0
- package/dist/models/notification.js +285 -0
- package/dist/models/notification.js.map +1 -0
- package/dist/models/oauth-authorization-code.d.ts +34 -0
- package/dist/models/oauth-authorization-code.js +100 -0
- package/dist/models/oauth-authorization-code.js.map +1 -0
- package/dist/models/oauth-client.d.ts +36 -0
- package/dist/models/oauth-client.js +56 -0
- package/dist/models/oauth-client.js.map +1 -0
- package/dist/models/oauth-device-code.d.ts +55 -0
- package/dist/models/oauth-device-code.js +158 -0
- package/dist/models/oauth-device-code.js.map +1 -0
- package/dist/models/oauth-refresh-token.d.ts +31 -0
- package/dist/models/oauth-refresh-token.js +118 -0
- package/dist/models/oauth-refresh-token.js.map +1 -0
- package/dist/models/page-yjs-update.d.ts +35 -0
- package/dist/models/page-yjs-update.js +33 -0
- package/dist/models/page-yjs-update.js.map +1 -0
- package/dist/models/page.d.ts +200 -0
- package/dist/models/page.js +1117 -0
- package/dist/models/page.js.map +1 -0
- package/dist/models/personal-access-token.d.ts +30 -0
- package/dist/models/personal-access-token.js +107 -0
- package/dist/models/personal-access-token.js.map +1 -0
- package/dist/models/plugin-render-cache.d.ts +40 -0
- package/dist/models/plugin-render-cache.js +39 -0
- package/dist/models/plugin-render-cache.js.map +1 -0
- package/dist/models/revision.d.ts +145 -0
- package/dist/models/revision.js +241 -0
- package/dist/models/revision.js.map +1 -0
- package/dist/models/share.d.ts +38 -0
- package/dist/models/share.js +137 -0
- package/dist/models/share.js.map +1 -0
- package/dist/models/shareAccess.d.ts +20 -0
- package/dist/models/shareAccess.js +45 -0
- package/dist/models/shareAccess.js.map +1 -0
- package/dist/models/tracking.d.ts +14 -0
- package/dist/models/tracking.js +14 -0
- package/dist/models/tracking.js.map +1 -0
- package/dist/models/updatePost.d.ts +25 -0
- package/dist/models/updatePost.js +87 -0
- package/dist/models/updatePost.js.map +1 -0
- package/dist/models/user.d.ts +144 -0
- package/dist/models/user.js +681 -0
- package/dist/models/user.js.map +1 -0
- package/dist/models/watcher.d.ts +23 -0
- package/dist/models/watcher.js +75 -0
- package/dist/models/watcher.js.map +1 -0
- package/dist/notifications/attach.d.ts +63 -0
- package/dist/notifications/attach.js +426 -0
- package/dist/notifications/attach.js.map +1 -0
- package/dist/notifications/channel.d.ts +13 -0
- package/dist/notifications/channel.js +18 -0
- package/dist/notifications/channel.js.map +1 -0
- package/dist/plugin/index.d.ts +2 -0
- package/dist/plugin/index.js +6 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/plugin/plugin-context.d.ts +22 -0
- package/dist/plugin/plugin-context.js +126 -0
- package/dist/plugin/plugin-context.js.map +1 -0
- package/dist/plugin/plugin-manager.d.ts +164 -0
- package/dist/plugin/plugin-manager.js +328 -0
- package/dist/plugin/plugin-manager.js.map +1 -0
- package/dist/plugin/plugin-namespace.d.ts +28 -0
- package/dist/plugin/plugin-namespace.js +53 -0
- package/dist/plugin/plugin-namespace.js.map +1 -0
- package/dist/plugin/registries.d.ts +38 -0
- package/dist/plugin/registries.js +71 -0
- package/dist/plugin/registries.js.map +1 -0
- package/dist/plugin/schema-serializer.d.ts +34 -0
- package/dist/plugin/schema-serializer.js +122 -0
- package/dist/plugin/schema-serializer.js.map +1 -0
- package/dist/plugin/topo-sort.d.ts +15 -0
- package/dist/plugin/topo-sort.js +59 -0
- package/dist/plugin/topo-sort.js.map +1 -0
- package/dist/presence/attach.d.ts +36 -0
- package/dist/presence/attach.js +399 -0
- package/dist/presence/attach.js.map +1 -0
- package/dist/renderer/__fixtures__/echo-embed.d.ts +27 -0
- package/dist/renderer/__fixtures__/echo-embed.js +24 -0
- package/dist/renderer/__fixtures__/echo-embed.js.map +1 -0
- package/dist/renderer/cache/index.d.ts +60 -0
- package/dist/renderer/cache/index.js +219 -0
- package/dist/renderer/cache/index.js.map +1 -0
- package/dist/renderer/cache/mongodb-cache.d.ts +82 -0
- package/dist/renderer/cache/mongodb-cache.js +180 -0
- package/dist/renderer/cache/mongodb-cache.js.map +1 -0
- package/dist/renderer/cache/reservation.d.ts +20 -0
- package/dist/renderer/cache/reservation.js +115 -0
- package/dist/renderer/cache/reservation.js.map +1 -0
- package/dist/renderer/core/_mdast-walk.d.ts +35 -0
- package/dist/renderer/core/_mdast-walk.js +45 -0
- package/dist/renderer/core/_mdast-walk.js.map +1 -0
- package/dist/renderer/core/code-block-dispatch.d.ts +31 -0
- package/dist/renderer/core/code-block-dispatch.js +166 -0
- package/dist/renderer/core/code-block-dispatch.js.map +1 -0
- package/dist/renderer/core/code-blocks.d.ts +12 -0
- package/dist/renderer/core/code-blocks.js +32 -0
- package/dist/renderer/core/code-blocks.js.map +1 -0
- package/dist/renderer/core/embed-tags.d.ts +14 -0
- package/dist/renderer/core/embed-tags.js +154 -0
- package/dist/renderer/core/embed-tags.js.map +1 -0
- package/dist/renderer/core/headings.d.ts +16 -0
- package/dist/renderer/core/headings.js +31 -0
- package/dist/renderer/core/headings.js.map +1 -0
- package/dist/renderer/core/index.d.ts +65 -0
- package/dist/renderer/core/index.js +83 -0
- package/dist/renderer/core/index.js.map +1 -0
- package/dist/renderer/core/mention-resolve.d.ts +39 -0
- package/dist/renderer/core/mention-resolve.js +75 -0
- package/dist/renderer/core/mention-resolve.js.map +1 -0
- package/dist/renderer/core/mentions.d.ts +2 -0
- package/dist/renderer/core/mentions.js +83 -0
- package/dist/renderer/core/mentions.js.map +1 -0
- package/dist/renderer/core/syntax-highlight.d.ts +21 -0
- package/dist/renderer/core/syntax-highlight.js +64 -0
- package/dist/renderer/core/syntax-highlight.js.map +1 -0
- package/dist/renderer/core/url-inline-expand.d.ts +9 -0
- package/dist/renderer/core/url-inline-expand.js +157 -0
- package/dist/renderer/core/url-inline-expand.js.map +1 -0
- package/dist/renderer/core/wikilinks.d.ts +2 -0
- package/dist/renderer/core/wikilinks.js +118 -0
- package/dist/renderer/core/wikilinks.js.map +1 -0
- package/dist/renderer/index.d.ts +67 -0
- package/dist/renderer/index.js +99 -0
- package/dist/renderer/index.js.map +1 -0
- package/dist/renderer/pipeline.d.ts +134 -0
- package/dist/renderer/pipeline.js +203 -0
- package/dist/renderer/pipeline.js.map +1 -0
- package/dist/renderer/registry.d.ts +83 -0
- package/dist/renderer/registry.js +130 -0
- package/dist/renderer/registry.js.map +1 -0
- package/dist/renderer/serialize.d.ts +27 -0
- package/dist/renderer/serialize.js +46 -0
- package/dist/renderer/serialize.js.map +1 -0
- package/dist/renderer/version.d.ts +30 -0
- package/dist/renderer/version.js +34 -0
- package/dist/renderer/version.js.map +1 -0
- package/dist/routes/admin.d.ts +4 -0
- package/dist/routes/admin.js +17 -0
- package/dist/routes/admin.js.map +1 -0
- package/dist/routes/api/admin.d.ts +4 -0
- package/dist/routes/api/admin.js +37 -0
- package/dist/routes/api/admin.js.map +1 -0
- package/dist/routes/api/attachment.d.ts +4 -0
- package/dist/routes/api/attachment.js +19 -0
- package/dist/routes/api/attachment.js.map +1 -0
- package/dist/routes/api/bookmark.d.ts +4 -0
- package/dist/routes/api/bookmark.js +15 -0
- package/dist/routes/api/bookmark.js.map +1 -0
- package/dist/routes/api/comment.d.ts +4 -0
- package/dist/routes/api/comment.js +14 -0
- package/dist/routes/api/comment.js.map +1 -0
- package/dist/routes/api/index.d.ts +4 -0
- package/dist/routes/api/index.js +36 -0
- package/dist/routes/api/index.js.map +1 -0
- package/dist/routes/api/like.d.ts +4 -0
- package/dist/routes/api/like.js +13 -0
- package/dist/routes/api/like.js.map +1 -0
- package/dist/routes/api/notification.d.ts +4 -0
- package/dist/routes/api/notification.js +15 -0
- package/dist/routes/api/notification.js.map +1 -0
- package/dist/routes/api/page.d.ts +4 -0
- package/dist/routes/api/page.js +24 -0
- package/dist/routes/api/page.js.map +1 -0
- package/dist/routes/api/revision.d.ts +4 -0
- package/dist/routes/api/revision.js +14 -0
- package/dist/routes/api/revision.js.map +1 -0
- package/dist/routes/api/share.d.ts +4 -0
- package/dist/routes/api/share.js +16 -0
- package/dist/routes/api/share.js.map +1 -0
- package/dist/routes/api/version.d.ts +4 -0
- package/dist/routes/api/version.js +10 -0
- package/dist/routes/api/version.js.map +1 -0
- package/dist/routes/index.d.ts +4 -0
- package/dist/routes/index.js +71 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/login.d.ts +4 -0
- package/dist/routes/login.js +18 -0
- package/dist/routes/login.js.map +1 -0
- package/dist/routes/me.d.ts +4 -0
- package/dist/routes/me.js +24 -0
- package/dist/routes/me.js.map +1 -0
- package/dist/routes/ts-rest/admin/app.d.ts +4 -0
- package/dist/routes/ts-rest/admin/app.js +67 -0
- package/dist/routes/ts-rest/admin/app.js.map +1 -0
- package/dist/routes/ts-rest/admin/auth.d.ts +4 -0
- package/dist/routes/ts-rest/admin/auth.js +95 -0
- package/dist/routes/ts-rest/admin/auth.js.map +1 -0
- package/dist/routes/ts-rest/admin/index.d.ts +10 -0
- package/dist/routes/ts-rest/admin/index.js +35 -0
- package/dist/routes/ts-rest/admin/index.js.map +1 -0
- package/dist/routes/ts-rest/admin/mail.d.ts +4 -0
- package/dist/routes/ts-rest/admin/mail.js +156 -0
- package/dist/routes/ts-rest/admin/mail.js.map +1 -0
- package/dist/routes/ts-rest/admin/plugins.d.ts +4 -0
- package/dist/routes/ts-rest/admin/plugins.js +317 -0
- package/dist/routes/ts-rest/admin/plugins.js.map +1 -0
- package/dist/routes/ts-rest/admin/search.d.ts +4 -0
- package/dist/routes/ts-rest/admin/search.js +67 -0
- package/dist/routes/ts-rest/admin/search.js.map +1 -0
- package/dist/routes/ts-rest/admin/security.d.ts +4 -0
- package/dist/routes/ts-rest/admin/security.js +114 -0
- package/dist/routes/ts-rest/admin/security.js.map +1 -0
- package/dist/routes/ts-rest/admin/share.d.ts +4 -0
- package/dist/routes/ts-rest/admin/share.js +69 -0
- package/dist/routes/ts-rest/admin/share.js.map +1 -0
- package/dist/routes/ts-rest/admin/storage.d.ts +4 -0
- package/dist/routes/ts-rest/admin/storage.js +59 -0
- package/dist/routes/ts-rest/admin/storage.js.map +1 -0
- package/dist/routes/ts-rest/admin/users.d.ts +4 -0
- package/dist/routes/ts-rest/admin/users.js +215 -0
- package/dist/routes/ts-rest/admin/users.js.map +1 -0
- package/dist/routes/ts-rest/adminCrypto.d.ts +4 -0
- package/dist/routes/ts-rest/adminCrypto.js +111 -0
- package/dist/routes/ts-rest/adminCrypto.js.map +1 -0
- package/dist/routes/ts-rest/app.d.ts +4 -0
- package/dist/routes/ts-rest/app.js +23 -0
- package/dist/routes/ts-rest/app.js.map +1 -0
- package/dist/routes/ts-rest/attachment.d.ts +4 -0
- package/dist/routes/ts-rest/attachment.js +830 -0
- package/dist/routes/ts-rest/attachment.js.map +1 -0
- package/dist/routes/ts-rest/auth.d.ts +4 -0
- package/dist/routes/ts-rest/auth.js +70 -0
- package/dist/routes/ts-rest/auth.js.map +1 -0
- package/dist/routes/ts-rest/autocomplete.d.ts +30 -0
- package/dist/routes/ts-rest/autocomplete.js +189 -0
- package/dist/routes/ts-rest/autocomplete.js.map +1 -0
- package/dist/routes/ts-rest/backlink.d.ts +4 -0
- package/dist/routes/ts-rest/backlink.js +106 -0
- package/dist/routes/ts-rest/backlink.js.map +1 -0
- package/dist/routes/ts-rest/bookmark.d.ts +4 -0
- package/dist/routes/ts-rest/bookmark.js +189 -0
- package/dist/routes/ts-rest/bookmark.js.map +1 -0
- package/dist/routes/ts-rest/comment.d.ts +4 -0
- package/dist/routes/ts-rest/comment.js +217 -0
- package/dist/routes/ts-rest/comment.js.map +1 -0
- package/dist/routes/ts-rest/draft.d.ts +22 -0
- package/dist/routes/ts-rest/draft.js +200 -0
- package/dist/routes/ts-rest/draft.js.map +1 -0
- package/dist/routes/ts-rest/index.d.ts +4 -0
- package/dist/routes/ts-rest/index.js +103 -0
- package/dist/routes/ts-rest/index.js.map +1 -0
- package/dist/routes/ts-rest/installer.d.ts +4 -0
- package/dist/routes/ts-rest/installer.js +77 -0
- package/dist/routes/ts-rest/installer.js.map +1 -0
- package/dist/routes/ts-rest/me.d.ts +4 -0
- package/dist/routes/ts-rest/me.js +410 -0
- package/dist/routes/ts-rest/me.js.map +1 -0
- package/dist/routes/ts-rest/notification.d.ts +4 -0
- package/dist/routes/ts-rest/notification.js +241 -0
- package/dist/routes/ts-rest/notification.js.map +1 -0
- package/dist/routes/ts-rest/page-collab.d.ts +29 -0
- package/dist/routes/ts-rest/page-collab.js +90 -0
- package/dist/routes/ts-rest/page-collab.js.map +1 -0
- package/dist/routes/ts-rest/page-preview.d.ts +26 -0
- package/dist/routes/ts-rest/page-preview.js +80 -0
- package/dist/routes/ts-rest/page-preview.js.map +1 -0
- package/dist/routes/ts-rest/page.d.ts +4 -0
- package/dist/routes/ts-rest/page.js +676 -0
- package/dist/routes/ts-rest/page.js.map +1 -0
- package/dist/routes/ts-rest/presence.d.ts +30 -0
- package/dist/routes/ts-rest/presence.js +155 -0
- package/dist/routes/ts-rest/presence.js.map +1 -0
- package/dist/routes/ts-rest/revision.d.ts +4 -0
- package/dist/routes/ts-rest/revision.js +240 -0
- package/dist/routes/ts-rest/revision.js.map +1 -0
- package/dist/routes/ts-rest/search.d.ts +4 -0
- package/dist/routes/ts-rest/search.js +121 -0
- package/dist/routes/ts-rest/search.js.map +1 -0
- package/dist/routes/ts-rest/tokenAuth.d.ts +4 -0
- package/dist/routes/ts-rest/tokenAuth.js +94 -0
- package/dist/routes/ts-rest/tokenAuth.js.map +1 -0
- package/dist/routes/ts-rest/user.d.ts +4 -0
- package/dist/routes/ts-rest/user.js +307 -0
- package/dist/routes/ts-rest/user.js.map +1 -0
- package/dist/service/config.d.ts +50 -0
- package/dist/service/config.js +202 -0
- package/dist/service/config.js.map +1 -0
- package/dist/service/lru.d.ts +11 -0
- package/dist/service/lru.js +47 -0
- package/dist/service/lru.js.map +1 -0
- package/dist/service/mail.d.ts +107 -0
- package/dist/service/mail.js +220 -0
- package/dist/service/mail.js.map +1 -0
- package/dist/service/notification.d.ts +9 -0
- package/dist/service/notification.js +19 -0
- package/dist/service/notification.js.map +1 -0
- package/dist/service/presence.d.ts +219 -0
- package/dist/service/presence.js +602 -0
- package/dist/service/presence.js.map +1 -0
- package/dist/types/error.d.ts +13 -0
- package/dist/types/error.js +13 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/express.d.ts +34 -0
- package/dist/types/express.js +50 -0
- package/dist/types/express.js.map +1 -0
- package/dist/types/mongoose-extensions.d.ts +8 -0
- package/dist/types/mongoose-extensions.js +24 -0
- package/dist/types/mongoose-extensions.js.map +1 -0
- package/dist/util/accessTokenParser.d.ts +1 -0
- package/dist/util/accessTokenParser.js +34 -0
- package/dist/util/accessTokenParser.js.map +1 -0
- package/dist/util/activityDefine.d.ts +15 -0
- package/dist/util/activityDefine.js +52 -0
- package/dist/util/activityDefine.js.map +1 -0
- package/dist/util/admin-config.d.ts +57 -0
- package/dist/util/admin-config.js +99 -0
- package/dist/util/admin-config.js.map +1 -0
- package/dist/util/admin-pager.d.ts +24 -0
- package/dist/util/admin-pager.js +73 -0
- package/dist/util/admin-pager.js.map +1 -0
- package/dist/util/apiPaginate.d.ts +11 -0
- package/dist/util/apiPaginate.js +33 -0
- package/dist/util/apiPaginate.js.map +1 -0
- package/dist/util/apiResponse.d.ts +9 -0
- package/dist/util/apiResponse.js +23 -0
- package/dist/util/apiResponse.js.map +1 -0
- package/dist/util/auth.d.ts +11 -0
- package/dist/util/auth.js +48 -0
- package/dist/util/auth.js.map +1 -0
- package/dist/util/auto-watch.d.ts +35 -0
- package/dist/util/auto-watch.js +24 -0
- package/dist/util/auto-watch.js.map +1 -0
- package/dist/util/autocomplete-match.d.ts +44 -0
- package/dist/util/autocomplete-match.js +80 -0
- package/dist/util/autocomplete-match.js.map +1 -0
- package/dist/util/aws-config-migration.d.ts +11 -0
- package/dist/util/aws-config-migration.js +68 -0
- package/dist/util/aws-config-migration.js.map +1 -0
- package/dist/util/boot-reporter.d.ts +130 -0
- package/dist/util/boot-reporter.js +242 -0
- package/dist/util/boot-reporter.js.map +1 -0
- package/dist/util/collab-cap.d.ts +39 -0
- package/dist/util/collab-cap.js +90 -0
- package/dist/util/collab-cap.js.map +1 -0
- package/dist/util/crypto.d.ts +39 -0
- package/dist/util/crypto.js +105 -0
- package/dist/util/crypto.js.map +1 -0
- package/dist/util/dedup-users.d.ts +96 -0
- package/dist/util/dedup-users.js +149 -0
- package/dist/util/dedup-users.js.map +1 -0
- package/dist/util/editor-cap-counter.d.ts +90 -0
- package/dist/util/editor-cap-counter.js +175 -0
- package/dist/util/editor-cap-counter.js.map +1 -0
- package/dist/util/fileUploader.d.ts +55 -0
- package/dist/util/fileUploader.js +70 -0
- package/dist/util/fileUploader.js.map +1 -0
- package/dist/util/formUtil.d.ts +2 -0
- package/dist/util/formUtil.js +15 -0
- package/dist/util/formUtil.js.map +1 -0
- package/dist/util/githubAuth.d.ts +2 -0
- package/dist/util/githubAuth.js +82 -0
- package/dist/util/githubAuth.js.map +1 -0
- package/dist/util/googleAuth.d.ts +2 -0
- package/dist/util/googleAuth.js +85 -0
- package/dist/util/googleAuth.js.map +1 -0
- package/dist/util/jwt.d.ts +50 -0
- package/dist/util/jwt.js +127 -0
- package/dist/util/jwt.js.map +1 -0
- package/dist/util/linkDetector.d.ts +3 -0
- package/dist/util/linkDetector.js +91 -0
- package/dist/util/linkDetector.js.map +1 -0
- package/dist/util/mail-token.d.ts +24 -0
- package/dist/util/mail-token.js +117 -0
- package/dist/util/mail-token.js.map +1 -0
- package/dist/util/mailer.d.ts +7 -0
- package/dist/util/mailer.js +98 -0
- package/dist/util/mailer.js.map +1 -0
- package/dist/util/map-duplicate-key-error.d.ts +26 -0
- package/dist/util/map-duplicate-key-error.js +41 -0
- package/dist/util/map-duplicate-key-error.js.map +1 -0
- package/dist/util/mongoose-paginate.d.ts +10 -0
- package/dist/util/mongoose-paginate.js +23 -0
- package/dist/util/mongoose-paginate.js.map +1 -0
- package/dist/util/notifications-token.d.ts +35 -0
- package/dist/util/notifications-token.js +140 -0
- package/dist/util/notifications-token.js.map +1 -0
- package/dist/util/oauth-client-seed.d.ts +2 -0
- package/dist/util/oauth-client-seed.js +48 -0
- package/dist/util/oauth-client-seed.js.map +1 -0
- package/dist/util/oauth-redirect-uri.d.ts +2 -0
- package/dist/util/oauth-redirect-uri.js +55 -0
- package/dist/util/oauth-redirect-uri.js.map +1 -0
- package/dist/util/page-response.d.ts +113 -0
- package/dist/util/page-response.js +154 -0
- package/dist/util/page-response.js.map +1 -0
- package/dist/util/page-search-index.d.ts +19 -0
- package/dist/util/page-search-index.js +91 -0
- package/dist/util/page-search-index.js.map +1 -0
- package/dist/util/page-status-migration.d.ts +23 -0
- package/dist/util/page-status-migration.js +48 -0
- package/dist/util/page-status-migration.js.map +1 -0
- package/dist/util/path.d.ts +2 -0
- package/dist/util/path.js +12 -0
- package/dist/util/path.js.map +1 -0
- package/dist/util/pkce.d.ts +13 -0
- package/dist/util/pkce.js +30 -0
- package/dist/util/pkce.js.map +1 -0
- package/dist/util/presence-token.d.ts +21 -0
- package/dist/util/presence-token.js +120 -0
- package/dist/util/presence-token.js.map +1 -0
- package/dist/util/rate-limit.d.ts +67 -0
- package/dist/util/rate-limit.js +87 -0
- package/dist/util/rate-limit.js.map +1 -0
- package/dist/util/rebuild-backlink.d.ts +25 -0
- package/dist/util/rebuild-backlink.js +7 -0
- package/dist/util/rebuild-backlink.js.map +1 -0
- package/dist/util/rebuild-renderer.d.ts +31 -0
- package/dist/util/rebuild-renderer.js +7 -0
- package/dist/util/rebuild-renderer.js.map +1 -0
- package/dist/util/redis-opts.d.ts +17 -0
- package/dist/util/redis-opts.js +40 -0
- package/dist/util/redis-opts.js.map +1 -0
- package/dist/util/regex.d.ts +2 -0
- package/dist/util/regex.js +8 -0
- package/dist/util/regex.js.map +1 -0
- package/dist/util/search-rebuild.d.ts +18 -0
- package/dist/util/search-rebuild.js +28 -0
- package/dist/util/search-rebuild.js.map +1 -0
- package/dist/util/ssr.d.ts +3 -0
- package/dist/util/ssr.js +9 -0
- package/dist/util/ssr.js.map +1 -0
- package/dist/util/storage-copy.d.ts +40 -0
- package/dist/util/storage-copy.js +123 -0
- package/dist/util/storage-copy.js.map +1 -0
- package/dist/util/ts-rest-helpers.d.ts +110 -0
- package/dist/util/ts-rest-helpers.js +110 -0
- package/dist/util/ts-rest-helpers.js.map +1 -0
- package/dist/util/url.d.ts +1 -0
- package/dist/util/url.js +11 -0
- package/dist/util/url.js.map +1 -0
- package/dist/util/user-code.d.ts +10 -0
- package/dist/util/user-code.js +55 -0
- package/dist/util/user-code.js.map +1 -0
- package/dist/util/view.d.ts +10 -0
- package/dist/util/view.js +99 -0
- package/dist/util/view.js.map +1 -0
- package/dist/util/watcher-backfill.d.ts +30 -0
- package/dist/util/watcher-backfill.js +43 -0
- package/dist/util/watcher-backfill.js.map +1 -0
- package/dist/util/ws-token.d.ts +24 -0
- package/dist/util/ws-token.js +134 -0
- package/dist/util/ws-token.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type { OpenAPIHono } from '@hono/zod-openapi';
|
|
2
|
+
import type Crowi from '../../crowi';
|
|
3
|
+
import type { CrowiHonoBindings } from '../app';
|
|
4
|
+
export declare const registerAutocompleteRoutes: <E extends OpenAPIHono<CrowiHonoBindings>>(app: E, crowi: Crowi) => OpenAPIHono<CrowiHonoBindings, {
|
|
5
|
+
"/users/autocomplete": {
|
|
6
|
+
$get: {
|
|
7
|
+
input: {
|
|
8
|
+
query: {
|
|
9
|
+
q: string;
|
|
10
|
+
limit?: unknown;
|
|
11
|
+
anchor?: "substring" | "prefix" | undefined;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
output: {
|
|
15
|
+
results: {
|
|
16
|
+
id: string;
|
|
17
|
+
label: string;
|
|
18
|
+
display: string;
|
|
19
|
+
score: number;
|
|
20
|
+
avatar?: string | null | undefined;
|
|
21
|
+
modifiedAt?: string | null | undefined;
|
|
22
|
+
}[];
|
|
23
|
+
};
|
|
24
|
+
outputFormat: "json";
|
|
25
|
+
status: 200;
|
|
26
|
+
} | {
|
|
27
|
+
input: {
|
|
28
|
+
query: {
|
|
29
|
+
q: string;
|
|
30
|
+
limit?: unknown;
|
|
31
|
+
anchor?: "substring" | "prefix" | undefined;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
output: {
|
|
35
|
+
error: {
|
|
36
|
+
code: "VALIDATION_ERROR";
|
|
37
|
+
message: string;
|
|
38
|
+
details?: {
|
|
39
|
+
fieldErrors: {
|
|
40
|
+
[x: string]: string[];
|
|
41
|
+
};
|
|
42
|
+
formErrors: string[];
|
|
43
|
+
} | undefined;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
outputFormat: "json";
|
|
47
|
+
status: 400;
|
|
48
|
+
} | {
|
|
49
|
+
input: {
|
|
50
|
+
query: {
|
|
51
|
+
q: string;
|
|
52
|
+
limit?: unknown;
|
|
53
|
+
anchor?: "substring" | "prefix" | undefined;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
output: {
|
|
57
|
+
error: {
|
|
58
|
+
code: "AUTHENTICATION_REQUIRED";
|
|
59
|
+
message: "Authentication is required";
|
|
60
|
+
redirectTo?: string | undefined;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
outputFormat: "json";
|
|
64
|
+
status: 401;
|
|
65
|
+
} | {
|
|
66
|
+
input: {
|
|
67
|
+
query: {
|
|
68
|
+
q: string;
|
|
69
|
+
limit?: unknown;
|
|
70
|
+
anchor?: "substring" | "prefix" | undefined;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
output: {
|
|
74
|
+
error: "rate_limited";
|
|
75
|
+
message: string;
|
|
76
|
+
retryAfterSeconds: number;
|
|
77
|
+
};
|
|
78
|
+
outputFormat: "json";
|
|
79
|
+
status: 429;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
} & {
|
|
83
|
+
"/pages/autocomplete": {
|
|
84
|
+
$get: {
|
|
85
|
+
input: {
|
|
86
|
+
query: {
|
|
87
|
+
q: string;
|
|
88
|
+
limit?: unknown;
|
|
89
|
+
anchor?: "substring" | "prefix" | undefined;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
output: {
|
|
93
|
+
results: {
|
|
94
|
+
id: string;
|
|
95
|
+
label: string;
|
|
96
|
+
display: string;
|
|
97
|
+
score: number;
|
|
98
|
+
avatar?: string | null | undefined;
|
|
99
|
+
modifiedAt?: string | null | undefined;
|
|
100
|
+
}[];
|
|
101
|
+
};
|
|
102
|
+
outputFormat: "json";
|
|
103
|
+
status: 200;
|
|
104
|
+
} | {
|
|
105
|
+
input: {
|
|
106
|
+
query: {
|
|
107
|
+
q: string;
|
|
108
|
+
limit?: unknown;
|
|
109
|
+
anchor?: "substring" | "prefix" | undefined;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
output: {
|
|
113
|
+
error: {
|
|
114
|
+
code: "VALIDATION_ERROR";
|
|
115
|
+
message: string;
|
|
116
|
+
details?: {
|
|
117
|
+
fieldErrors: {
|
|
118
|
+
[x: string]: string[];
|
|
119
|
+
};
|
|
120
|
+
formErrors: string[];
|
|
121
|
+
} | undefined;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
outputFormat: "json";
|
|
125
|
+
status: 400;
|
|
126
|
+
} | {
|
|
127
|
+
input: {
|
|
128
|
+
query: {
|
|
129
|
+
q: string;
|
|
130
|
+
limit?: unknown;
|
|
131
|
+
anchor?: "substring" | "prefix" | undefined;
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
output: {
|
|
135
|
+
error: {
|
|
136
|
+
code: "AUTHENTICATION_REQUIRED";
|
|
137
|
+
message: "Authentication is required";
|
|
138
|
+
redirectTo?: string | undefined;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
outputFormat: "json";
|
|
142
|
+
status: 401;
|
|
143
|
+
} | {
|
|
144
|
+
input: {
|
|
145
|
+
query: {
|
|
146
|
+
q: string;
|
|
147
|
+
limit?: unknown;
|
|
148
|
+
anchor?: "substring" | "prefix" | undefined;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
output: {
|
|
152
|
+
error: "rate_limited";
|
|
153
|
+
message: string;
|
|
154
|
+
retryAfterSeconds: number;
|
|
155
|
+
};
|
|
156
|
+
outputFormat: "json";
|
|
157
|
+
status: 429;
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
}, "/">;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerAutocompleteRoutes = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* RFC-0006 Phase 4 Batch 6 — `autocomplete` resource Hono port.
|
|
9
|
+
*
|
|
10
|
+
* Replaces `packages/api/src/routes/ts-rest/autocomplete.ts`. Two
|
|
11
|
+
* endpoints (RFC-0004 Phase 5):
|
|
12
|
+
*
|
|
13
|
+
* GET /users/autocomplete — suggest users for an @mention
|
|
14
|
+
* GET /pages/autocomplete — suggest pages for a [[wikilink]]
|
|
15
|
+
*
|
|
16
|
+
* Auth split:
|
|
17
|
+
* - `/pages/autocomplete` rides the `revision` handler's broad
|
|
18
|
+
* `createJwtAuth(crowi)` apply on `/pages/*` (same shared-middleware
|
|
19
|
+
* pattern as `page` / `page-preview` / `pageCollab` / `presence` /
|
|
20
|
+
* `draft`).
|
|
21
|
+
* - `/users/autocomplete` is OUTSIDE that prefix. We install jwtAuth
|
|
22
|
+
* on the single literal path here — no other handler owns `/users/*`
|
|
23
|
+
* so there is no risk of double-apply.
|
|
24
|
+
*
|
|
25
|
+
* Rate limiting:
|
|
26
|
+
* - 60 req/min/user, name `'autocomplete'`. Same shared
|
|
27
|
+
* `createRateLimiter(...)` instance for both endpoints (the limiter
|
|
28
|
+
* keys on `userId` so cross-endpoint usage still counts against the
|
|
29
|
+
* same budget — matches the ts-rest era).
|
|
30
|
+
* - Applied AFTER jwtAuth so `c.get('user')` is populated.
|
|
31
|
+
* - 429 envelope: `{ error: 'rate_limited', message,
|
|
32
|
+
* retryAfterSeconds }` (`AutocompleteRateLimitErrorSchema`).
|
|
33
|
+
*/
|
|
34
|
+
const api_contract_1 = require("@crowi/api-contract");
|
|
35
|
+
const debug_1 = __importDefault(require("debug"));
|
|
36
|
+
const page_1 = require("../../models/page");
|
|
37
|
+
const autocomplete_match_1 = require("../../util/autocomplete-match");
|
|
38
|
+
const rate_limit_1 = require("../../util/rate-limit");
|
|
39
|
+
const regex_1 = require("../../util/regex");
|
|
40
|
+
const ts_rest_helpers_1 = require("../../util/ts-rest-helpers");
|
|
41
|
+
const auth_1 = require("../middleware/auth");
|
|
42
|
+
const rate_limit_2 = require("../middleware/rate-limit");
|
|
43
|
+
const require_scope_1 = require("../middleware/require-scope");
|
|
44
|
+
const debug = (0, debug_1.default)('crowi:hono:handlers:autocomplete');
|
|
45
|
+
/** Per-user budget for the autocomplete endpoints — RFC §"Rate limit". */
|
|
46
|
+
const RATE_LIMIT = 60;
|
|
47
|
+
const RATE_WINDOW_MS = 60_000;
|
|
48
|
+
/**
|
|
49
|
+
* Build the case-insensitive matcher for a candidate query. `'prefix'`
|
|
50
|
+
* anchors at the start (`^…`) so only true prefixes match — the "create
|
|
51
|
+
* page" modal needs this so cycling through completions of a `/`-rooted
|
|
52
|
+
* path never surfaces a deep page that merely *contains* the typed text.
|
|
53
|
+
* `'substring'` (the default) keeps the historical anywhere-in-string
|
|
54
|
+
* match used by the editor pickers.
|
|
55
|
+
*/
|
|
56
|
+
const buildMatcher = (q, anchor) => {
|
|
57
|
+
const escaped = (0, regex_1.escapeRegExp)(q);
|
|
58
|
+
return new RegExp(anchor === 'prefix' ? `^${escaped}` : escaped, 'i');
|
|
59
|
+
};
|
|
60
|
+
/** Last `/`-separated segment of a wiki path — the page's "title". */
|
|
61
|
+
const pathLeaf = (path) => {
|
|
62
|
+
const trimmed = path.replace(/\/+$/, '');
|
|
63
|
+
const idx = trimmed.lastIndexOf('/');
|
|
64
|
+
return idx >= 0 ? trimmed.slice(idx + 1) : trimmed;
|
|
65
|
+
};
|
|
66
|
+
const registerAutocompleteRoutes = (app, crowi) => {
|
|
67
|
+
const User = crowi.model('User');
|
|
68
|
+
const Page = crowi.model('Page');
|
|
69
|
+
// One shared limiter per process. `crowi.redis` is `null` in
|
|
70
|
+
// single-instance dev, which selects the in-memory fallback.
|
|
71
|
+
const limiter = (0, rate_limit_1.createRateLimiter)({
|
|
72
|
+
name: 'autocomplete',
|
|
73
|
+
limit: RATE_LIMIT,
|
|
74
|
+
windowMs: RATE_WINDOW_MS,
|
|
75
|
+
redisClient: crowi.redis ?? null,
|
|
76
|
+
});
|
|
77
|
+
const rateLimitMiddleware = (0, rate_limit_2.withRateLimit)({
|
|
78
|
+
limiter,
|
|
79
|
+
wireShape: 'autocomplete-envelope',
|
|
80
|
+
message: () => 'Autocomplete rate limit exceeded. Try again shortly.',
|
|
81
|
+
});
|
|
82
|
+
// `/users/autocomplete` is OUTSIDE the revision-owned `/pages/*`
|
|
83
|
+
// apply — install jwtAuth on the literal path here.
|
|
84
|
+
app.use('/users/autocomplete', (0, auth_1.createJwtAuth)(crowi));
|
|
85
|
+
// Rate limit (both endpoints share the bucket; apply per literal
|
|
86
|
+
// path AFTER jwtAuth so `c.get('user')` is populated).
|
|
87
|
+
app.use('/users/autocomplete', rateLimitMiddleware);
|
|
88
|
+
app.use('/pages/autocomplete', rateLimitMiddleware);
|
|
89
|
+
// RFC-0010 — autocomplete (page + mention pickers) is a page read.
|
|
90
|
+
(0, require_scope_1.applyScope)(app, api_contract_1.autocompleteUsersRoute, 'pages:read');
|
|
91
|
+
(0, require_scope_1.applyScope)(app, api_contract_1.autocompletePagesRoute, 'pages:read');
|
|
92
|
+
return (app
|
|
93
|
+
// --------------------------------------------------------------
|
|
94
|
+
// GET /users/autocomplete
|
|
95
|
+
// --------------------------------------------------------------
|
|
96
|
+
.openapi(api_contract_1.autocompleteUsersRoute, async (c) => {
|
|
97
|
+
const user = c.get('user');
|
|
98
|
+
const { q, limit, anchor } = c.req.valid('query');
|
|
99
|
+
debug('autocompleteUsers', { q, limit, anchor, userId: user._id.toString() });
|
|
100
|
+
// Widest cheap filter: case-insensitive substring on any of
|
|
101
|
+
// the three fields. Fuzzy hits that are *not* substrings are
|
|
102
|
+
// intentionally not surfaced — username typo tolerance is
|
|
103
|
+
// low-value and the substring net already covers prefixes.
|
|
104
|
+
const re = buildMatcher(q, anchor);
|
|
105
|
+
const candidates = (await User.find({
|
|
106
|
+
status: User.STATUS_ACTIVE,
|
|
107
|
+
$or: [{ username: re }, { name: re }, { email: re }],
|
|
108
|
+
})
|
|
109
|
+
.select('_id username name email image')
|
|
110
|
+
.limit(200)
|
|
111
|
+
.lean()
|
|
112
|
+
.exec());
|
|
113
|
+
const results = candidates
|
|
114
|
+
.map((cand) => {
|
|
115
|
+
const username = cand.username ?? '';
|
|
116
|
+
const name = cand.name ?? '';
|
|
117
|
+
const emailLocal = (cand.email ?? '').split('@')[0] ?? '';
|
|
118
|
+
const score = (0, autocomplete_match_1.scoreCandidate)([
|
|
119
|
+
{ text: username, weight: 30 },
|
|
120
|
+
{ text: name, weight: 20 },
|
|
121
|
+
{ text: emailLocal, weight: 10 },
|
|
122
|
+
], q);
|
|
123
|
+
return { cand, username, name, score };
|
|
124
|
+
})
|
|
125
|
+
.filter((entry) => entry.score > 0)
|
|
126
|
+
.sort((a, b) => b.score - a.score || a.username.localeCompare(b.username))
|
|
127
|
+
.slice(0, limit)
|
|
128
|
+
.map((entry) => ({
|
|
129
|
+
id: entry.cand._id.toString(),
|
|
130
|
+
label: entry.username,
|
|
131
|
+
display: entry.name ? `${entry.name} (@${entry.username})` : `@${entry.username}`,
|
|
132
|
+
avatar: entry.cand.image ?? null,
|
|
133
|
+
score: entry.score,
|
|
134
|
+
}));
|
|
135
|
+
return c.json({ results }, 200);
|
|
136
|
+
})
|
|
137
|
+
// --------------------------------------------------------------
|
|
138
|
+
// GET /pages/autocomplete
|
|
139
|
+
// --------------------------------------------------------------
|
|
140
|
+
.openapi(api_contract_1.autocompletePagesRoute, async (c) => {
|
|
141
|
+
const user = c.get('user');
|
|
142
|
+
const { q, limit, anchor } = c.req.valid('query');
|
|
143
|
+
debug('autocompletePages', { q, limit, anchor, userId: user._id.toString() });
|
|
144
|
+
const re = buildMatcher(q, anchor);
|
|
145
|
+
const candidates = (await Page.find({
|
|
146
|
+
redirectTo: null,
|
|
147
|
+
path: re,
|
|
148
|
+
// Grant-aware read filter + draft visibility, both shared
|
|
149
|
+
// with the page listing queries (RFC-0004).
|
|
150
|
+
$and: [{ $or: (0, page_1.visiblePageGrantOr)(user._id) }, { $or: (0, page_1.visiblePageStatusOr)(user._id) }],
|
|
151
|
+
})
|
|
152
|
+
.select('_id path updatedAt')
|
|
153
|
+
.limit(200)
|
|
154
|
+
.lean()
|
|
155
|
+
.exec());
|
|
156
|
+
const results = candidates
|
|
157
|
+
.map((cand) => {
|
|
158
|
+
const leaf = pathLeaf(cand.path);
|
|
159
|
+
const score = (0, autocomplete_match_1.scoreCandidate)([
|
|
160
|
+
{ text: cand.path, weight: 30 },
|
|
161
|
+
{ text: leaf, weight: 15 },
|
|
162
|
+
], q);
|
|
163
|
+
return { cand, leaf, score };
|
|
164
|
+
})
|
|
165
|
+
.filter((entry) => entry.score > 0)
|
|
166
|
+
.sort((a, b) => b.score - a.score || a.cand.path.localeCompare(b.cand.path))
|
|
167
|
+
.slice(0, limit)
|
|
168
|
+
.map((entry) => ({
|
|
169
|
+
id: entry.cand._id.toString(),
|
|
170
|
+
label: entry.cand.path,
|
|
171
|
+
// Show the leaf only when it differs from the full path
|
|
172
|
+
// (a top-level page's leaf *is* its path).
|
|
173
|
+
display: entry.leaf && entry.leaf !== entry.cand.path ? `${entry.cand.path} — ${entry.leaf}` : entry.cand.path,
|
|
174
|
+
modifiedAt: (0, ts_rest_helpers_1.toISOStringOrNull)(entry.cand.updatedAt),
|
|
175
|
+
score: entry.score,
|
|
176
|
+
}));
|
|
177
|
+
return c.json({ results }, 200);
|
|
178
|
+
}));
|
|
179
|
+
};
|
|
180
|
+
exports.registerAutocompleteRoutes = registerAutocompleteRoutes;
|
|
181
|
+
//# sourceMappingURL=autocomplete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../../src/hono/handlers/autocomplete.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { OpenAPIHono } from '@hono/zod-openapi';
|
|
2
|
+
import type Crowi from '../../crowi';
|
|
3
|
+
import type { CrowiHonoBindings } from '../app';
|
|
4
|
+
export declare const registerBacklinkRoutes: <E extends OpenAPIHono<CrowiHonoBindings>>(app: E, crowi: Crowi) => OpenAPIHono<CrowiHonoBindings, {
|
|
5
|
+
"/backlinks": {
|
|
6
|
+
$get: {
|
|
7
|
+
input: {
|
|
8
|
+
query: {
|
|
9
|
+
page_id: string;
|
|
10
|
+
limit?: unknown;
|
|
11
|
+
offset?: unknown;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
output: {
|
|
15
|
+
backlinks: {
|
|
16
|
+
_id: string;
|
|
17
|
+
page: string;
|
|
18
|
+
fromPage: {
|
|
19
|
+
_id: string;
|
|
20
|
+
path: string;
|
|
21
|
+
};
|
|
22
|
+
fromRevision: {
|
|
23
|
+
_id: string;
|
|
24
|
+
author?: {
|
|
25
|
+
_id: string;
|
|
26
|
+
username: string;
|
|
27
|
+
name: string;
|
|
28
|
+
email: string;
|
|
29
|
+
createdAt: string;
|
|
30
|
+
id?: string | undefined;
|
|
31
|
+
image?: string | null | undefined;
|
|
32
|
+
introduction?: string | undefined;
|
|
33
|
+
admin?: boolean | undefined;
|
|
34
|
+
status?: 1 | 2 | 3 | 4 | 5 | undefined;
|
|
35
|
+
} | null | undefined;
|
|
36
|
+
};
|
|
37
|
+
updatedAt: string;
|
|
38
|
+
}[];
|
|
39
|
+
hasNext: boolean;
|
|
40
|
+
};
|
|
41
|
+
outputFormat: "json";
|
|
42
|
+
status: 200;
|
|
43
|
+
} | {
|
|
44
|
+
input: {
|
|
45
|
+
query: {
|
|
46
|
+
page_id: string;
|
|
47
|
+
limit?: unknown;
|
|
48
|
+
offset?: unknown;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
output: {
|
|
52
|
+
error: {
|
|
53
|
+
code: "INVALID_PAGE_ID";
|
|
54
|
+
message: string;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
outputFormat: "json";
|
|
58
|
+
status: 400;
|
|
59
|
+
} | {
|
|
60
|
+
input: {
|
|
61
|
+
query: {
|
|
62
|
+
page_id: string;
|
|
63
|
+
limit?: unknown;
|
|
64
|
+
offset?: unknown;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
output: {
|
|
68
|
+
error: {
|
|
69
|
+
code: "AUTHENTICATION_REQUIRED";
|
|
70
|
+
message: "Authentication is required";
|
|
71
|
+
redirectTo?: string | undefined;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
outputFormat: "json";
|
|
75
|
+
status: 401;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
}, "/">;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerBacklinkRoutes = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* RFC-0006 Phase 4 Batch 3 — `backlink` resource Hono port.
|
|
9
|
+
*
|
|
10
|
+
* Replaces `packages/api/src/routes/ts-rest/backlink.ts`. Single endpoint:
|
|
11
|
+
*
|
|
12
|
+
* GET /backlinks — list backlinks targeting a page
|
|
13
|
+
*
|
|
14
|
+
* Behind `createJwtAuth(crowi)` applied broadly to `/backlinks/*`.
|
|
15
|
+
* Wire-format parity is preserved: the response trims to `limit` after
|
|
16
|
+
* filtering out dangling / hidden-draft rows, and `hasNext` is derived
|
|
17
|
+
* from an over-fetch of `limit + 1` records. The grant policy on
|
|
18
|
+
* `fromPage` mirrors the legacy `/_api/backlink.list` semantics (no
|
|
19
|
+
* grant filter) but RFC-0004 hidden-draft pages are dropped from
|
|
20
|
+
* another user's view.
|
|
21
|
+
*/
|
|
22
|
+
const api_contract_1 = require("@crowi/api-contract");
|
|
23
|
+
const debug_1 = __importDefault(require("debug"));
|
|
24
|
+
const mongoose_1 = require("mongoose");
|
|
25
|
+
const page_1 = require("../../models/page");
|
|
26
|
+
const ts_rest_helpers_1 = require("../../util/ts-rest-helpers");
|
|
27
|
+
const auth_1 = require("../middleware/auth");
|
|
28
|
+
const require_scope_1 = require("../middleware/require-scope");
|
|
29
|
+
const errors_1 = require("./_helpers/errors");
|
|
30
|
+
const debug = (0, debug_1.default)('crowi:hono:handlers:backlink');
|
|
31
|
+
const isPopulatedFromPage = (value) => {
|
|
32
|
+
return !!value && typeof value === 'object' && '_id' in value && 'path' in value;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* RFC-0004: a draft `fromPage` is visible only to its author. Drop the
|
|
36
|
+
* backlink so a draft can never leak its existence / path through
|
|
37
|
+
* another user's backlink view.
|
|
38
|
+
*/
|
|
39
|
+
const isHiddenDraftFromPage = (fromPage, viewerId) => {
|
|
40
|
+
if (fromPage.status !== page_1.STATUS_DRAFT)
|
|
41
|
+
return false;
|
|
42
|
+
return fromPage.creator?.toString() !== viewerId;
|
|
43
|
+
};
|
|
44
|
+
const isPopulatedFromRevision = (value) => {
|
|
45
|
+
return !!value && typeof value === 'object' && '_id' in value;
|
|
46
|
+
};
|
|
47
|
+
const toBacklinkResponse = (raw, pageId, viewerId) => {
|
|
48
|
+
const { fromPage, fromRevision } = raw;
|
|
49
|
+
if (!isPopulatedFromPage(fromPage) || typeof fromPage.path !== 'string')
|
|
50
|
+
return null;
|
|
51
|
+
if (isHiddenDraftFromPage(fromPage, viewerId))
|
|
52
|
+
return null;
|
|
53
|
+
if (!isPopulatedFromRevision(fromRevision))
|
|
54
|
+
return null;
|
|
55
|
+
return {
|
|
56
|
+
_id: (0, ts_rest_helpers_1.toStringId)(raw._id),
|
|
57
|
+
page: pageId,
|
|
58
|
+
fromPage: { _id: (0, ts_rest_helpers_1.toStringId)(fromPage._id), path: fromPage.path },
|
|
59
|
+
fromRevision: {
|
|
60
|
+
_id: (0, ts_rest_helpers_1.toStringId)(fromRevision._id),
|
|
61
|
+
author: (0, ts_rest_helpers_1.isPopulatedUser)(fromRevision.author) ? (0, ts_rest_helpers_1.toUserPublic)(fromRevision.author) : null,
|
|
62
|
+
},
|
|
63
|
+
updatedAt: (0, ts_rest_helpers_1.toISOStringOrNull)(raw.updatedAt) ?? new Date(0).toISOString(),
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
const registerBacklinkRoutes = (app, crowi) => {
|
|
67
|
+
const Backlink = crowi.model('Backlink');
|
|
68
|
+
app.use('/backlinks/*', (0, auth_1.createJwtAuth)(crowi));
|
|
69
|
+
app.use('/backlinks', (0, auth_1.createJwtAuth)(crowi));
|
|
70
|
+
// RFC-0010 — backlinks are a page-graph read.
|
|
71
|
+
(0, require_scope_1.applyScope)(app, api_contract_1.getBacklinksRoute, 'pages:read');
|
|
72
|
+
return app.openapi(api_contract_1.getBacklinksRoute, async (c) => {
|
|
73
|
+
const user = c.get('user');
|
|
74
|
+
const { page_id, limit, offset } = c.req.valid('query');
|
|
75
|
+
const viewerId = user._id.toString();
|
|
76
|
+
debug('getBacklinks called with:', { page_id, limit, offset, viewerId });
|
|
77
|
+
// Zod's regex already enforces 24-hex, but guard defensively for
|
|
78
|
+
// call paths that bypass the contract validator (e.g. direct
|
|
79
|
+
// handler invocation in unit tests).
|
|
80
|
+
if (!(0, ts_rest_helpers_1.isValidObjectId)(page_id)) {
|
|
81
|
+
return c.json(errors_1.INVALID_PAGE_ID_BODY, 400);
|
|
82
|
+
}
|
|
83
|
+
const pageObjectId = new mongoose_1.Types.ObjectId(page_id);
|
|
84
|
+
const fetchLimit = limit + 1;
|
|
85
|
+
const rawBacklinks = (await Backlink.findByPageId(pageObjectId, fetchLimit, offset));
|
|
86
|
+
const resolved = rawBacklinks.map((raw) => toBacklinkResponse(raw, page_id, viewerId)).filter((b) => b !== null);
|
|
87
|
+
const hasNext = resolved.length > limit;
|
|
88
|
+
const backlinks = hasNext ? resolved.slice(0, limit) : resolved;
|
|
89
|
+
return c.json({ backlinks, hasNext }, 200);
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
exports.registerBacklinkRoutes = registerBacklinkRoutes;
|
|
93
|
+
//# sourceMappingURL=backlink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backlink.js","sourceRoot":"","sources":["../../../src/hono/handlers/backlink.ts"],"names":[],"mappings":"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"}
|