@crowi/api 2.0.0-alpha.0 → 2.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hono/handlers/access-token.d.ts +55 -55
- package/dist/hono/handlers/activation.d.ts +27 -27
- package/dist/hono/handlers/admin/app.d.ts +26 -26
- package/dist/hono/handlers/admin/auth.d.ts +24 -24
- package/dist/hono/handlers/admin/mail.d.ts +30 -30
- package/dist/hono/handlers/admin/plugins.d.ts +112 -112
- package/dist/hono/handlers/admin/search.d.ts +21 -21
- package/dist/hono/handlers/admin/security.d.ts +24 -24
- package/dist/hono/handlers/admin/storage.d.ts +19 -19
- package/dist/hono/handlers/admin/users.d.ts +399 -281
- package/dist/hono/handlers/admin/users.js +28 -0
- package/dist/hono/handlers/admin/users.js.map +1 -1
- package/dist/hono/handlers/adminCrypto.d.ts +32 -32
- package/dist/hono/handlers/app.d.ts +12 -8
- package/dist/hono/handlers/app.js +42 -1
- package/dist/hono/handlers/app.js.map +1 -1
- package/dist/hono/handlers/attachment-stream.js +23 -0
- package/dist/hono/handlers/attachment-stream.js.map +1 -1
- package/dist/hono/handlers/attachment.d.ts +180 -180
- package/dist/hono/handlers/autocomplete.d.ts +45 -45
- package/dist/hono/handlers/backlink.d.ts +33 -33
- package/dist/hono/handlers/bookmark.d.ts +95 -95
- package/dist/hono/handlers/comment.d.ts +55 -55
- package/dist/hono/handlers/draft.d.ts +27 -27
- package/dist/hono/handlers/draft.js +10 -0
- package/dist/hono/handlers/draft.js.map +1 -1
- package/dist/hono/handlers/emailChange.d.ts +25 -25
- package/dist/hono/handlers/installer.d.ts +16 -16
- package/dist/hono/handlers/inviteAccept.d.ts +37 -37
- package/dist/hono/handlers/me.d.ts +92 -92
- package/dist/hono/handlers/notification.d.ts +94 -94
- package/dist/hono/handlers/oauth.d.ts +58 -58
- package/dist/hono/handlers/page-collab.d.ts +20 -20
- package/dist/hono/handlers/page-preview.d.ts +7 -7
- package/dist/hono/handlers/page.d.ts +575 -324
- package/dist/hono/handlers/page.js +123 -6
- package/dist/hono/handlers/page.js.map +1 -1
- package/dist/hono/handlers/passwordReset.d.ts +37 -37
- package/dist/hono/handlers/presence.d.ts +44 -44
- package/dist/hono/handlers/revision.d.ts +99 -99
- package/dist/hono/handlers/search.d.ts +64 -64
- package/dist/hono/handlers/tokenAuth.d.ts +80 -80
- package/dist/hono/handlers/user.d.ts +102 -102
- package/dist/hono/handlers/user.js +15 -5
- package/dist/hono/handlers/user.js.map +1 -1
- package/dist/hono/index.d.ts +94 -94
- package/dist/mcp/result.d.ts +52 -11
- package/dist/mcp/result.js +66 -1
- package/dist/mcp/result.js.map +1 -1
- package/dist/mcp/tools/page.js +30 -5
- package/dist/mcp/tools/page.js.map +1 -1
- package/dist/mcp/tools/search.d.ts +12 -0
- package/dist/mcp/tools/search.js +21 -5
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/migration/helpers.d.ts +13 -0
- package/dist/migration/helpers.js +29 -0
- package/dist/migration/helpers.js.map +1 -0
- package/dist/migration/migrations/files-url-to-attachments.d.ts +35 -0
- package/dist/migration/migrations/files-url-to-attachments.js +291 -0
- package/dist/migration/migrations/files-url-to-attachments.js.map +1 -0
- package/dist/migration/migrations/index.js +6 -0
- package/dist/migration/migrations/index.js.map +1 -1
- package/dist/migration/migrations/published-current-revision.d.ts +47 -0
- package/dist/migration/migrations/published-current-revision.js +90 -0
- package/dist/migration/migrations/published-current-revision.js.map +1 -0
- package/dist/migration/migrations/relocate-reserved-api-paths.d.ts +3 -0
- package/dist/migration/migrations/relocate-reserved-api-paths.js +135 -0
- package/dist/migration/migrations/relocate-reserved-api-paths.js.map +1 -0
- package/dist/migration/migrations/wikilink-format.d.ts +0 -11
- package/dist/migration/migrations/wikilink-format.js +5 -156
- package/dist/migration/migrations/wikilink-format.js.map +1 -1
- package/dist/migration/migrations/wikilink-html-recover.d.ts +116 -0
- package/dist/migration/migrations/wikilink-html-recover.js +314 -0
- package/dist/migration/migrations/wikilink-html-recover.js.map +1 -0
- package/dist/models/page.d.ts +3 -0
- package/dist/models/page.js +40 -2
- package/dist/models/page.js.map +1 -1
- package/dist/models/user.d.ts +1 -0
- package/dist/models/user.js +40 -21
- package/dist/models/user.js.map +1 -1
- package/dist/renderer/core/headings.d.ts +12 -1
- package/dist/renderer/core/headings.js +48 -8
- package/dist/renderer/core/headings.js.map +1 -1
- package/dist/renderer/pipeline.d.ts +6 -0
- package/dist/renderer/pipeline.js.map +1 -1
- package/dist/util/page-response.js +19 -2
- package/dist/util/page-response.js.map +1 -1
- package/dist/util/replace-url.d.ts +85 -0
- package/dist/util/replace-url.js +251 -0
- package/dist/util/replace-url.js.map +1 -0
- package/package.json +13 -5
- package/public/images/file-not-found.png +0 -0
- package/views/mail/activation.mjml +9 -0
- package/views/mail/activation.text +13 -0
- package/views/mail/adminApprovalPending.mjml +7 -0
- package/views/mail/adminApprovalPending.text +11 -0
- package/views/mail/emailChange.mjml +9 -0
- package/views/mail/emailChange.text +13 -0
- package/views/mail/invite.mjml +9 -0
- package/views/mail/invite.text +13 -0
- package/views/mail/layout.mjml +38 -0
- package/views/mail/passwordChanged.mjml +4 -0
- package/views/mail/passwordChanged.text +9 -0
- package/views/mail/passwordReset.mjml +9 -0
- package/views/mail/passwordReset.text +13 -0
- package/views/mail/test.mjml +2 -0
- package/views/mail/test.text +7 -0
- package/dist/common/functions/path2name.d.ts +0 -1
- package/dist/common/functions/path2name.js +0 -22
- package/dist/common/functions/path2name.js.map +0 -1
- package/dist/common/functions/renderIcon.d.ts +0 -1
- package/dist/common/functions/renderIcon.js +0 -9
- package/dist/common/functions/renderIcon.js.map +0 -1
- package/dist/controllers/admin.d.ts +0 -3
- package/dist/controllers/admin.js +0 -474
- package/dist/controllers/admin.js.map +0 -1
- package/dist/controllers/attachment.d.ts +0 -4
- package/dist/controllers/attachment.js +0 -200
- package/dist/controllers/attachment.js.map +0 -1
- package/dist/controllers/backlink.d.ts +0 -3
- package/dist/controllers/backlink.js +0 -42
- package/dist/controllers/backlink.js.map +0 -1
- package/dist/controllers/bookmark.d.ts +0 -3
- package/dist/controllers/bookmark.js +0 -100
- package/dist/controllers/bookmark.js.map +0 -1
- package/dist/controllers/comment.d.ts +0 -3
- package/dist/controllers/comment.js +0 -111
- package/dist/controllers/comment.js.map +0 -1
- package/dist/controllers/index.d.ts +0 -25
- package/dist/controllers/index.js +0 -44
- package/dist/controllers/index.js.map +0 -1
- package/dist/controllers/installer.d.ts +0 -3
- package/dist/controllers/installer.js +0 -48
- package/dist/controllers/installer.js.map +0 -1
- package/dist/controllers/login.d.ts +0 -4
- package/dist/controllers/login.js +0 -438
- package/dist/controllers/login.js.map +0 -1
- package/dist/controllers/logout.d.ts +0 -5
- package/dist/controllers/logout.js +0 -11
- package/dist/controllers/logout.js.map +0 -1
- package/dist/controllers/me.d.ts +0 -4
- package/dist/controllers/me.js +0 -369
- package/dist/controllers/me.js.map +0 -1
- package/dist/controllers/notification.d.ts +0 -3
- package/dist/controllers/notification.js +0 -88
- package/dist/controllers/notification.js.map +0 -1
- package/dist/controllers/page.d.ts +0 -3
- package/dist/controllers/page.js +0 -881
- package/dist/controllers/page.js.map +0 -1
- package/dist/controllers/revision.d.ts +0 -3
- package/dist/controllers/revision.js +0 -91
- package/dist/controllers/revision.js.map +0 -1
- package/dist/controllers/search.d.ts +0 -3
- package/dist/controllers/search.js +0 -93
- package/dist/controllers/search.js.map +0 -1
- package/dist/controllers/share.d.ts +0 -3
- package/dist/controllers/share.js +0 -207
- package/dist/controllers/share.js.map +0 -1
- package/dist/controllers/shareAccess.d.ts +0 -3
- package/dist/controllers/shareAccess.js +0 -28
- package/dist/controllers/shareAccess.js.map +0 -1
- package/dist/controllers/slack.d.ts +0 -3
- package/dist/controllers/slack.js +0 -87
- package/dist/controllers/slack.js.map +0 -1
- package/dist/controllers/tokenAuth.d.ts +0 -10
- package/dist/controllers/tokenAuth.js +0 -292
- package/dist/controllers/tokenAuth.js.map +0 -1
- package/dist/controllers/user.d.ts +0 -3
- package/dist/controllers/user.js +0 -67
- package/dist/controllers/user.js.map +0 -1
- package/dist/controllers/version.d.ts +0 -4
- package/dist/controllers/version.js +0 -19
- package/dist/controllers/version.js.map +0 -1
- package/dist/crowi/express-init.d.ts +0 -4
- package/dist/crowi/express-init.js +0 -101
- package/dist/crowi/express-init.js.map +0 -1
- package/dist/form/admin/app.d.ts +0 -2
- package/dist/form/admin/app.js +0 -9
- package/dist/form/admin/app.js.map +0 -1
- package/dist/form/admin/auth.d.ts +0 -2
- package/dist/form/admin/auth.js +0 -9
- package/dist/form/admin/auth.js.map +0 -1
- package/dist/form/admin/aws.d.ts +0 -2
- package/dist/form/admin/aws.js +0 -13
- package/dist/form/admin/aws.js.map +0 -1
- package/dist/form/admin/github.d.ts +0 -2
- package/dist/form/admin/github.js +0 -15
- package/dist/form/admin/github.js.map +0 -1
- package/dist/form/admin/google.d.ts +0 -2
- package/dist/form/admin/google.js +0 -13
- package/dist/form/admin/google.js.map +0 -1
- package/dist/form/admin/mail.d.ts +0 -2
- package/dist/form/admin/mail.js +0 -13
- package/dist/form/admin/mail.js.map +0 -1
- package/dist/form/admin/sec.d.ts +0 -2
- package/dist/form/admin/sec.js +0 -10
- package/dist/form/admin/sec.js.map +0 -1
- package/dist/form/admin/slackSetting.d.ts +0 -2
- package/dist/form/admin/slackSetting.js +0 -13
- package/dist/form/admin/slackSetting.js.map +0 -1
- package/dist/form/admin/userEdit.d.ts +0 -2
- package/dist/form/admin/userEdit.js +0 -9
- package/dist/form/admin/userEdit.js.map +0 -1
- package/dist/form/admin/userInvite.d.ts +0 -2
- package/dist/form/admin/userInvite.js +0 -9
- package/dist/form/admin/userInvite.js.map +0 -1
- package/dist/form/comment.d.ts +0 -2
- package/dist/form/comment.js +0 -9
- package/dist/form/comment.js.map +0 -1
- package/dist/form/index.d.ts +0 -25
- package/dist/form/index.js +0 -48
- package/dist/form/index.js.map +0 -1
- package/dist/form/invited.d.ts +0 -2
- package/dist/form/invited.js +0 -13
- package/dist/form/invited.js.map +0 -1
- package/dist/form/login.d.ts +0 -2
- package/dist/form/login.js +0 -11
- package/dist/form/login.js.map +0 -1
- package/dist/form/me/apiToken.d.ts +0 -2
- package/dist/form/me/apiToken.js +0 -9
- package/dist/form/me/apiToken.js.map +0 -1
- package/dist/form/me/password.d.ts +0 -2
- package/dist/form/me/password.js +0 -11
- package/dist/form/me/password.js.map +0 -1
- package/dist/form/me/user.d.ts +0 -2
- package/dist/form/me/user.js +0 -9
- package/dist/form/me/user.js.map +0 -1
- package/dist/form/register.d.ts +0 -2
- package/dist/form/register.js +0 -13
- package/dist/form/register.js.map +0 -1
- package/dist/form/revision.d.ts +0 -2
- package/dist/form/revision.js +0 -13
- package/dist/form/revision.js.map +0 -1
- package/dist/hono/handlers/admin/share.d.ts +0 -106
- package/dist/hono/handlers/admin/share.js +0 -55
- package/dist/hono/handlers/admin/share.js.map +0 -1
- package/dist/middlewares/accessTokenParser.d.ts +0 -4
- package/dist/middlewares/accessTokenParser.js +0 -29
- package/dist/middlewares/accessTokenParser.js.map +0 -1
- package/dist/middlewares/adminRequired.d.ts +0 -10
- package/dist/middlewares/adminRequired.js +0 -35
- package/dist/middlewares/adminRequired.js.map +0 -1
- package/dist/middlewares/applicationInstalled.d.ts +0 -3
- package/dist/middlewares/applicationInstalled.js +0 -20
- package/dist/middlewares/applicationInstalled.js.map +0 -1
- package/dist/middlewares/applicationNotInstalled.d.ts +0 -3
- package/dist/middlewares/applicationNotInstalled.js +0 -13
- package/dist/middlewares/applicationNotInstalled.js.map +0 -1
- package/dist/middlewares/basicAuth.d.ts +0 -4
- package/dist/middlewares/basicAuth.js +0 -23
- package/dist/middlewares/basicAuth.js.map +0 -1
- package/dist/middlewares/csrfVerify.d.ts +0 -4
- package/dist/middlewares/csrfVerify.js +0 -24
- package/dist/middlewares/csrfVerify.js.map +0 -1
- package/dist/middlewares/encodeSpace.d.ts +0 -3
- package/dist/middlewares/encodeSpace.js +0 -14
- package/dist/middlewares/encodeSpace.js.map +0 -1
- package/dist/middlewares/fileAccessRightOrLoginRequired.d.ts +0 -4
- package/dist/middlewares/fileAccessRightOrLoginRequired.js +0 -29
- package/dist/middlewares/fileAccessRightOrLoginRequired.js.map +0 -1
- package/dist/middlewares/index.d.ts +0 -16
- package/dist/middlewares/index.js +0 -30
- package/dist/middlewares/index.js.map +0 -1
- package/dist/middlewares/jwtAdminRequired.d.ts +0 -8
- package/dist/middlewares/jwtAdminRequired.js +0 -35
- package/dist/middlewares/jwtAdminRequired.js.map +0 -1
- package/dist/middlewares/jwtAuth.d.ts +0 -4
- package/dist/middlewares/jwtAuth.js +0 -104
- package/dist/middlewares/jwtAuth.js.map +0 -1
- package/dist/middlewares/loginChecker.d.ts +0 -4
- package/dist/middlewares/loginChecker.js +0 -32
- package/dist/middlewares/loginChecker.js.map +0 -1
- package/dist/middlewares/loginRequired.d.ts +0 -4
- package/dist/middlewares/loginRequired.js +0 -88
- package/dist/middlewares/loginRequired.js.map +0 -1
- package/dist/routes/admin.d.ts +0 -4
- package/dist/routes/admin.js +0 -17
- package/dist/routes/admin.js.map +0 -1
- package/dist/routes/api/admin.d.ts +0 -4
- package/dist/routes/api/admin.js +0 -37
- package/dist/routes/api/admin.js.map +0 -1
- package/dist/routes/api/attachment.d.ts +0 -4
- package/dist/routes/api/attachment.js +0 -19
- package/dist/routes/api/attachment.js.map +0 -1
- package/dist/routes/api/bookmark.d.ts +0 -4
- package/dist/routes/api/bookmark.js +0 -15
- package/dist/routes/api/bookmark.js.map +0 -1
- package/dist/routes/api/comment.d.ts +0 -4
- package/dist/routes/api/comment.js +0 -14
- package/dist/routes/api/comment.js.map +0 -1
- package/dist/routes/api/index.d.ts +0 -4
- package/dist/routes/api/index.js +0 -36
- package/dist/routes/api/index.js.map +0 -1
- package/dist/routes/api/like.d.ts +0 -4
- package/dist/routes/api/like.js +0 -13
- package/dist/routes/api/like.js.map +0 -1
- package/dist/routes/api/notification.d.ts +0 -4
- package/dist/routes/api/notification.js +0 -15
- package/dist/routes/api/notification.js.map +0 -1
- package/dist/routes/api/page.d.ts +0 -4
- package/dist/routes/api/page.js +0 -24
- package/dist/routes/api/page.js.map +0 -1
- package/dist/routes/api/revision.d.ts +0 -4
- package/dist/routes/api/revision.js +0 -14
- package/dist/routes/api/revision.js.map +0 -1
- package/dist/routes/api/share.d.ts +0 -4
- package/dist/routes/api/share.js +0 -16
- package/dist/routes/api/share.js.map +0 -1
- package/dist/routes/api/version.d.ts +0 -4
- package/dist/routes/api/version.js +0 -10
- package/dist/routes/api/version.js.map +0 -1
- package/dist/routes/index.d.ts +0 -4
- package/dist/routes/index.js +0 -71
- package/dist/routes/index.js.map +0 -1
- package/dist/routes/login.d.ts +0 -4
- package/dist/routes/login.js +0 -18
- package/dist/routes/login.js.map +0 -1
- package/dist/routes/me.d.ts +0 -4
- package/dist/routes/me.js +0 -24
- package/dist/routes/me.js.map +0 -1
- package/dist/routes/ts-rest/admin/app.d.ts +0 -4
- package/dist/routes/ts-rest/admin/app.js +0 -67
- package/dist/routes/ts-rest/admin/app.js.map +0 -1
- package/dist/routes/ts-rest/admin/auth.d.ts +0 -4
- package/dist/routes/ts-rest/admin/auth.js +0 -95
- package/dist/routes/ts-rest/admin/auth.js.map +0 -1
- package/dist/routes/ts-rest/admin/index.d.ts +0 -10
- package/dist/routes/ts-rest/admin/index.js +0 -35
- package/dist/routes/ts-rest/admin/index.js.map +0 -1
- package/dist/routes/ts-rest/admin/mail.d.ts +0 -4
- package/dist/routes/ts-rest/admin/mail.js +0 -156
- package/dist/routes/ts-rest/admin/mail.js.map +0 -1
- package/dist/routes/ts-rest/admin/plugins.d.ts +0 -4
- package/dist/routes/ts-rest/admin/plugins.js +0 -317
- package/dist/routes/ts-rest/admin/plugins.js.map +0 -1
- package/dist/routes/ts-rest/admin/search.d.ts +0 -4
- package/dist/routes/ts-rest/admin/search.js +0 -67
- package/dist/routes/ts-rest/admin/search.js.map +0 -1
- package/dist/routes/ts-rest/admin/security.d.ts +0 -4
- package/dist/routes/ts-rest/admin/security.js +0 -114
- package/dist/routes/ts-rest/admin/security.js.map +0 -1
- package/dist/routes/ts-rest/admin/share.d.ts +0 -4
- package/dist/routes/ts-rest/admin/share.js +0 -69
- package/dist/routes/ts-rest/admin/share.js.map +0 -1
- package/dist/routes/ts-rest/admin/storage.d.ts +0 -4
- package/dist/routes/ts-rest/admin/storage.js +0 -59
- package/dist/routes/ts-rest/admin/storage.js.map +0 -1
- package/dist/routes/ts-rest/admin/users.d.ts +0 -4
- package/dist/routes/ts-rest/admin/users.js +0 -215
- package/dist/routes/ts-rest/admin/users.js.map +0 -1
- package/dist/routes/ts-rest/adminCrypto.d.ts +0 -4
- package/dist/routes/ts-rest/adminCrypto.js +0 -111
- package/dist/routes/ts-rest/adminCrypto.js.map +0 -1
- package/dist/routes/ts-rest/app.d.ts +0 -4
- package/dist/routes/ts-rest/app.js +0 -23
- package/dist/routes/ts-rest/app.js.map +0 -1
- package/dist/routes/ts-rest/attachment.d.ts +0 -4
- package/dist/routes/ts-rest/attachment.js +0 -830
- package/dist/routes/ts-rest/attachment.js.map +0 -1
- package/dist/routes/ts-rest/auth.d.ts +0 -4
- package/dist/routes/ts-rest/auth.js +0 -70
- package/dist/routes/ts-rest/auth.js.map +0 -1
- package/dist/routes/ts-rest/autocomplete.d.ts +0 -30
- package/dist/routes/ts-rest/autocomplete.js +0 -189
- package/dist/routes/ts-rest/autocomplete.js.map +0 -1
- package/dist/routes/ts-rest/backlink.d.ts +0 -4
- package/dist/routes/ts-rest/backlink.js +0 -106
- package/dist/routes/ts-rest/backlink.js.map +0 -1
- package/dist/routes/ts-rest/bookmark.d.ts +0 -4
- package/dist/routes/ts-rest/bookmark.js +0 -189
- package/dist/routes/ts-rest/bookmark.js.map +0 -1
- package/dist/routes/ts-rest/comment.d.ts +0 -4
- package/dist/routes/ts-rest/comment.js +0 -217
- package/dist/routes/ts-rest/comment.js.map +0 -1
- package/dist/routes/ts-rest/draft.d.ts +0 -22
- package/dist/routes/ts-rest/draft.js +0 -200
- package/dist/routes/ts-rest/draft.js.map +0 -1
- package/dist/routes/ts-rest/index.d.ts +0 -4
- package/dist/routes/ts-rest/index.js +0 -103
- package/dist/routes/ts-rest/index.js.map +0 -1
- package/dist/routes/ts-rest/installer.d.ts +0 -4
- package/dist/routes/ts-rest/installer.js +0 -77
- package/dist/routes/ts-rest/installer.js.map +0 -1
- package/dist/routes/ts-rest/me.d.ts +0 -4
- package/dist/routes/ts-rest/me.js +0 -410
- package/dist/routes/ts-rest/me.js.map +0 -1
- package/dist/routes/ts-rest/notification.d.ts +0 -4
- package/dist/routes/ts-rest/notification.js +0 -241
- package/dist/routes/ts-rest/notification.js.map +0 -1
- package/dist/routes/ts-rest/page-collab.d.ts +0 -29
- package/dist/routes/ts-rest/page-collab.js +0 -90
- package/dist/routes/ts-rest/page-collab.js.map +0 -1
- package/dist/routes/ts-rest/page-preview.d.ts +0 -26
- package/dist/routes/ts-rest/page-preview.js +0 -80
- package/dist/routes/ts-rest/page-preview.js.map +0 -1
- package/dist/routes/ts-rest/page.d.ts +0 -4
- package/dist/routes/ts-rest/page.js +0 -676
- package/dist/routes/ts-rest/page.js.map +0 -1
- package/dist/routes/ts-rest/presence.d.ts +0 -30
- package/dist/routes/ts-rest/presence.js +0 -155
- package/dist/routes/ts-rest/presence.js.map +0 -1
- package/dist/routes/ts-rest/revision.d.ts +0 -4
- package/dist/routes/ts-rest/revision.js +0 -240
- package/dist/routes/ts-rest/revision.js.map +0 -1
- package/dist/routes/ts-rest/search.d.ts +0 -4
- package/dist/routes/ts-rest/search.js +0 -121
- package/dist/routes/ts-rest/search.js.map +0 -1
- package/dist/routes/ts-rest/tokenAuth.d.ts +0 -4
- package/dist/routes/ts-rest/tokenAuth.js +0 -94
- package/dist/routes/ts-rest/tokenAuth.js.map +0 -1
- package/dist/routes/ts-rest/user.d.ts +0 -4
- package/dist/routes/ts-rest/user.js +0 -307
- package/dist/routes/ts-rest/user.js.map +0 -1
- package/dist/types/express.d.ts +0 -34
- package/dist/types/express.js +0 -50
- package/dist/types/express.js.map +0 -1
- package/dist/util/accessTokenParser.d.ts +0 -1
- package/dist/util/accessTokenParser.js +0 -34
- package/dist/util/accessTokenParser.js.map +0 -1
- package/dist/util/apiPaginate.d.ts +0 -11
- package/dist/util/apiPaginate.js +0 -33
- package/dist/util/apiPaginate.js.map +0 -1
- package/dist/util/apiResponse.d.ts +0 -9
- package/dist/util/apiResponse.js +0 -23
- package/dist/util/apiResponse.js.map +0 -1
- package/dist/util/auth.d.ts +0 -11
- package/dist/util/auth.js +0 -48
- package/dist/util/auth.js.map +0 -1
- package/dist/util/aws-config-migration.d.ts +0 -11
- package/dist/util/aws-config-migration.js +0 -68
- package/dist/util/aws-config-migration.js.map +0 -1
- package/dist/util/formUtil.d.ts +0 -2
- package/dist/util/formUtil.js +0 -15
- package/dist/util/formUtil.js.map +0 -1
- package/dist/util/githubAuth.d.ts +0 -2
- package/dist/util/githubAuth.js +0 -82
- package/dist/util/githubAuth.js.map +0 -1
- package/dist/util/googleAuth.d.ts +0 -2
- package/dist/util/googleAuth.js +0 -85
- package/dist/util/googleAuth.js.map +0 -1
- package/dist/util/mailer.d.ts +0 -7
- package/dist/util/mailer.js +0 -98
- package/dist/util/mailer.js.map +0 -1
- package/dist/util/page-status-migration.d.ts +0 -23
- package/dist/util/page-status-migration.js +0 -48
- package/dist/util/page-status-migration.js.map +0 -1
- package/dist/util/ssr.d.ts +0 -3
- package/dist/util/ssr.js +0 -9
- package/dist/util/ssr.js.map +0 -1
- package/dist/util/view.d.ts +0 -10
- package/dist/util/view.js +0 -99
- package/dist/util/view.js.map +0 -1
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.replaceUrlInBody = replaceUrlInBody;
|
|
4
|
+
exports.assessReplaceSafety = assessReplaceSafety;
|
|
5
|
+
exports.runReplaceUrl = runReplaceUrl;
|
|
6
|
+
const runner_1 = require("../migration/runner");
|
|
7
|
+
const page_1 = require("../models/page");
|
|
8
|
+
/**
|
|
9
|
+
* feature-url-replace-admin-cli — bulk in-body URL/host replacement.
|
|
10
|
+
*
|
|
11
|
+
* When a Crowi instance changes its public domain during a v1→v2 migration,
|
|
12
|
+
* page bodies keep absolute URLs pinned to the old host (e.g.
|
|
13
|
+
* ``). File / page ids are carried
|
|
14
|
+
* over unchanged, so the fix is a literal host (URL prefix) swap — not an id
|
|
15
|
+
* remap. Run via `crowi-admin replace url --from <url> --to <url>`.
|
|
16
|
+
*
|
|
17
|
+
* Why this does NOT route through `Page.updatePage` / `ctx.rewritePageBody`
|
|
18
|
+
* (the path `wikilink-format` uses): `updatePage` ends with
|
|
19
|
+
* `pageEvent.emit('update', …, revisionCreated=true)`, and `onUpdate`
|
|
20
|
+
* (registered unconditionally in `setupModels`, so live even under the CLI's
|
|
21
|
+
* `initForCli`) fans out an UPDATE notification to every watcher, auto-watches
|
|
22
|
+
* the acting user onto every touched page, and kicks per-page search/backlink
|
|
23
|
+
* side effects that race `teardownForCli`. A domain cleanup must be invisible
|
|
24
|
+
* to end users, so we rewrite at the persistence layer WITHOUT emitting the
|
|
25
|
+
* event: push a new revision, repoint `revision` / `currentRevision`, null the
|
|
26
|
+
* Yjs snapshot (so the next `onLoadDocument` rebuilds from the new body — the
|
|
27
|
+
* same invariant `updatePage` upholds), and deliberately leave `updatedAt` /
|
|
28
|
+
* `lastUpdateUser` / `grant` untouched so listings and visibility don't move.
|
|
29
|
+
* (`updatePage` would also corrupt grant here — `grant = options.grant || null`
|
|
30
|
+
* nulls a public page's grant when called with `{}`.)
|
|
31
|
+
*
|
|
32
|
+
* Derived data after a run: served HTML is fresh because `prepareRevision`
|
|
33
|
+
* re-renders `renderedAst` onto the new revision; only the per-page embed cache
|
|
34
|
+
* is evicted directly. Search must be rebuilt separately (`crowi-admin rebuild
|
|
35
|
+
* search`); backlinks are unaffected (external URLs are not internal links).
|
|
36
|
+
*/
|
|
37
|
+
/** Minimum sensible `--from` length; anything shorter risks mass corruption. */
|
|
38
|
+
const MIN_FROM_LENGTH = 4;
|
|
39
|
+
/** How many matched pages to surface as preview samples. */
|
|
40
|
+
const SAMPLE_LIMIT = 10;
|
|
41
|
+
/** Max characters of a sample line before truncation. */
|
|
42
|
+
const SNIPPET_MAX = 160;
|
|
43
|
+
/**
|
|
44
|
+
* Literal, single-pass, global substring replacement. `from` is matched
|
|
45
|
+
* verbatim (no regex), so it is safe for URLs full of `/` `.` `?` etc.
|
|
46
|
+
* `from === to` / empty `from` are no-ops. Returns the input body by reference
|
|
47
|
+
* when there is nothing to change so callers can cheap-skip on `result.body === body`.
|
|
48
|
+
*/
|
|
49
|
+
function replaceUrlInBody(body, from, to) {
|
|
50
|
+
if (from === '' || from === to)
|
|
51
|
+
return { body, occurrences: 0 };
|
|
52
|
+
const parts = body.split(from);
|
|
53
|
+
const occurrences = parts.length - 1;
|
|
54
|
+
if (occurrences === 0)
|
|
55
|
+
return { body, occurrences: 0 };
|
|
56
|
+
return { body: parts.join(to), occurrences };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Assess whether a `from`→`to` pair is safe to apply as a literal replace.
|
|
60
|
+
* Pure + exported so both the CLI and tests share one rule set.
|
|
61
|
+
*
|
|
62
|
+
* The headline risk of literal substring replace is silent prefix corruption:
|
|
63
|
+
* `from = "wiki.example.in"` is a prefix of `wiki.example.int`, so a bare host
|
|
64
|
+
* can mangle unrelated domains. We therefore flag scheme-less `from` (caller
|
|
65
|
+
* gates it behind `--force`) and reject empty / identical / too-short inputs.
|
|
66
|
+
*/
|
|
67
|
+
function assessReplaceSafety(from, to) {
|
|
68
|
+
const errors = [];
|
|
69
|
+
const warnings = [];
|
|
70
|
+
if (from === '')
|
|
71
|
+
errors.push('--from must not be empty.');
|
|
72
|
+
else if (from === to)
|
|
73
|
+
errors.push('--from and --to are identical; nothing to replace.');
|
|
74
|
+
else if (from.length < MIN_FROM_LENGTH)
|
|
75
|
+
errors.push(`--from is too short (<${MIN_FROM_LENGTH} chars); refusing to avoid mass corruption.`);
|
|
76
|
+
const bareHostFrom = from.length > 0 && !/^https?:\/\//i.test(from);
|
|
77
|
+
if (from.length > 0 && to.length > 0) {
|
|
78
|
+
if (to.includes(from))
|
|
79
|
+
warnings.push('--to contains --from; re-running this command would replace again (not idempotent).');
|
|
80
|
+
else if (from.includes(to))
|
|
81
|
+
warnings.push('--from contains --to; double-check you did not swap --from and --to.');
|
|
82
|
+
}
|
|
83
|
+
return { errors, warnings, bareHostFrom };
|
|
84
|
+
}
|
|
85
|
+
/** Status set in scope: default = published + legacy null; +trash adds deleted/deprecated. */
|
|
86
|
+
function statusFilter(includeTrash) {
|
|
87
|
+
const statuses = includeTrash ? [null, page_1.STATUS_PUBLISHED, page_1.STATUS_DELETED, page_1.STATUS_DEPRECATED] : [null, page_1.STATUS_PUBLISHED];
|
|
88
|
+
return { status: { $in: statuses } };
|
|
89
|
+
}
|
|
90
|
+
/** Extract the first line containing `from`, trimmed and capped, for a preview sample. */
|
|
91
|
+
function firstSnippet(body, from) {
|
|
92
|
+
const idx = body.indexOf(from);
|
|
93
|
+
if (idx === -1)
|
|
94
|
+
return '';
|
|
95
|
+
const lineStart = body.lastIndexOf('\n', idx) + 1;
|
|
96
|
+
const nl = body.indexOf('\n', idx);
|
|
97
|
+
const lineEnd = nl === -1 ? body.length : nl;
|
|
98
|
+
const line = body.slice(lineStart, lineEnd).trim();
|
|
99
|
+
return line.length > SNIPPET_MAX ? `${line.slice(0, SNIPPET_MAX)}…` : line;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Resolve the author recorded on every new revision: `--user <email>` (must
|
|
103
|
+
* exist) → else the oldest admin (deterministic). `prepareRevision` throws on a
|
|
104
|
+
* userless revision, so a real user must be resolved up front. Mirrors
|
|
105
|
+
* `wikilink-format`'s `resolveActingUserId`.
|
|
106
|
+
*/
|
|
107
|
+
async function resolveActingUser(crowi, email) {
|
|
108
|
+
const User = crowi.model('User');
|
|
109
|
+
if (email) {
|
|
110
|
+
const named = await User.findOne({ email }).exec();
|
|
111
|
+
if (!named)
|
|
112
|
+
throw new Error(`--user '${email}': no user with that email exists.`);
|
|
113
|
+
return named;
|
|
114
|
+
}
|
|
115
|
+
const admin = await User.findOne({ admin: true }).sort({ createdAt: 1 }).exec();
|
|
116
|
+
if (!admin)
|
|
117
|
+
throw new Error('replace url: no admin user found; pass --user <email> or create an admin user first.');
|
|
118
|
+
return admin;
|
|
119
|
+
}
|
|
120
|
+
/** Walk in-scope pages, returning those whose current revision body contains `from`. */
|
|
121
|
+
async function scan(crowi, from, includeTrash) {
|
|
122
|
+
const Page = crowi.model('Page');
|
|
123
|
+
const Revision = crowi.model('Revision');
|
|
124
|
+
const matches = [];
|
|
125
|
+
const samples = [];
|
|
126
|
+
let pagesScanned = 0;
|
|
127
|
+
let occurrences = 0;
|
|
128
|
+
// Stream-walk so a large install doesn't have to fit in memory. Read each
|
|
129
|
+
// page's CURRENT revision body (the body editors / viewers seed from).
|
|
130
|
+
const cursor = Page.find(statusFilter(includeTrash)).select('_id path revision').lean().cursor();
|
|
131
|
+
for (let page = await cursor.next(); page != null; page = await cursor.next()) {
|
|
132
|
+
pagesScanned++;
|
|
133
|
+
const pageDoc = page;
|
|
134
|
+
if (!pageDoc.revision)
|
|
135
|
+
continue;
|
|
136
|
+
const rev = (await Revision.findById(pageDoc.revision).select('body').lean());
|
|
137
|
+
const body = rev?.body;
|
|
138
|
+
if (typeof body !== 'string' || !body.includes(from))
|
|
139
|
+
continue;
|
|
140
|
+
const occ = body.split(from).length - 1;
|
|
141
|
+
if (occ === 0)
|
|
142
|
+
continue;
|
|
143
|
+
matches.push({ pageId: String(pageDoc._id), path: pageDoc.path });
|
|
144
|
+
occurrences += occ;
|
|
145
|
+
if (samples.length < SAMPLE_LIMIT)
|
|
146
|
+
samples.push({ path: pageDoc.path, occurrences: occ, snippet: firstSnippet(body, from) });
|
|
147
|
+
}
|
|
148
|
+
return { matches, pagesScanned, preview: { pagesMatched: matches.length, occurrences, samples } };
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Quietly rewrite one page's current body: re-read the latest revision (so a
|
|
152
|
+
* concurrent edit isn't clobbered with stale content), re-apply the literal
|
|
153
|
+
* replace, push a new revision, repoint `revision` / `currentRevision`, and
|
|
154
|
+
* null the Yjs snapshot — WITHOUT touching `updatedAt` / `lastUpdateUser` /
|
|
155
|
+
* `grant` and WITHOUT emitting `pageEvent`. Returns true when a rewrite was
|
|
156
|
+
* written, false when the page vanished or no longer matches.
|
|
157
|
+
*/
|
|
158
|
+
async function quietRewrite(crowi, pageId, from, to, actingUser) {
|
|
159
|
+
const Page = crowi.model('Page');
|
|
160
|
+
const Revision = crowi.model('Revision');
|
|
161
|
+
const page = await Page.findById(pageId).exec();
|
|
162
|
+
if (!page?.revision)
|
|
163
|
+
return false;
|
|
164
|
+
const currentRev = await Revision.findById(page.revision).exec();
|
|
165
|
+
if (!currentRev || typeof currentRev.body !== 'string')
|
|
166
|
+
return false;
|
|
167
|
+
const { body: newBody, occurrences } = replaceUrlInBody(currentRev.body, from, to);
|
|
168
|
+
if (occurrences === 0)
|
|
169
|
+
return false; // changed since the scan — nothing to do
|
|
170
|
+
const newRevision = await Revision.prepareRevision(page, newBody, actingUser, {});
|
|
171
|
+
await newRevision.save();
|
|
172
|
+
// Repoint both pointers (display + collab seed) and drop the Y.Doc snapshot
|
|
173
|
+
// so the next onLoadDocument rebuilds from the new body. Leave updatedAt /
|
|
174
|
+
// lastUpdateUser / grant exactly as they were — the change is invisible in
|
|
175
|
+
// listings and visibility, auditable only via the new revision's author.
|
|
176
|
+
page.revision = newRevision._id;
|
|
177
|
+
page.currentRevision = newRevision._id;
|
|
178
|
+
page.yjsState = null;
|
|
179
|
+
page.yjsCheckpointAt = null;
|
|
180
|
+
await page.save();
|
|
181
|
+
// Evict only this page's embed render cache, directly (not via pageEvent, so
|
|
182
|
+
// no notification fan-out). Served markdown is already fresh via the new
|
|
183
|
+
// revision's renderedAst; this covers `@[tag](old-url)` plugin embeds.
|
|
184
|
+
const renderer = crowi.renderer;
|
|
185
|
+
if (renderer && crowi.isMongoConnected()) {
|
|
186
|
+
try {
|
|
187
|
+
await renderer.cache.invalidatePage(String(page._id));
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// best-effort — a stale embed cache entry is not worth failing the run
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Scan every in-scope page for `from`, optionally confirm, then quietly rewrite
|
|
197
|
+
* each match to `to`. Reuses `MigrationRunnerCore` purely for its public
|
|
198
|
+
* SIGINT-aware bounded-concurrency map (`mapBounded` / `installSigintHandler`);
|
|
199
|
+
* it never touches the migration audit log.
|
|
200
|
+
*/
|
|
201
|
+
async function runReplaceUrl(crowi, opts) {
|
|
202
|
+
const { from, to } = opts;
|
|
203
|
+
const dryRun = Boolean(opts.dryRun);
|
|
204
|
+
const includeTrash = Boolean(opts.includeTrash);
|
|
205
|
+
// Resolve the acting user before the (potentially long) scan so a bad
|
|
206
|
+
// `--user` fails fast. Not needed for a dry-run (no writes).
|
|
207
|
+
const actingUser = dryRun ? undefined : await resolveActingUser(crowi, opts.userEmail);
|
|
208
|
+
const { matches, pagesScanned, preview } = await scan(crowi, from, includeTrash);
|
|
209
|
+
const base = {
|
|
210
|
+
...preview,
|
|
211
|
+
from,
|
|
212
|
+
to,
|
|
213
|
+
dryRun,
|
|
214
|
+
aborted: false,
|
|
215
|
+
pagesScanned,
|
|
216
|
+
pagesRewritten: 0,
|
|
217
|
+
failed: 0,
|
|
218
|
+
interrupted: false,
|
|
219
|
+
actingUserEmail: actingUser?.email,
|
|
220
|
+
};
|
|
221
|
+
if (dryRun || matches.length === 0)
|
|
222
|
+
return base;
|
|
223
|
+
if (opts.confirm) {
|
|
224
|
+
const proceed = await opts.confirm(preview);
|
|
225
|
+
if (!proceed)
|
|
226
|
+
return { ...base, aborted: true };
|
|
227
|
+
}
|
|
228
|
+
const core = new runner_1.MigrationRunnerCore(crowi, { concurrency: opts.concurrency ?? 8 });
|
|
229
|
+
const dispose = core.installSigintHandler();
|
|
230
|
+
let pagesRewritten = 0;
|
|
231
|
+
let failed = 0;
|
|
232
|
+
try {
|
|
233
|
+
const { interrupted } = await core.mapBounded(matches, async (m) => {
|
|
234
|
+
opts.progress?.setLabel(m.path);
|
|
235
|
+
try {
|
|
236
|
+
if (await quietRewrite(crowi, m.pageId, from, to, actingUser))
|
|
237
|
+
pagesRewritten++;
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
failed++;
|
|
241
|
+
core.context.logger.warn(`replace url: failed on ${m.path}: ${err instanceof Error ? err.message : String(err)}`);
|
|
242
|
+
}
|
|
243
|
+
opts.progress?.increment(1);
|
|
244
|
+
});
|
|
245
|
+
return { ...base, pagesRewritten, failed, interrupted };
|
|
246
|
+
}
|
|
247
|
+
finally {
|
|
248
|
+
dispose();
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=replace-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-url.js","sourceRoot":"","sources":["../../src/util/replace-url.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crowi/api",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.2",
|
|
4
4
|
"main": "dist/app.js",
|
|
5
5
|
"types": "dist/app.d.ts",
|
|
6
6
|
"bin": {
|
|
@@ -8,12 +8,19 @@
|
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist",
|
|
11
|
+
"views",
|
|
12
|
+
"public",
|
|
11
13
|
"README.md"
|
|
12
14
|
],
|
|
13
15
|
"publishConfig": {
|
|
14
16
|
"access": "public"
|
|
15
17
|
},
|
|
16
18
|
"description": "The simple & powerful Wiki - API Server",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/crowi/crowi.git",
|
|
22
|
+
"directory": "packages/api"
|
|
23
|
+
},
|
|
17
24
|
"tags": [
|
|
18
25
|
"wiki",
|
|
19
26
|
"communication",
|
|
@@ -42,7 +49,7 @@
|
|
|
42
49
|
"debug": "^4.4.3",
|
|
43
50
|
"dotenv": "^16.5.0",
|
|
44
51
|
"github-slugger": "^2.0.0",
|
|
45
|
-
"hono": "^4.
|
|
52
|
+
"hono": "^4.12.25",
|
|
46
53
|
"hono-rate-limiter": "^0.5.3",
|
|
47
54
|
"jiti": "^2.7.0",
|
|
48
55
|
"jsonwebtoken": "^9.0.2",
|
|
@@ -57,10 +64,10 @@
|
|
|
57
64
|
"shiki": "^4.0.2",
|
|
58
65
|
"unified": "^11.0.5",
|
|
59
66
|
"uuid": "^11.1.1",
|
|
60
|
-
"ws": "^8.
|
|
67
|
+
"ws": "^8.21.0",
|
|
61
68
|
"zod": "^4.4.3",
|
|
62
|
-
"@crowi/api-contract": "^2.0.0-alpha.
|
|
63
|
-
"@crowi/collab": "^0.1.0-alpha.
|
|
69
|
+
"@crowi/api-contract": "^2.0.0-alpha.2",
|
|
70
|
+
"@crowi/collab": "^0.1.0-alpha.1",
|
|
64
71
|
"@crowi/plugin-api": "^0.1.0-alpha.0",
|
|
65
72
|
"@crowi/runner": "^0.1.0-alpha.0"
|
|
66
73
|
},
|
|
@@ -79,6 +86,7 @@
|
|
|
79
86
|
"@typescript-eslint/parser": "^6.21.0",
|
|
80
87
|
"eslint": "^8.57.1",
|
|
81
88
|
"faker": "^4.1.0",
|
|
89
|
+
"form-data": "^4.0.6",
|
|
82
90
|
"jest": "^29.7.0",
|
|
83
91
|
"mongodb-memory-server": "^10.1.4",
|
|
84
92
|
"regenerator-runtime": "^0.13.3",
|
|
Binary file
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<mj-text font-size="20px" font-weight="700" padding="24px 24px 8px">{{ t.activation.heading }}</mj-text>
|
|
2
|
+
<mj-text padding="0 24px 16px">{{ t.activation.intro }}</mj-text>
|
|
3
|
+
<mj-button href="{{ activationUrl }}" background-color="#3b6e72" color="#ffffff" font-size="15px" font-weight="600" border-radius="8px" padding="8px 24px 20px" inner-padding="12px 28px">
|
|
4
|
+
{{ t.activation.cta }}
|
|
5
|
+
</mj-button>
|
|
6
|
+
<mj-text padding="0 24px 4px" font-size="13px" color="#6b7280">{{ t.activation.expiresNote }}</mj-text>
|
|
7
|
+
<mj-text padding="0 24px 8px" font-size="13px" color="#6b7280">{{ t.common.linkFallback }}<br /><a href="{{ activationUrl }}" style="color:#3b6e72;word-break:break-all;">{{ activationUrl }}</a></mj-text>
|
|
8
|
+
<mj-divider border-color="#eceef0" padding="12px 24px" />
|
|
9
|
+
<mj-text padding="0 24px 16px" font-size="12px" color="#9aa0a6">{{ t.activation.ignoreNote }}</mj-text>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<mj-text font-size="20px" font-weight="700" padding="24px 24px 8px">{{ t.adminApprovalPending.heading }}</mj-text>
|
|
2
|
+
<mj-text padding="0 24px 8px">{{ t.adminApprovalPending.intro }}</mj-text>
|
|
3
|
+
<mj-text padding="0 24px 16px" font-size="15px"><strong>{{ createdUserName }}</strong><br /><span style="color:#6b7280;">{{ createdUserEmail }}</span></mj-text>
|
|
4
|
+
<mj-button href="{{ adminUsersUrl }}" background-color="#3b6e72" color="#ffffff" font-size="15px" font-weight="600" border-radius="8px" padding="0 24px 20px" inner-padding="12px 28px">
|
|
5
|
+
{{ t.adminApprovalPending.cta }}
|
|
6
|
+
</mj-button>
|
|
7
|
+
<mj-text padding="0 24px 16px" font-size="13px" color="#6b7280">{{ t.common.linkFallback }}<br /><a href="{{ adminUsersUrl }}" style="color:#3b6e72;word-break:break-all;">{{ adminUsersUrl }}</a></mj-text>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<mj-text font-size="20px" font-weight="700" padding="24px 24px 8px">{{ t.emailChange.heading }}</mj-text>
|
|
2
|
+
<mj-text padding="0 24px 16px">{{ t.emailChange.intro }}</mj-text>
|
|
3
|
+
<mj-button href="{{ confirmUrl }}" background-color="#3b6e72" color="#ffffff" font-size="15px" font-weight="600" border-radius="8px" padding="8px 24px 20px" inner-padding="12px 28px">
|
|
4
|
+
{{ t.emailChange.cta }}
|
|
5
|
+
</mj-button>
|
|
6
|
+
<mj-text padding="0 24px 4px" font-size="13px" color="#6b7280">{{ t.emailChange.expiresNote }}</mj-text>
|
|
7
|
+
<mj-text padding="0 24px 8px" font-size="13px" color="#6b7280">{{ t.common.linkFallback }}<br /><a href="{{ confirmUrl }}" style="color:#3b6e72;word-break:break-all;">{{ confirmUrl }}</a></mj-text>
|
|
8
|
+
<mj-divider border-color="#eceef0" padding="12px 24px" />
|
|
9
|
+
<mj-text padding="0 24px 16px" font-size="12px" color="#9aa0a6">{{ t.emailChange.ignoreNote }}</mj-text>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<mj-text font-size="20px" font-weight="700" padding="24px 24px 8px">{{ t.invite.heading }}</mj-text>
|
|
2
|
+
<mj-text padding="0 24px 16px">{{ t.invite.intro }}</mj-text>
|
|
3
|
+
<mj-button href="{{ inviteUrl }}" background-color="#3b6e72" color="#ffffff" font-size="15px" font-weight="600" border-radius="8px" padding="8px 24px 20px" inner-padding="12px 28px">
|
|
4
|
+
{{ t.invite.cta }}
|
|
5
|
+
</mj-button>
|
|
6
|
+
<mj-text padding="0 24px 4px" font-size="13px" color="#6b7280">{{ t.invite.expiresNote }}</mj-text>
|
|
7
|
+
<mj-text padding="0 24px 8px" font-size="13px" color="#6b7280">{{ t.common.linkFallback }}<br /><a href="{{ inviteUrl }}" style="color:#3b6e72;word-break:break-all;">{{ inviteUrl }}</a></mj-text>
|
|
8
|
+
<mj-divider border-color="#eceef0" padding="12px 24px" />
|
|
9
|
+
<mj-text padding="0 24px 16px" font-size="12px" color="#9aa0a6">{{ t.invite.ignoreNote }}</mj-text>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<mjml>
|
|
2
|
+
<mj-head>
|
|
3
|
+
<mj-title>{{ subject }}</mj-title>
|
|
4
|
+
<mj-preview>{{ preheader }}</mj-preview>
|
|
5
|
+
<mj-attributes>
|
|
6
|
+
<mj-all font-family="-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Noto Sans JP',Helvetica,Arial,sans-serif" />
|
|
7
|
+
<mj-text font-size="15px" line-height="1.7" color="#2b2f33" />
|
|
8
|
+
</mj-attributes>
|
|
9
|
+
<mj-style>
|
|
10
|
+
.crowi-footer a { color: #6b7280 !important; }
|
|
11
|
+
</mj-style>
|
|
12
|
+
</mj-head>
|
|
13
|
+
<mj-body background-color="#f4f5f7">
|
|
14
|
+
<mj-section padding="50px 0 40px">
|
|
15
|
+
<mj-column>
|
|
16
|
+
<mj-image src="{{ logoUrl }}" alt="{{ appTitle }}" width="132px" align="center" padding="0" />
|
|
17
|
+
</mj-column>
|
|
18
|
+
</mj-section>
|
|
19
|
+
|
|
20
|
+
<mj-wrapper padding="0 16px">
|
|
21
|
+
<mj-section background-color="#ffffff" border-radius="12px" padding="8px 8px">
|
|
22
|
+
<mj-column>
|
|
23
|
+
<!--BODY-->
|
|
24
|
+
</mj-column>
|
|
25
|
+
</mj-section>
|
|
26
|
+
</mj-wrapper>
|
|
27
|
+
|
|
28
|
+
<mj-section padding="16px 0 32px">
|
|
29
|
+
<mj-column>
|
|
30
|
+
<mj-text css-class="crowi-footer" align="center" font-size="12px" color="#6b7280" line-height="1.6">
|
|
31
|
+
<strong>{{ appTitle }}</strong><br />
|
|
32
|
+
{{ t.common.footerTagline }}<br />
|
|
33
|
+
<a href="{{ appUrl }}">{{ appUrl }}</a>
|
|
34
|
+
</mj-text>
|
|
35
|
+
</mj-column>
|
|
36
|
+
</mj-section>
|
|
37
|
+
</mj-body>
|
|
38
|
+
</mjml>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<mj-text font-size="20px" font-weight="700" padding="24px 24px 8px">{{ t.passwordChanged.heading }}</mj-text>
|
|
2
|
+
<mj-text padding="0 24px 16px">{{ t.passwordChanged.intro }}</mj-text>
|
|
3
|
+
<mj-divider border-color="#eceef0" padding="4px 24px" />
|
|
4
|
+
<mj-text padding="8px 24px 16px" font-size="12px" color="#9aa0a6">{{ t.passwordChanged.ignoreNote }}</mj-text>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<mj-text font-size="20px" font-weight="700" padding="24px 24px 8px">{{ t.passwordReset.heading }}</mj-text>
|
|
2
|
+
<mj-text padding="0 24px 16px">{{ t.passwordReset.intro }}</mj-text>
|
|
3
|
+
<mj-button href="{{ resetUrl }}" background-color="#3b6e72" color="#ffffff" font-size="15px" font-weight="600" border-radius="8px" padding="8px 24px 20px" inner-padding="12px 28px">
|
|
4
|
+
{{ t.passwordReset.cta }}
|
|
5
|
+
</mj-button>
|
|
6
|
+
<mj-text padding="0 24px 4px" font-size="13px" color="#6b7280">{{ t.passwordReset.expiresNote }}</mj-text>
|
|
7
|
+
<mj-text padding="0 24px 8px" font-size="13px" color="#6b7280">{{ t.common.linkFallback }}<br /><a href="{{ resetUrl }}" style="color:#3b6e72;word-break:break-all;">{{ resetUrl }}</a></mj-text>
|
|
8
|
+
<mj-divider border-color="#eceef0" padding="12px 24px" />
|
|
9
|
+
<mj-text padding="0 24px 16px" font-size="12px" color="#9aa0a6">{{ t.passwordReset.ignoreNote }}</mj-text>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function path2name(path: any): any;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = path2name;
|
|
4
|
-
function path2name(path) {
|
|
5
|
-
const name = path;
|
|
6
|
-
// /.../YYYY/MM/DD 形式のページ
|
|
7
|
-
if (name.match(/^.*?([^/]+\/\d{4}\/\d{2}\/\d{2}\/?)$/)) {
|
|
8
|
-
return name.replace(/^.*?([^/]+\/\d{4}\/\d{2}\/\d{2}\/?)$/, '$1');
|
|
9
|
-
}
|
|
10
|
-
// /.../YYYY/MM 形式のページ
|
|
11
|
-
if (name.match(/^.*?([^/]+\/\d{4}\/\d{2}\/?)$/)) {
|
|
12
|
-
return name.replace(/^.*?([^/]+\/\d{4}\/\d{2}\/?)$/, '$1');
|
|
13
|
-
}
|
|
14
|
-
// /.../YYYY 形式のページ
|
|
15
|
-
if (name.match(/^.*?([^/]+\/\d{4}\/?)$/)) {
|
|
16
|
-
return name.replace(/^.*?([^/]+\/\d{4}\/?)$/, '$1');
|
|
17
|
-
}
|
|
18
|
-
// ページの末尾を拾う
|
|
19
|
-
const suffix = name.replace(/.*\/(.+\/?)$/, '$1');
|
|
20
|
-
return suffix || name;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=path2name.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path2name.js","sourceRoot":"","sources":["../../../src/common/functions/path2name.ts"],"names":[],"mappings":";;AAAA,4BAqBC;AArBD,SAAwB,SAAS,CAAC,IAAI;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC;IAElB,yBAAyB;IACzB,IAAI,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,sBAAsB;IACtB,IAAI,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,mBAAmB;IACnB,IAAI,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,YAAY;IACZ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function renderIcon(path: string, classNames?: string[], attributes?: string): string;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = renderIcon;
|
|
4
|
-
function renderIcon(path, classNames = [], attributes = '') {
|
|
5
|
-
const className = ['mdi-svg', ...classNames].join(' ');
|
|
6
|
-
const formattedAttributes = attributes && ` ${attributes}`;
|
|
7
|
-
return `<svg viewBox="0 0 24 24" role="presentation" class="${className}"${formattedAttributes}><path d="${path}"></path></svg>`;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=renderIcon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"renderIcon.js","sourceRoot":"","sources":["../../../src/common/functions/renderIcon.ts"],"names":[],"mappings":";;AAAA,6BAIC;AAJD,SAAwB,UAAU,CAAC,IAAY,EAAE,aAAuB,EAAE,EAAE,UAAU,GAAG,EAAE;IACzF,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvD,MAAM,mBAAmB,GAAG,UAAU,IAAI,IAAI,UAAU,EAAE,CAAC;IAC3D,OAAO,uDAAuD,SAAS,IAAI,mBAAmB,aAAa,IAAI,iBAAiB,CAAC;AACnI,CAAC"}
|