@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,328 @@
|
|
|
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.PluginManager = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const runner_1 = require("@crowi/runner");
|
|
9
|
+
const config_sensitive_1 = require("../models/config-sensitive");
|
|
10
|
+
const plugin_context_1 = require("./plugin-context");
|
|
11
|
+
const plugin_namespace_1 = require("./plugin-namespace");
|
|
12
|
+
const renderer_1 = require("../renderer");
|
|
13
|
+
const registries_1 = require("./registries");
|
|
14
|
+
const topo_sort_1 = require("./topo-sort");
|
|
15
|
+
const debug = (0, debug_1.default)('crowi:plugin:manager');
|
|
16
|
+
/**
|
|
17
|
+
* Loads the plugins listed in `crowi.config.json`, resolves their
|
|
18
|
+
* dependency order, runs each plugin's `register*` callbacks, and
|
|
19
|
+
* exposes the resulting registries to the rest of the application.
|
|
20
|
+
*
|
|
21
|
+
* Lifecycle:
|
|
22
|
+
* 1. `loadCrowiConfigFile()` reads the JSON.
|
|
23
|
+
* 2. For each plugin name, `await import(name)` pulls the package's
|
|
24
|
+
* default export and validates it as a `CrowiPlugin`.
|
|
25
|
+
* 3. `topoSortPlugins()` orders by `requires`.
|
|
26
|
+
* 4. For each plugin in order:
|
|
27
|
+
* a) build a `PluginContext` for it
|
|
28
|
+
* b) if first time loaded, `await onInstall(ctx)` (idempotency
|
|
29
|
+
* is the plugin's responsibility — we re-call on every boot
|
|
30
|
+
* until the install-tracker is added in a follow-up step)
|
|
31
|
+
* c) call each provided `register*` callback with the matching
|
|
32
|
+
* registry scope
|
|
33
|
+
* 5. Resolve active drivers from `crowi.config.json:storage.driver`
|
|
34
|
+
* / `search.driver`. All registered auth and notifier drivers
|
|
35
|
+
* are active simultaneously.
|
|
36
|
+
*
|
|
37
|
+
* Errors at any step fail boot. The legacy boot path in `Crowi.init()`
|
|
38
|
+
* is unchanged when `crowi.config.json` is absent — defaults
|
|
39
|
+
* (`{ plugins: [], storage.driver: 'local', search.driver: 'mongo' }`)
|
|
40
|
+
* mean the manager runs with only the implicit-default plugins.
|
|
41
|
+
*/
|
|
42
|
+
class PluginManager {
|
|
43
|
+
crowi;
|
|
44
|
+
storage = new registries_1.DriverRegistry('storage');
|
|
45
|
+
search = new registries_1.DriverRegistry('search');
|
|
46
|
+
auth = new registries_1.DriverRegistry('auth');
|
|
47
|
+
notifier = new registries_1.DriverRegistry('notifier');
|
|
48
|
+
mail = new registries_1.DriverRegistry('mail');
|
|
49
|
+
loadedPlugins = [];
|
|
50
|
+
/** plugin name → set of plugin names that `requires` it */
|
|
51
|
+
dependents = new Map();
|
|
52
|
+
constructor(crowi) {
|
|
53
|
+
this.crowi = crowi;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Run the full lifecycle and return the resolved registries +
|
|
57
|
+
* active drivers. Call once during `Crowi.init()`.
|
|
58
|
+
*/
|
|
59
|
+
async bootstrap(projectDir = process.cwd()) {
|
|
60
|
+
// `@crowi/runner` reads `crowi.config.json` and resolves each
|
|
61
|
+
// plugin npm name (plus transitive `requires`) against the project
|
|
62
|
+
// dir's `node_modules/`. Topological ordering, activation, and
|
|
63
|
+
// registry wiring stay here in the manager — runner is a pure
|
|
64
|
+
// config/loader library with no Crowi-runtime coupling.
|
|
65
|
+
const { config, plugins } = await (0, runner_1.resolvePlugins)(projectDir);
|
|
66
|
+
debug('loaded crowi.config.json from %s: plugins=%o', projectDir, config.plugins);
|
|
67
|
+
const ordered = (0, topo_sort_1.topoSortPlugins)(plugins);
|
|
68
|
+
this.loadedPlugins = ordered;
|
|
69
|
+
// Register every plugin's `@sensitive`-marked configSchema fields
|
|
70
|
+
// with the core sensitive-config registry so values written
|
|
71
|
+
// through `configService.saveConfig('crowi', { 'plugin:…': … })`
|
|
72
|
+
// are encrypted at rest just like legacy keys.
|
|
73
|
+
(0, config_sensitive_1.registerSensitiveConfigKeys)(this.listSensitiveKeys().map((k) => `crowi:${k}`));
|
|
74
|
+
for (const plugin of ordered) {
|
|
75
|
+
await this.activate(plugin);
|
|
76
|
+
}
|
|
77
|
+
this.buildDependentsMap();
|
|
78
|
+
this.crowi.getConfigService().onConfigChange((changedNamespaces, source) => this.handleConfigChange(changedNamespaces, source));
|
|
79
|
+
return {
|
|
80
|
+
storage: this.storage,
|
|
81
|
+
search: this.search,
|
|
82
|
+
auth: this.auth,
|
|
83
|
+
notifier: this.notifier,
|
|
84
|
+
mail: this.mail,
|
|
85
|
+
active: this.resolveActiveDrivers(config),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Walk the loaded plugins' `requires` arrays and invert them into
|
|
90
|
+
* `dependents: name → set of plugins that require it`. Used to fan
|
|
91
|
+
* out `reconfigure` calls when a base plugin's config changes (e.g.
|
|
92
|
+
* `@crowi/plugin-aws` credentials changing should reconfigure
|
|
93
|
+
* `@crowi/plugin-storage-aws-s3`).
|
|
94
|
+
*/
|
|
95
|
+
buildDependentsMap() {
|
|
96
|
+
this.dependents.clear();
|
|
97
|
+
for (const plugin of this.loadedPlugins) {
|
|
98
|
+
for (const dep of plugin.requires ?? []) {
|
|
99
|
+
const set = this.dependents.get(dep) ?? new Set();
|
|
100
|
+
set.add(plugin.name);
|
|
101
|
+
this.dependents.set(dep, set);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Listener bound to ConfigService.onConfigChange. We only auto-fire
|
|
107
|
+
* reconfigure for `'remote'` changes (= another instance saved via
|
|
108
|
+
* Redis pub/sub). For `'local'` changes the admin save handler calls
|
|
109
|
+
* `reconfigureAffected` itself so it can include the result in the
|
|
110
|
+
* response body — running it here too would double-fire.
|
|
111
|
+
*/
|
|
112
|
+
async handleConfigChange(changedNamespaces, source) {
|
|
113
|
+
if (source !== 'remote')
|
|
114
|
+
return;
|
|
115
|
+
const affected = this.affectedPluginsFromNamespaces(changedNamespaces);
|
|
116
|
+
if (affected.size === 0)
|
|
117
|
+
return;
|
|
118
|
+
await this.runReconfigure(affected);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Resolve `changedNamespaces` (e.g. `['plugin:@crowi/plugin-aws']`)
|
|
122
|
+
* to the concrete set of plugin names that need their `reconfigure`
|
|
123
|
+
* called: the changed plugin itself plus every plugin that has it in
|
|
124
|
+
* `requires`. The `'*'` sentinel (used by older pub/sub publishers)
|
|
125
|
+
* fans out to every loaded plugin.
|
|
126
|
+
*/
|
|
127
|
+
affectedPluginsFromNamespaces(changedNamespaces) {
|
|
128
|
+
const out = new Set();
|
|
129
|
+
const queue = [];
|
|
130
|
+
for (const ns of changedNamespaces) {
|
|
131
|
+
if (ns === '*') {
|
|
132
|
+
for (const plugin of this.loadedPlugins)
|
|
133
|
+
out.add(plugin.name);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const pluginName = (0, plugin_namespace_1.parsePluginNamespace)(ns);
|
|
137
|
+
if (pluginName)
|
|
138
|
+
queue.push(pluginName);
|
|
139
|
+
}
|
|
140
|
+
// BFS so transitive dependents are reached and a `requires` cycle
|
|
141
|
+
// (shouldn't happen, but isn't actively prevented) doesn't loop.
|
|
142
|
+
while (queue.length > 0) {
|
|
143
|
+
const name = queue.shift();
|
|
144
|
+
if (out.has(name))
|
|
145
|
+
continue;
|
|
146
|
+
out.add(name);
|
|
147
|
+
const dependents = this.dependents.get(name);
|
|
148
|
+
if (dependents)
|
|
149
|
+
for (const d of dependents)
|
|
150
|
+
queue.push(d);
|
|
151
|
+
}
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Call `reconfigure(ctx)` on each plugin in `affected` that
|
|
156
|
+
* implements it. Errors are logged + reported via the plugin's debug
|
|
157
|
+
* logger but never propagated — a single misconfigured plugin must
|
|
158
|
+
* not lock operators out of the admin UI.
|
|
159
|
+
*
|
|
160
|
+
* Returns whether any plugin both (a) implements reconfigure and
|
|
161
|
+
* (b) completed without throwing — used by the admin save handler
|
|
162
|
+
* to pick the right toast.
|
|
163
|
+
*/
|
|
164
|
+
async runReconfigure(affected) {
|
|
165
|
+
let attempted = 0;
|
|
166
|
+
let succeeded = 0;
|
|
167
|
+
for (const name of affected) {
|
|
168
|
+
const plugin = this.getLoadedPlugin(name);
|
|
169
|
+
if (!plugin?.reconfigure)
|
|
170
|
+
continue;
|
|
171
|
+
attempted++;
|
|
172
|
+
const ctx = (0, plugin_context_1.createPluginContext)(plugin, this.crowi, this);
|
|
173
|
+
try {
|
|
174
|
+
await plugin.reconfigure(ctx);
|
|
175
|
+
succeeded++;
|
|
176
|
+
debug('reconfigure %s OK', name);
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
180
|
+
console.warn(`[crowi:plugin:${name}] reconfigure failed: ${message}`);
|
|
181
|
+
debug('reconfigure %s failed: %s', name, message);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return { attempted, succeeded };
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Public entry-point used by the admin "save plugin config" handler
|
|
188
|
+
* to await reconfigure completion in the same request and surface
|
|
189
|
+
* the result in the response body.
|
|
190
|
+
*/
|
|
191
|
+
async reconfigureAffected(changedNamespaces) {
|
|
192
|
+
const affected = this.affectedPluginsFromNamespaces(changedNamespaces);
|
|
193
|
+
return this.runReconfigure(affected);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Look up a plugin by npm name from the loaded set. Used by
|
|
197
|
+
* `PluginContext.dependencyConfig` to resolve another plugin's
|
|
198
|
+
* configSchema. Returns undefined when the name isn't loaded.
|
|
199
|
+
*/
|
|
200
|
+
getLoadedPlugin(name) {
|
|
201
|
+
return this.loadedPlugins.find((p) => p.name === name);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* The list of plugins the manager loaded, in topological order.
|
|
205
|
+
* Surfaced for `crowi plugin list` and admin UI.
|
|
206
|
+
*/
|
|
207
|
+
getLoadedPlugins() {
|
|
208
|
+
return this.loadedPlugins;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Walk every loaded plugin's `configSchema` and return the union of
|
|
212
|
+
* field paths marked `@sensitive`. The "re-encrypt all" admin
|
|
213
|
+
* routine consults this list. See RFC-0001 §5.
|
|
214
|
+
*/
|
|
215
|
+
listSensitiveKeys() {
|
|
216
|
+
const out = [];
|
|
217
|
+
for (const plugin of this.loadedPlugins) {
|
|
218
|
+
const schema = plugin.configSchema;
|
|
219
|
+
if (!schema)
|
|
220
|
+
continue;
|
|
221
|
+
for (const [fieldName, field] of Object.entries(schema.shape)) {
|
|
222
|
+
const description = field.description;
|
|
223
|
+
if (typeof description === 'string' && description.trimStart().startsWith('@sensitive')) {
|
|
224
|
+
out.push((0, plugin_namespace_1.formatPluginConfigKey)(plugin.name, fieldName));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return out;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Deactivate a loaded plugin. Phase 4 only touches the render
|
|
232
|
+
* cache: every cached entry contributed by the named plugin is
|
|
233
|
+
* removed (`invalidatePlugin(name)`). Phase 5+ will broaden this
|
|
234
|
+
* to (a) drop the plugin from the loaded set + driver registries,
|
|
235
|
+
* (b) emit a deactivation event for dependents, (c) wire the
|
|
236
|
+
* `--purge` CLI path.
|
|
237
|
+
*
|
|
238
|
+
* Returns true when at least the render-cache invalidation ran
|
|
239
|
+
* (false when the plugin wasn't loaded). Failures are logged but
|
|
240
|
+
* never propagated — operators trigger deactivate from the admin
|
|
241
|
+
* UI or CLI and a partial cleanup is still better than no cleanup.
|
|
242
|
+
*/
|
|
243
|
+
async deactivate(name) {
|
|
244
|
+
const plugin = this.getLoadedPlugin(name);
|
|
245
|
+
if (!plugin) {
|
|
246
|
+
debug('deactivate: plugin %s not loaded; nothing to do', name);
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
try {
|
|
250
|
+
const renderer = this.crowi.renderer;
|
|
251
|
+
if (renderer) {
|
|
252
|
+
await renderer.cache.invalidatePlugin(name);
|
|
253
|
+
debug('deactivate %s: render-cache invalidated', name);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
258
|
+
console.warn(`[crowi:plugin:${name}] deactivate failed during render-cache invalidation: ${message}`);
|
|
259
|
+
}
|
|
260
|
+
return true;
|
|
261
|
+
}
|
|
262
|
+
async activate(plugin) {
|
|
263
|
+
debug('activating %s@%s', plugin.name, plugin.version);
|
|
264
|
+
const ctx = (0, plugin_context_1.createPluginContext)(plugin, this.crowi, this);
|
|
265
|
+
// onInstall runs unconditionally for now. A follow-up will track
|
|
266
|
+
// installed-once state in Mongo and skip on subsequent boots.
|
|
267
|
+
if (plugin.onInstall) {
|
|
268
|
+
await plugin.onInstall(ctx);
|
|
269
|
+
}
|
|
270
|
+
if (plugin.registerStorage)
|
|
271
|
+
plugin.registerStorage((0, registries_1.makeStorageScope)(this.storage, plugin.name), ctx);
|
|
272
|
+
if (plugin.registerSearch)
|
|
273
|
+
plugin.registerSearch((0, registries_1.makeSearchScope)(this.search, plugin.name), ctx);
|
|
274
|
+
if (plugin.registerAuth)
|
|
275
|
+
plugin.registerAuth((0, registries_1.makeAuthScope)(this.auth, plugin.name), ctx);
|
|
276
|
+
if (plugin.registerNotifier)
|
|
277
|
+
plugin.registerNotifier((0, registries_1.makeNotifierScope)(this.notifier, plugin.name), ctx);
|
|
278
|
+
if (plugin.registerMailSender)
|
|
279
|
+
plugin.registerMailSender((0, registries_1.makeMailScope)(this.mail, plugin.name), ctx);
|
|
280
|
+
if (plugin.registerRenderer) {
|
|
281
|
+
// Renderer is registered against `crowi.renderer.registry`; it
|
|
282
|
+
// already has the core 4 transforms in place when we get here
|
|
283
|
+
// (Crowi.init() runs setupRenderer before setupPlugins). External
|
|
284
|
+
// plugins append to the back — they cannot insert before core in
|
|
285
|
+
// v2.1 phase 2.
|
|
286
|
+
const renderer = this.crowi.getRenderer();
|
|
287
|
+
plugin.registerRenderer((0, renderer_1.makeRendererScope)(renderer.registry, plugin.name, ctx.log), ctx);
|
|
288
|
+
}
|
|
289
|
+
// registerHooks and registerRoutes are wired in a later step
|
|
290
|
+
// (the EventBus and PluginRouterScope instances are not yet
|
|
291
|
+
// constructed in v0.1).
|
|
292
|
+
}
|
|
293
|
+
resolveActiveDrivers(config) {
|
|
294
|
+
return {
|
|
295
|
+
storage: this.resolveOrWarn(this.storage, 'storage', config.storage.driver),
|
|
296
|
+
search: this.resolveOrWarn(this.search, 'search', config.search.driver),
|
|
297
|
+
auth: this.auth
|
|
298
|
+
.list()
|
|
299
|
+
.map(({ driverName }) => this.auth.get(driverName))
|
|
300
|
+
.filter((d) => !!d),
|
|
301
|
+
notifiers: this.notifier
|
|
302
|
+
.list()
|
|
303
|
+
.map(({ driverName }) => this.notifier.get(driverName))
|
|
304
|
+
.filter((d) => !!d),
|
|
305
|
+
mail: this.resolveOrWarn(this.mail, 'mail', config.mail.driver),
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Look up `driverName` in `registry`. Returns null + logs a warning
|
|
310
|
+
* if absent. v2.0 transition behaviour: legacy in-core code keeps
|
|
311
|
+
* handling the concern when the active driver is null. After the
|
|
312
|
+
* Step 3+ plugin extractions land, missing-driver becomes a hard
|
|
313
|
+
* error.
|
|
314
|
+
*/
|
|
315
|
+
resolveOrWarn(registry, kind, driverName) {
|
|
316
|
+
const driver = registry.get(driverName);
|
|
317
|
+
if (driver)
|
|
318
|
+
return driver;
|
|
319
|
+
const installed = registry
|
|
320
|
+
.list()
|
|
321
|
+
.map((d) => d.driverName)
|
|
322
|
+
.join(', ') || '(none)';
|
|
323
|
+
debug(`[warn] ${kind}.driver '${driverName}' not registered. Installed: ${installed}. Falling back to legacy in-core handling.`);
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
exports.PluginManager = PluginManager;
|
|
328
|
+
//# sourceMappingURL=plugin-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-manager.js","sourceRoot":"","sources":["../../src/plugin/plugin-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for the `plugin:<name>[:<field>]` key / namespace
|
|
3
|
+
* shape that's an inter-module contract between `service/config.ts` and
|
|
4
|
+
* `plugin/plugin-manager.ts` (and `plugin/plugin-context.ts`).
|
|
5
|
+
*
|
|
6
|
+
* Plugin names are npm package names (e.g. `@crowi/plugin-aws`) and may
|
|
7
|
+
* contain `/` but never `:` — npm package names allow `[a-z0-9-_./]`.
|
|
8
|
+
* Parse helpers therefore split on the first two `:` rather than greedy
|
|
9
|
+
* regex alternatives, so a future plugin name with extra characters
|
|
10
|
+
* doesn't silently break.
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatPluginConfigKey(pluginName: string, field: string): string;
|
|
13
|
+
export declare function formatPluginNamespace(pluginName: string): string;
|
|
14
|
+
export declare function pluginConfigKeyPrefix(pluginName: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Extract the plugin name from a `plugin:<name>` namespace string.
|
|
17
|
+
* Returns null when the namespace isn't plugin-shaped, so callers can
|
|
18
|
+
* `continue` cleanly on `crowi:*` / `notification:*` etc.
|
|
19
|
+
*/
|
|
20
|
+
export declare function parsePluginNamespace(ns: string): string | null;
|
|
21
|
+
/**
|
|
22
|
+
* Extract the plugin name from a full `plugin:<name>:<field>` config
|
|
23
|
+
* key. Returns null when the key isn't plugin-shaped.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parsePluginConfigKey(key: string): {
|
|
26
|
+
pluginName: string;
|
|
27
|
+
field: string;
|
|
28
|
+
} | null;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Single source of truth for the `plugin:<name>[:<field>]` key / namespace
|
|
4
|
+
* shape that's an inter-module contract between `service/config.ts` and
|
|
5
|
+
* `plugin/plugin-manager.ts` (and `plugin/plugin-context.ts`).
|
|
6
|
+
*
|
|
7
|
+
* Plugin names are npm package names (e.g. `@crowi/plugin-aws`) and may
|
|
8
|
+
* contain `/` but never `:` — npm package names allow `[a-z0-9-_./]`.
|
|
9
|
+
* Parse helpers therefore split on the first two `:` rather than greedy
|
|
10
|
+
* regex alternatives, so a future plugin name with extra characters
|
|
11
|
+
* doesn't silently break.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.formatPluginConfigKey = formatPluginConfigKey;
|
|
15
|
+
exports.formatPluginNamespace = formatPluginNamespace;
|
|
16
|
+
exports.pluginConfigKeyPrefix = pluginConfigKeyPrefix;
|
|
17
|
+
exports.parsePluginNamespace = parsePluginNamespace;
|
|
18
|
+
exports.parsePluginConfigKey = parsePluginConfigKey;
|
|
19
|
+
const PLUGIN_PREFIX = 'plugin:';
|
|
20
|
+
function formatPluginConfigKey(pluginName, field) {
|
|
21
|
+
return `${PLUGIN_PREFIX}${pluginName}:${field}`;
|
|
22
|
+
}
|
|
23
|
+
function formatPluginNamespace(pluginName) {
|
|
24
|
+
return `${PLUGIN_PREFIX}${pluginName}`;
|
|
25
|
+
}
|
|
26
|
+
function pluginConfigKeyPrefix(pluginName) {
|
|
27
|
+
return `${PLUGIN_PREFIX}${pluginName}:`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Extract the plugin name from a `plugin:<name>` namespace string.
|
|
31
|
+
* Returns null when the namespace isn't plugin-shaped, so callers can
|
|
32
|
+
* `continue` cleanly on `crowi:*` / `notification:*` etc.
|
|
33
|
+
*/
|
|
34
|
+
function parsePluginNamespace(ns) {
|
|
35
|
+
if (!ns.startsWith(PLUGIN_PREFIX))
|
|
36
|
+
return null;
|
|
37
|
+
const name = ns.slice(PLUGIN_PREFIX.length);
|
|
38
|
+
return name.length > 0 ? name : null;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Extract the plugin name from a full `plugin:<name>:<field>` config
|
|
42
|
+
* key. Returns null when the key isn't plugin-shaped.
|
|
43
|
+
*/
|
|
44
|
+
function parsePluginConfigKey(key) {
|
|
45
|
+
if (!key.startsWith(PLUGIN_PREFIX))
|
|
46
|
+
return null;
|
|
47
|
+
const rest = key.slice(PLUGIN_PREFIX.length);
|
|
48
|
+
const sep = rest.lastIndexOf(':');
|
|
49
|
+
if (sep <= 0 || sep === rest.length - 1)
|
|
50
|
+
return null;
|
|
51
|
+
return { pluginName: rest.slice(0, sep), field: rest.slice(sep + 1) };
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=plugin-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-namespace.js","sourceRoot":"","sources":["../../src/plugin/plugin-namespace.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAIH,sDAEC;AAED,sDAEC;AAED,sDAEC;AAOD,oDAIC;AAMD,oDAMC;AAnCD,MAAM,aAAa,GAAG,SAAS,CAAC;AAEhC,SAAgB,qBAAqB,CAAC,UAAkB,EAAE,KAAa;IACrE,OAAO,GAAG,aAAa,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;AAClD,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,OAAO,GAAG,aAAa,GAAG,UAAU,EAAE,CAAC;AACzC,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,EAAU;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { AuthDriver, AuthRegistry, MailSender, MailSenderRegistry, NotifierDriver, NotifierRegistry, SearchDriver, SearchRegistry, StorageDriver, StorageRegistry } from '@crowi/plugin-api';
|
|
2
|
+
/**
|
|
3
|
+
* Generic backing registry for all the typed registries below. Each
|
|
4
|
+
* registry stores `(driverName → driver)` and remembers which plugin
|
|
5
|
+
* registered each entry so the runtime can give clear error messages
|
|
6
|
+
* on collisions.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DriverRegistry<T> {
|
|
9
|
+
private readonly kind;
|
|
10
|
+
private drivers;
|
|
11
|
+
constructor(kind: string);
|
|
12
|
+
register(driverName: string, driver: T, registeringPlugin: string): void;
|
|
13
|
+
get(driverName: string): T | undefined;
|
|
14
|
+
has(driverName: string): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Reverse lookup: the registered `(driverName, plugin)` for a driver
|
|
17
|
+
* instance, or undefined. Lets handlers report the active driver's
|
|
18
|
+
* name without re-implementing the identity scan.
|
|
19
|
+
*/
|
|
20
|
+
entryOf(driver: T): {
|
|
21
|
+
driverName: string;
|
|
22
|
+
plugin: string;
|
|
23
|
+
} | undefined;
|
|
24
|
+
list(): {
|
|
25
|
+
driverName: string;
|
|
26
|
+
plugin: string;
|
|
27
|
+
}[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Per-plugin scope handed to `registerStorage(scope, ctx)`. Closes
|
|
31
|
+
* over the registering plugin's name so we don't have to make plugins
|
|
32
|
+
* pass it themselves on every call.
|
|
33
|
+
*/
|
|
34
|
+
export declare const makeStorageScope: (registry: DriverRegistry<StorageDriver>, plugin: string) => StorageRegistry;
|
|
35
|
+
export declare const makeSearchScope: (registry: DriverRegistry<SearchDriver>, plugin: string) => SearchRegistry;
|
|
36
|
+
export declare const makeAuthScope: (registry: DriverRegistry<AuthDriver>, plugin: string) => AuthRegistry;
|
|
37
|
+
export declare const makeNotifierScope: (registry: DriverRegistry<NotifierDriver>, plugin: string) => NotifierRegistry;
|
|
38
|
+
export declare const makeMailScope: (registry: DriverRegistry<MailSender>, plugin: string) => MailSenderRegistry;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeMailScope = exports.makeNotifierScope = exports.makeAuthScope = exports.makeSearchScope = exports.makeStorageScope = exports.DriverRegistry = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Generic backing registry for all the typed registries below. Each
|
|
6
|
+
* registry stores `(driverName → driver)` and remembers which plugin
|
|
7
|
+
* registered each entry so the runtime can give clear error messages
|
|
8
|
+
* on collisions.
|
|
9
|
+
*/
|
|
10
|
+
class DriverRegistry {
|
|
11
|
+
kind;
|
|
12
|
+
drivers = new Map();
|
|
13
|
+
constructor(kind) {
|
|
14
|
+
this.kind = kind;
|
|
15
|
+
}
|
|
16
|
+
register(driverName, driver, registeringPlugin) {
|
|
17
|
+
const existing = this.drivers.get(driverName);
|
|
18
|
+
if (existing) {
|
|
19
|
+
throw new Error(`Plugin '${registeringPlugin}' tried to register ${this.kind} driver '${driverName}', but '${existing.plugin}' already did.`);
|
|
20
|
+
}
|
|
21
|
+
this.drivers.set(driverName, { plugin: registeringPlugin, driver });
|
|
22
|
+
}
|
|
23
|
+
get(driverName) {
|
|
24
|
+
return this.drivers.get(driverName)?.driver;
|
|
25
|
+
}
|
|
26
|
+
has(driverName) {
|
|
27
|
+
return this.drivers.has(driverName);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Reverse lookup: the registered `(driverName, plugin)` for a driver
|
|
31
|
+
* instance, or undefined. Lets handlers report the active driver's
|
|
32
|
+
* name without re-implementing the identity scan.
|
|
33
|
+
*/
|
|
34
|
+
entryOf(driver) {
|
|
35
|
+
for (const [driverName, entry] of this.drivers) {
|
|
36
|
+
if (entry.driver === driver)
|
|
37
|
+
return { driverName, plugin: entry.plugin };
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
list() {
|
|
42
|
+
return Array.from(this.drivers.entries()).map(([driverName, { plugin }]) => ({ driverName, plugin }));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.DriverRegistry = DriverRegistry;
|
|
46
|
+
/**
|
|
47
|
+
* Per-plugin scope handed to `registerStorage(scope, ctx)`. Closes
|
|
48
|
+
* over the registering plugin's name so we don't have to make plugins
|
|
49
|
+
* pass it themselves on every call.
|
|
50
|
+
*/
|
|
51
|
+
const makeStorageScope = (registry, plugin) => ({
|
|
52
|
+
register: (driverName, driver) => registry.register(driverName, driver, plugin),
|
|
53
|
+
});
|
|
54
|
+
exports.makeStorageScope = makeStorageScope;
|
|
55
|
+
const makeSearchScope = (registry, plugin) => ({
|
|
56
|
+
register: (driverName, driver) => registry.register(driverName, driver, plugin),
|
|
57
|
+
});
|
|
58
|
+
exports.makeSearchScope = makeSearchScope;
|
|
59
|
+
const makeAuthScope = (registry, plugin) => ({
|
|
60
|
+
register: (driverName, driver) => registry.register(driverName, driver, plugin),
|
|
61
|
+
});
|
|
62
|
+
exports.makeAuthScope = makeAuthScope;
|
|
63
|
+
const makeNotifierScope = (registry, plugin) => ({
|
|
64
|
+
register: (driverName, driver) => registry.register(driverName, driver, plugin),
|
|
65
|
+
});
|
|
66
|
+
exports.makeNotifierScope = makeNotifierScope;
|
|
67
|
+
const makeMailScope = (registry, plugin) => ({
|
|
68
|
+
register: (driverName, driver) => registry.register(driverName, driver, plugin),
|
|
69
|
+
});
|
|
70
|
+
exports.makeMailScope = makeMailScope;
|
|
71
|
+
//# sourceMappingURL=registries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registries.js","sourceRoot":"","sources":["../../src/plugin/registries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ZodTypeAny, z } from 'zod/v3';
|
|
2
|
+
/**
|
|
3
|
+
* Serialised shape of a single plugin config field. The web admin
|
|
4
|
+
* form renders one input per field, picking the control by `kind`.
|
|
5
|
+
*
|
|
6
|
+
* Sensitive fields (`@sensitive` description marker) are NOT present
|
|
7
|
+
* in `defaultValue` even when the schema declares one — secrets are
|
|
8
|
+
* never echoed back from the server. Use the separate values payload
|
|
9
|
+
* with `{ hasValue: true }` to render the "currently saved" badge.
|
|
10
|
+
*/
|
|
11
|
+
export interface SerializedPluginField {
|
|
12
|
+
name: string;
|
|
13
|
+
kind: 'string' | 'secret' | 'number' | 'boolean' | 'enum' | 'string-array';
|
|
14
|
+
description?: string;
|
|
15
|
+
defaultValue?: unknown;
|
|
16
|
+
/** Enum options when `kind === 'enum'`. */
|
|
17
|
+
options?: string[];
|
|
18
|
+
/** Action button annotation (parsed from `@action ...` description). */
|
|
19
|
+
action?: {
|
|
20
|
+
label: string;
|
|
21
|
+
method: string;
|
|
22
|
+
path: string;
|
|
23
|
+
};
|
|
24
|
+
/** True when the field was declared as optional (`z.…optional()`). */
|
|
25
|
+
optional: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Walk a plugin's `configSchema` (assumed to be a `z.object({...})`)
|
|
29
|
+
* and produce a flat list of fields the admin form can render. Only
|
|
30
|
+
* the field shapes the plugin RFC committed to are recognised:
|
|
31
|
+
* string / number / boolean / enum / string[]. Anything else falls
|
|
32
|
+
* back to `kind: 'string'` (with a descriptive log on the server).
|
|
33
|
+
*/
|
|
34
|
+
export declare function serializeConfigSchema(schema: z.ZodObject<Record<string, ZodTypeAny>>): SerializedPluginField[];
|