@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.
Files changed (887) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app.d.ts +8 -0
  3. package/dist/app.js +65 -0
  4. package/dist/app.js.map +1 -0
  5. package/dist/collab/attach.d.ts +33 -0
  6. package/dist/collab/attach.js +341 -0
  7. package/dist/collab/attach.js.map +1 -0
  8. package/dist/collab/extension-redis.d.ts +25 -0
  9. package/dist/collab/extension-redis.js +133 -0
  10. package/dist/collab/extension-redis.js.map +1 -0
  11. package/dist/common/functions/path2name.d.ts +1 -0
  12. package/dist/common/functions/path2name.js +22 -0
  13. package/dist/common/functions/path2name.js.map +1 -0
  14. package/dist/common/functions/renderIcon.d.ts +1 -0
  15. package/dist/common/functions/renderIcon.js +9 -0
  16. package/dist/common/functions/renderIcon.js.map +1 -0
  17. package/dist/controllers/admin.d.ts +3 -0
  18. package/dist/controllers/admin.js +474 -0
  19. package/dist/controllers/admin.js.map +1 -0
  20. package/dist/controllers/attachment.d.ts +4 -0
  21. package/dist/controllers/attachment.js +200 -0
  22. package/dist/controllers/attachment.js.map +1 -0
  23. package/dist/controllers/backlink.d.ts +3 -0
  24. package/dist/controllers/backlink.js +42 -0
  25. package/dist/controllers/backlink.js.map +1 -0
  26. package/dist/controllers/bookmark.d.ts +3 -0
  27. package/dist/controllers/bookmark.js +100 -0
  28. package/dist/controllers/bookmark.js.map +1 -0
  29. package/dist/controllers/comment.d.ts +3 -0
  30. package/dist/controllers/comment.js +111 -0
  31. package/dist/controllers/comment.js.map +1 -0
  32. package/dist/controllers/index.d.ts +25 -0
  33. package/dist/controllers/index.js +44 -0
  34. package/dist/controllers/index.js.map +1 -0
  35. package/dist/controllers/installer.d.ts +3 -0
  36. package/dist/controllers/installer.js +48 -0
  37. package/dist/controllers/installer.js.map +1 -0
  38. package/dist/controllers/login.d.ts +4 -0
  39. package/dist/controllers/login.js +438 -0
  40. package/dist/controllers/login.js.map +1 -0
  41. package/dist/controllers/logout.d.ts +5 -0
  42. package/dist/controllers/logout.js +11 -0
  43. package/dist/controllers/logout.js.map +1 -0
  44. package/dist/controllers/me.d.ts +4 -0
  45. package/dist/controllers/me.js +369 -0
  46. package/dist/controllers/me.js.map +1 -0
  47. package/dist/controllers/notification.d.ts +3 -0
  48. package/dist/controllers/notification.js +88 -0
  49. package/dist/controllers/notification.js.map +1 -0
  50. package/dist/controllers/page.d.ts +3 -0
  51. package/dist/controllers/page.js +881 -0
  52. package/dist/controllers/page.js.map +1 -0
  53. package/dist/controllers/revision.d.ts +3 -0
  54. package/dist/controllers/revision.js +91 -0
  55. package/dist/controllers/revision.js.map +1 -0
  56. package/dist/controllers/search.d.ts +3 -0
  57. package/dist/controllers/search.js +93 -0
  58. package/dist/controllers/search.js.map +1 -0
  59. package/dist/controllers/share.d.ts +3 -0
  60. package/dist/controllers/share.js +207 -0
  61. package/dist/controllers/share.js.map +1 -0
  62. package/dist/controllers/shareAccess.d.ts +3 -0
  63. package/dist/controllers/shareAccess.js +28 -0
  64. package/dist/controllers/shareAccess.js.map +1 -0
  65. package/dist/controllers/slack.d.ts +3 -0
  66. package/dist/controllers/slack.js +87 -0
  67. package/dist/controllers/slack.js.map +1 -0
  68. package/dist/controllers/tokenAuth.d.ts +10 -0
  69. package/dist/controllers/tokenAuth.js +292 -0
  70. package/dist/controllers/tokenAuth.js.map +1 -0
  71. package/dist/controllers/user.d.ts +3 -0
  72. package/dist/controllers/user.js +67 -0
  73. package/dist/controllers/user.js.map +1 -0
  74. package/dist/controllers/version.d.ts +4 -0
  75. package/dist/controllers/version.js +19 -0
  76. package/dist/controllers/version.js.map +1 -0
  77. package/dist/crowi/express-init.d.ts +4 -0
  78. package/dist/crowi/express-init.js +101 -0
  79. package/dist/crowi/express-init.js.map +1 -0
  80. package/dist/crowi/index.d.ts +245 -0
  81. package/dist/crowi/index.js +726 -0
  82. package/dist/crowi/index.js.map +1 -0
  83. package/dist/events/activity.d.ts +7 -0
  84. package/dist/events/activity.js +15 -0
  85. package/dist/events/activity.js.map +1 -0
  86. package/dist/events/bookmark.d.ts +8 -0
  87. package/dist/events/bookmark.js +16 -0
  88. package/dist/events/bookmark.js.map +1 -0
  89. package/dist/events/comment.d.ts +6 -0
  90. package/dist/events/comment.js +14 -0
  91. package/dist/events/comment.js.map +1 -0
  92. package/dist/events/config.d.ts +6 -0
  93. package/dist/events/config.js +12 -0
  94. package/dist/events/config.js.map +1 -0
  95. package/dist/events/index.d.ts +17 -0
  96. package/dist/events/index.js +22 -0
  97. package/dist/events/index.js.map +1 -0
  98. package/dist/events/mention-dispatch.d.ts +44 -0
  99. package/dist/events/mention-dispatch.js +151 -0
  100. package/dist/events/mention-dispatch.js.map +1 -0
  101. package/dist/events/notification.d.ts +7 -0
  102. package/dist/events/notification.js +15 -0
  103. package/dist/events/notification.js.map +1 -0
  104. package/dist/events/page.d.ts +44 -0
  105. package/dist/events/page.js +134 -0
  106. package/dist/events/page.js.map +1 -0
  107. package/dist/events/render-cache.d.ts +24 -0
  108. package/dist/events/render-cache.js +63 -0
  109. package/dist/events/render-cache.js.map +1 -0
  110. package/dist/events/user.d.ts +9 -0
  111. package/dist/events/user.js +39 -0
  112. package/dist/events/user.js.map +1 -0
  113. package/dist/form/admin/app.d.ts +2 -0
  114. package/dist/form/admin/app.js +9 -0
  115. package/dist/form/admin/app.js.map +1 -0
  116. package/dist/form/admin/auth.d.ts +2 -0
  117. package/dist/form/admin/auth.js +9 -0
  118. package/dist/form/admin/auth.js.map +1 -0
  119. package/dist/form/admin/aws.d.ts +2 -0
  120. package/dist/form/admin/aws.js +13 -0
  121. package/dist/form/admin/aws.js.map +1 -0
  122. package/dist/form/admin/github.d.ts +2 -0
  123. package/dist/form/admin/github.js +15 -0
  124. package/dist/form/admin/github.js.map +1 -0
  125. package/dist/form/admin/google.d.ts +2 -0
  126. package/dist/form/admin/google.js +13 -0
  127. package/dist/form/admin/google.js.map +1 -0
  128. package/dist/form/admin/mail.d.ts +2 -0
  129. package/dist/form/admin/mail.js +13 -0
  130. package/dist/form/admin/mail.js.map +1 -0
  131. package/dist/form/admin/sec.d.ts +2 -0
  132. package/dist/form/admin/sec.js +10 -0
  133. package/dist/form/admin/sec.js.map +1 -0
  134. package/dist/form/admin/slackSetting.d.ts +2 -0
  135. package/dist/form/admin/slackSetting.js +13 -0
  136. package/dist/form/admin/slackSetting.js.map +1 -0
  137. package/dist/form/admin/userEdit.d.ts +2 -0
  138. package/dist/form/admin/userEdit.js +9 -0
  139. package/dist/form/admin/userEdit.js.map +1 -0
  140. package/dist/form/admin/userInvite.d.ts +2 -0
  141. package/dist/form/admin/userInvite.js +9 -0
  142. package/dist/form/admin/userInvite.js.map +1 -0
  143. package/dist/form/comment.d.ts +2 -0
  144. package/dist/form/comment.js +9 -0
  145. package/dist/form/comment.js.map +1 -0
  146. package/dist/form/index.d.ts +25 -0
  147. package/dist/form/index.js +48 -0
  148. package/dist/form/index.js.map +1 -0
  149. package/dist/form/invited.d.ts +2 -0
  150. package/dist/form/invited.js +13 -0
  151. package/dist/form/invited.js.map +1 -0
  152. package/dist/form/login.d.ts +2 -0
  153. package/dist/form/login.js +11 -0
  154. package/dist/form/login.js.map +1 -0
  155. package/dist/form/me/apiToken.d.ts +2 -0
  156. package/dist/form/me/apiToken.js +9 -0
  157. package/dist/form/me/apiToken.js.map +1 -0
  158. package/dist/form/me/password.d.ts +2 -0
  159. package/dist/form/me/password.js +11 -0
  160. package/dist/form/me/password.js.map +1 -0
  161. package/dist/form/me/user.d.ts +2 -0
  162. package/dist/form/me/user.js +9 -0
  163. package/dist/form/me/user.js.map +1 -0
  164. package/dist/form/register.d.ts +2 -0
  165. package/dist/form/register.js +13 -0
  166. package/dist/form/register.js.map +1 -0
  167. package/dist/form/revision.d.ts +2 -0
  168. package/dist/form/revision.js +13 -0
  169. package/dist/form/revision.js.map +1 -0
  170. package/dist/hono/app.d.ts +19 -0
  171. package/dist/hono/app.js +21 -0
  172. package/dist/hono/app.js.map +1 -0
  173. package/dist/hono/handlers/_helpers/errors.d.ts +61 -0
  174. package/dist/hono/handlers/_helpers/errors.js +51 -0
  175. package/dist/hono/handlers/_helpers/errors.js.map +1 -0
  176. package/dist/hono/handlers/_helpers/user-shape.d.ts +46 -0
  177. package/dist/hono/handlers/_helpers/user-shape.js +23 -0
  178. package/dist/hono/handlers/_helpers/user-shape.js.map +1 -0
  179. package/dist/hono/handlers/access-token.d.ts +221 -0
  180. package/dist/hono/handlers/access-token.js +113 -0
  181. package/dist/hono/handlers/access-token.js.map +1 -0
  182. package/dist/hono/handlers/activation.d.ts +117 -0
  183. package/dist/hono/handlers/activation.js +77 -0
  184. package/dist/hono/handlers/activation.js.map +1 -0
  185. package/dist/hono/handlers/admin/app.d.ts +123 -0
  186. package/dist/hono/handlers/admin/app.js +76 -0
  187. package/dist/hono/handlers/admin/app.js.map +1 -0
  188. package/dist/hono/handlers/admin/auth.d.ts +127 -0
  189. package/dist/hono/handlers/admin/auth.js +91 -0
  190. package/dist/hono/handlers/admin/auth.js.map +1 -0
  191. package/dist/hono/handlers/admin/mail.d.ts +168 -0
  192. package/dist/hono/handlers/admin/mail.js +76 -0
  193. package/dist/hono/handlers/admin/mail.js.map +1 -0
  194. package/dist/hono/handlers/admin/plugins.d.ts +409 -0
  195. package/dist/hono/handlers/admin/plugins.js +257 -0
  196. package/dist/hono/handlers/admin/plugins.js.map +1 -0
  197. package/dist/hono/handlers/admin/search.d.ts +57 -0
  198. package/dist/hono/handlers/admin/search.js +55 -0
  199. package/dist/hono/handlers/admin/search.js.map +1 -0
  200. package/dist/hono/handlers/admin/security.d.ts +112 -0
  201. package/dist/hono/handlers/admin/security.js +71 -0
  202. package/dist/hono/handlers/admin/security.js.map +1 -0
  203. package/dist/hono/handlers/admin/share.d.ts +106 -0
  204. package/dist/hono/handlers/admin/share.js +55 -0
  205. package/dist/hono/handlers/admin/share.js.map +1 -0
  206. package/dist/hono/handlers/admin/storage.d.ts +55 -0
  207. package/dist/hono/handlers/admin/storage.js +40 -0
  208. package/dist/hono/handlers/admin/storage.js.map +1 -0
  209. package/dist/hono/handlers/admin/users.d.ts +1230 -0
  210. package/dist/hono/handlers/admin/users.js +316 -0
  211. package/dist/hono/handlers/admin/users.js.map +1 -0
  212. package/dist/hono/handlers/adminCrypto.d.ts +110 -0
  213. package/dist/hono/handlers/adminCrypto.js +151 -0
  214. package/dist/hono/handlers/adminCrypto.js.map +1 -0
  215. package/dist/hono/handlers/app.d.ts +26 -0
  216. package/dist/hono/handlers/app.js +34 -0
  217. package/dist/hono/handlers/app.js.map +1 -0
  218. package/dist/hono/handlers/attachment-stream.d.ts +4 -0
  219. package/dist/hono/handlers/attachment-stream.js +211 -0
  220. package/dist/hono/handlers/attachment-stream.js.map +1 -0
  221. package/dist/hono/handlers/attachment.d.ts +687 -0
  222. package/dist/hono/handlers/attachment.js +566 -0
  223. package/dist/hono/handlers/attachment.js.map +1 -0
  224. package/dist/hono/handlers/autocomplete.d.ts +160 -0
  225. package/dist/hono/handlers/autocomplete.js +181 -0
  226. package/dist/hono/handlers/autocomplete.js.map +1 -0
  227. package/dist/hono/handlers/backlink.d.ts +78 -0
  228. package/dist/hono/handlers/backlink.js +93 -0
  229. package/dist/hono/handlers/backlink.js.map +1 -0
  230. package/dist/hono/handlers/bookmark.d.ts +558 -0
  231. package/dist/hono/handlers/bookmark.js +166 -0
  232. package/dist/hono/handlers/bookmark.js.map +1 -0
  233. package/dist/hono/handlers/comment.d.ts +231 -0
  234. package/dist/hono/handlers/comment.js +191 -0
  235. package/dist/hono/handlers/comment.js.map +1 -0
  236. package/dist/hono/handlers/draft.d.ts +136 -0
  237. package/dist/hono/handlers/draft.js +191 -0
  238. package/dist/hono/handlers/draft.js.map +1 -0
  239. package/dist/hono/handlers/emailChange.d.ts +124 -0
  240. package/dist/hono/handlers/emailChange.js +79 -0
  241. package/dist/hono/handlers/emailChange.js.map +1 -0
  242. package/dist/hono/handlers/installer.d.ts +94 -0
  243. package/dist/hono/handlers/installer.js +93 -0
  244. package/dist/hono/handlers/installer.js.map +1 -0
  245. package/dist/hono/handlers/inviteAccept.d.ts +180 -0
  246. package/dist/hono/handlers/inviteAccept.js +94 -0
  247. package/dist/hono/handlers/inviteAccept.js.map +1 -0
  248. package/dist/hono/handlers/me.d.ts +401 -0
  249. package/dist/hono/handlers/me.js +390 -0
  250. package/dist/hono/handlers/me.js.map +1 -0
  251. package/dist/hono/handlers/notification.d.ts +274 -0
  252. package/dist/hono/handlers/notification.js +224 -0
  253. package/dist/hono/handlers/notification.js.map +1 -0
  254. package/dist/hono/handlers/oauth.d.ts +299 -0
  255. package/dist/hono/handlers/oauth.js +443 -0
  256. package/dist/hono/handlers/oauth.js.map +1 -0
  257. package/dist/hono/handlers/page-collab.d.ts +79 -0
  258. package/dist/hono/handlers/page-collab.js +98 -0
  259. package/dist/hono/handlers/page-collab.js.map +1 -0
  260. package/dist/hono/handlers/page-preview.d.ts +48 -0
  261. package/dist/hono/handlers/page-preview.js +83 -0
  262. package/dist/hono/handlers/page-preview.js.map +1 -0
  263. package/dist/hono/handlers/page.d.ts +2059 -0
  264. package/dist/hono/handlers/page.js +793 -0
  265. package/dist/hono/handlers/page.js.map +1 -0
  266. package/dist/hono/handlers/passwordReset.d.ts +181 -0
  267. package/dist/hono/handlers/passwordReset.js +101 -0
  268. package/dist/hono/handlers/passwordReset.js.map +1 -0
  269. package/dist/hono/handlers/presence.d.ts +178 -0
  270. package/dist/hono/handlers/presence.js +163 -0
  271. package/dist/hono/handlers/presence.js.map +1 -0
  272. package/dist/hono/handlers/revision.d.ts +345 -0
  273. package/dist/hono/handlers/revision.js +202 -0
  274. package/dist/hono/handlers/revision.js.map +1 -0
  275. package/dist/hono/handlers/search.d.ts +208 -0
  276. package/dist/hono/handlers/search.js +152 -0
  277. package/dist/hono/handlers/search.js.map +1 -0
  278. package/dist/hono/handlers/tokenAuth.d.ts +369 -0
  279. package/dist/hono/handlers/tokenAuth.js +240 -0
  280. package/dist/hono/handlers/tokenAuth.js.map +1 -0
  281. package/dist/hono/handlers/user.d.ts +710 -0
  282. package/dist/hono/handlers/user.js +212 -0
  283. package/dist/hono/handlers/user.js.map +1 -0
  284. package/dist/hono/index.d.ts +289 -0
  285. package/dist/hono/index.js +240 -0
  286. package/dist/hono/index.js.map +1 -0
  287. package/dist/hono/middleware/admin.d.ts +5 -0
  288. package/dist/hono/middleware/admin.js +34 -0
  289. package/dist/hono/middleware/admin.js.map +1 -0
  290. package/dist/hono/middleware/auth.d.ts +54 -0
  291. package/dist/hono/middleware/auth.js +142 -0
  292. package/dist/hono/middleware/auth.js.map +1 -0
  293. package/dist/hono/middleware/cors.d.ts +3 -0
  294. package/dist/hono/middleware/cors.js +86 -0
  295. package/dist/hono/middleware/cors.js.map +1 -0
  296. package/dist/hono/middleware/default-hook.d.ts +8 -0
  297. package/dist/hono/middleware/default-hook.js +17 -0
  298. package/dist/hono/middleware/default-hook.js.map +1 -0
  299. package/dist/hono/middleware/error-handler.d.ts +2 -0
  300. package/dist/hono/middleware/error-handler.js +20 -0
  301. package/dist/hono/middleware/error-handler.js.map +1 -0
  302. package/dist/hono/middleware/rate-limit.d.ts +57 -0
  303. package/dist/hono/middleware/rate-limit.js +42 -0
  304. package/dist/hono/middleware/rate-limit.js.map +1 -0
  305. package/dist/hono/middleware/require-scope.d.ts +50 -0
  306. package/dist/hono/middleware/require-scope.js +64 -0
  307. package/dist/hono/middleware/require-scope.js.map +1 -0
  308. package/dist/hono/path-rewrite.d.ts +15 -0
  309. package/dist/hono/path-rewrite.js +59 -0
  310. package/dist/hono/path-rewrite.js.map +1 -0
  311. package/dist/mail/i18n/en.d.ts +2 -0
  312. package/dist/mail/i18n/en.js +66 -0
  313. package/dist/mail/i18n/en.js.map +1 -0
  314. package/dist/mail/i18n/index.d.ts +46 -0
  315. package/dist/mail/i18n/index.js +31 -0
  316. package/dist/mail/i18n/index.js.map +1 -0
  317. package/dist/mail/i18n/ja.d.ts +2 -0
  318. package/dist/mail/i18n/ja.js +66 -0
  319. package/dist/mail/i18n/ja.js.map +1 -0
  320. package/dist/mcp/attach.d.ts +25 -0
  321. package/dist/mcp/attach.js +104 -0
  322. package/dist/mcp/attach.js.map +1 -0
  323. package/dist/mcp/dispatch.d.ts +59 -0
  324. package/dist/mcp/dispatch.js +70 -0
  325. package/dist/mcp/dispatch.js.map +1 -0
  326. package/dist/mcp/result.d.ts +40 -0
  327. package/dist/mcp/result.js +78 -0
  328. package/dist/mcp/result.js.map +1 -0
  329. package/dist/mcp/server.d.ts +67 -0
  330. package/dist/mcp/server.js +113 -0
  331. package/dist/mcp/server.js.map +1 -0
  332. package/dist/mcp/tools/page.d.ts +2 -0
  333. package/dist/mcp/tools/page.js +256 -0
  334. package/dist/mcp/tools/page.js.map +1 -0
  335. package/dist/mcp/tools/search.d.ts +2 -0
  336. package/dist/mcp/tools/search.js +36 -0
  337. package/dist/mcp/tools/search.js.map +1 -0
  338. package/dist/middlewares/accessTokenParser.d.ts +4 -0
  339. package/dist/middlewares/accessTokenParser.js +29 -0
  340. package/dist/middlewares/accessTokenParser.js.map +1 -0
  341. package/dist/middlewares/adminRequired.d.ts +10 -0
  342. package/dist/middlewares/adminRequired.js +35 -0
  343. package/dist/middlewares/adminRequired.js.map +1 -0
  344. package/dist/middlewares/applicationInstalled.d.ts +3 -0
  345. package/dist/middlewares/applicationInstalled.js +20 -0
  346. package/dist/middlewares/applicationInstalled.js.map +1 -0
  347. package/dist/middlewares/applicationNotInstalled.d.ts +3 -0
  348. package/dist/middlewares/applicationNotInstalled.js +13 -0
  349. package/dist/middlewares/applicationNotInstalled.js.map +1 -0
  350. package/dist/middlewares/basicAuth.d.ts +4 -0
  351. package/dist/middlewares/basicAuth.js +23 -0
  352. package/dist/middlewares/basicAuth.js.map +1 -0
  353. package/dist/middlewares/csrfVerify.d.ts +4 -0
  354. package/dist/middlewares/csrfVerify.js +24 -0
  355. package/dist/middlewares/csrfVerify.js.map +1 -0
  356. package/dist/middlewares/encodeSpace.d.ts +3 -0
  357. package/dist/middlewares/encodeSpace.js +14 -0
  358. package/dist/middlewares/encodeSpace.js.map +1 -0
  359. package/dist/middlewares/fileAccessRightOrLoginRequired.d.ts +4 -0
  360. package/dist/middlewares/fileAccessRightOrLoginRequired.js +29 -0
  361. package/dist/middlewares/fileAccessRightOrLoginRequired.js.map +1 -0
  362. package/dist/middlewares/index.d.ts +16 -0
  363. package/dist/middlewares/index.js +30 -0
  364. package/dist/middlewares/index.js.map +1 -0
  365. package/dist/middlewares/jwtAdminRequired.d.ts +8 -0
  366. package/dist/middlewares/jwtAdminRequired.js +35 -0
  367. package/dist/middlewares/jwtAdminRequired.js.map +1 -0
  368. package/dist/middlewares/jwtAuth.d.ts +4 -0
  369. package/dist/middlewares/jwtAuth.js +104 -0
  370. package/dist/middlewares/jwtAuth.js.map +1 -0
  371. package/dist/middlewares/loginChecker.d.ts +4 -0
  372. package/dist/middlewares/loginChecker.js +32 -0
  373. package/dist/middlewares/loginChecker.js.map +1 -0
  374. package/dist/middlewares/loginRequired.d.ts +4 -0
  375. package/dist/middlewares/loginRequired.js +88 -0
  376. package/dist/middlewares/loginRequired.js.map +1 -0
  377. package/dist/migration/cli-api.d.ts +83 -0
  378. package/dist/migration/cli-api.js +128 -0
  379. package/dist/migration/cli-api.js.map +1 -0
  380. package/dist/migration/migrations/index.d.ts +12 -0
  381. package/dist/migration/migrations/index.js +24 -0
  382. package/dist/migration/migrations/index.js.map +1 -0
  383. package/dist/migration/migrations/page-status-default.d.ts +25 -0
  384. package/dist/migration/migrations/page-status-default.js +79 -0
  385. package/dist/migration/migrations/page-status-default.js.map +1 -0
  386. package/dist/migration/migrations/revisions-schema-unify.d.ts +33 -0
  387. package/dist/migration/migrations/revisions-schema-unify.js +88 -0
  388. package/dist/migration/migrations/revisions-schema-unify.js.map +1 -0
  389. package/dist/migration/migrations/user-unique-prepare.d.ts +1 -0
  390. package/dist/migration/migrations/user-unique-prepare.js +214 -0
  391. package/dist/migration/migrations/user-unique-prepare.js.map +1 -0
  392. package/dist/migration/migrations/wikilink-format.d.ts +97 -0
  393. package/dist/migration/migrations/wikilink-format.js +418 -0
  394. package/dist/migration/migrations/wikilink-format.js.map +1 -0
  395. package/dist/migration/rebuild-api.d.ts +50 -0
  396. package/dist/migration/rebuild-api.js +45 -0
  397. package/dist/migration/rebuild-api.js.map +1 -0
  398. package/dist/migration/rebuild-runner.d.ts +64 -0
  399. package/dist/migration/rebuild-runner.js +42 -0
  400. package/dist/migration/rebuild-runner.js.map +1 -0
  401. package/dist/migration/rebuilds/index.d.ts +26 -0
  402. package/dist/migration/rebuilds/index.js +69 -0
  403. package/dist/migration/rebuilds/index.js.map +1 -0
  404. package/dist/migration/registry.d.ts +15 -0
  405. package/dist/migration/registry.js +96 -0
  406. package/dist/migration/registry.js.map +1 -0
  407. package/dist/migration/run-boot-migrations.d.ts +31 -0
  408. package/dist/migration/run-boot-migrations.js +95 -0
  409. package/dist/migration/run-boot-migrations.js.map +1 -0
  410. package/dist/migration/runner.d.ts +120 -0
  411. package/dist/migration/runner.js +276 -0
  412. package/dist/migration/runner.js.map +1 -0
  413. package/dist/migration/types.d.ts +153 -0
  414. package/dist/migration/types.js +13 -0
  415. package/dist/migration/types.js.map +1 -0
  416. package/dist/models/activity.d.ts +34 -0
  417. package/dist/models/activity.js +263 -0
  418. package/dist/models/activity.js.map +1 -0
  419. package/dist/models/attachment.d.ts +25 -0
  420. package/dist/models/attachment.js +82 -0
  421. package/dist/models/attachment.js.map +1 -0
  422. package/dist/models/backlink.d.ts +19 -0
  423. package/dist/models/backlink.js +138 -0
  424. package/dist/models/backlink.js.map +1 -0
  425. package/dist/models/bookmark.d.ts +28 -0
  426. package/dist/models/bookmark.js +136 -0
  427. package/dist/models/bookmark.js.map +1 -0
  428. package/dist/models/comment.d.ts +21 -0
  429. package/dist/models/comment.js +87 -0
  430. package/dist/models/comment.js.map +1 -0
  431. package/dist/models/config-sensitive.d.ts +21 -0
  432. package/dist/models/config-sensitive.js +71 -0
  433. package/dist/models/config-sensitive.js.map +1 -0
  434. package/dist/models/config.d.ts +34 -0
  435. package/dist/models/config.js +161 -0
  436. package/dist/models/config.js.map +1 -0
  437. package/dist/models/index.d.ts +30 -0
  438. package/dist/models/index.js +55 -0
  439. package/dist/models/index.js.map +1 -0
  440. package/dist/models/migration-application.d.ts +54 -0
  441. package/dist/models/migration-application.js +36 -0
  442. package/dist/models/migration-application.js.map +1 -0
  443. package/dist/models/notification.d.ts +28 -0
  444. package/dist/models/notification.js +285 -0
  445. package/dist/models/notification.js.map +1 -0
  446. package/dist/models/oauth-authorization-code.d.ts +34 -0
  447. package/dist/models/oauth-authorization-code.js +100 -0
  448. package/dist/models/oauth-authorization-code.js.map +1 -0
  449. package/dist/models/oauth-client.d.ts +36 -0
  450. package/dist/models/oauth-client.js +56 -0
  451. package/dist/models/oauth-client.js.map +1 -0
  452. package/dist/models/oauth-device-code.d.ts +55 -0
  453. package/dist/models/oauth-device-code.js +158 -0
  454. package/dist/models/oauth-device-code.js.map +1 -0
  455. package/dist/models/oauth-refresh-token.d.ts +31 -0
  456. package/dist/models/oauth-refresh-token.js +118 -0
  457. package/dist/models/oauth-refresh-token.js.map +1 -0
  458. package/dist/models/page-yjs-update.d.ts +35 -0
  459. package/dist/models/page-yjs-update.js +33 -0
  460. package/dist/models/page-yjs-update.js.map +1 -0
  461. package/dist/models/page.d.ts +200 -0
  462. package/dist/models/page.js +1117 -0
  463. package/dist/models/page.js.map +1 -0
  464. package/dist/models/personal-access-token.d.ts +30 -0
  465. package/dist/models/personal-access-token.js +107 -0
  466. package/dist/models/personal-access-token.js.map +1 -0
  467. package/dist/models/plugin-render-cache.d.ts +40 -0
  468. package/dist/models/plugin-render-cache.js +39 -0
  469. package/dist/models/plugin-render-cache.js.map +1 -0
  470. package/dist/models/revision.d.ts +145 -0
  471. package/dist/models/revision.js +241 -0
  472. package/dist/models/revision.js.map +1 -0
  473. package/dist/models/share.d.ts +38 -0
  474. package/dist/models/share.js +137 -0
  475. package/dist/models/share.js.map +1 -0
  476. package/dist/models/shareAccess.d.ts +20 -0
  477. package/dist/models/shareAccess.js +45 -0
  478. package/dist/models/shareAccess.js.map +1 -0
  479. package/dist/models/tracking.d.ts +14 -0
  480. package/dist/models/tracking.js +14 -0
  481. package/dist/models/tracking.js.map +1 -0
  482. package/dist/models/updatePost.d.ts +25 -0
  483. package/dist/models/updatePost.js +87 -0
  484. package/dist/models/updatePost.js.map +1 -0
  485. package/dist/models/user.d.ts +144 -0
  486. package/dist/models/user.js +681 -0
  487. package/dist/models/user.js.map +1 -0
  488. package/dist/models/watcher.d.ts +23 -0
  489. package/dist/models/watcher.js +75 -0
  490. package/dist/models/watcher.js.map +1 -0
  491. package/dist/notifications/attach.d.ts +63 -0
  492. package/dist/notifications/attach.js +426 -0
  493. package/dist/notifications/attach.js.map +1 -0
  494. package/dist/notifications/channel.d.ts +13 -0
  495. package/dist/notifications/channel.js +18 -0
  496. package/dist/notifications/channel.js.map +1 -0
  497. package/dist/plugin/index.d.ts +2 -0
  498. package/dist/plugin/index.js +6 -0
  499. package/dist/plugin/index.js.map +1 -0
  500. package/dist/plugin/plugin-context.d.ts +22 -0
  501. package/dist/plugin/plugin-context.js +126 -0
  502. package/dist/plugin/plugin-context.js.map +1 -0
  503. package/dist/plugin/plugin-manager.d.ts +164 -0
  504. package/dist/plugin/plugin-manager.js +328 -0
  505. package/dist/plugin/plugin-manager.js.map +1 -0
  506. package/dist/plugin/plugin-namespace.d.ts +28 -0
  507. package/dist/plugin/plugin-namespace.js +53 -0
  508. package/dist/plugin/plugin-namespace.js.map +1 -0
  509. package/dist/plugin/registries.d.ts +38 -0
  510. package/dist/plugin/registries.js +71 -0
  511. package/dist/plugin/registries.js.map +1 -0
  512. package/dist/plugin/schema-serializer.d.ts +34 -0
  513. package/dist/plugin/schema-serializer.js +122 -0
  514. package/dist/plugin/schema-serializer.js.map +1 -0
  515. package/dist/plugin/topo-sort.d.ts +15 -0
  516. package/dist/plugin/topo-sort.js +59 -0
  517. package/dist/plugin/topo-sort.js.map +1 -0
  518. package/dist/presence/attach.d.ts +36 -0
  519. package/dist/presence/attach.js +399 -0
  520. package/dist/presence/attach.js.map +1 -0
  521. package/dist/renderer/__fixtures__/echo-embed.d.ts +27 -0
  522. package/dist/renderer/__fixtures__/echo-embed.js +24 -0
  523. package/dist/renderer/__fixtures__/echo-embed.js.map +1 -0
  524. package/dist/renderer/cache/index.d.ts +60 -0
  525. package/dist/renderer/cache/index.js +219 -0
  526. package/dist/renderer/cache/index.js.map +1 -0
  527. package/dist/renderer/cache/mongodb-cache.d.ts +82 -0
  528. package/dist/renderer/cache/mongodb-cache.js +180 -0
  529. package/dist/renderer/cache/mongodb-cache.js.map +1 -0
  530. package/dist/renderer/cache/reservation.d.ts +20 -0
  531. package/dist/renderer/cache/reservation.js +115 -0
  532. package/dist/renderer/cache/reservation.js.map +1 -0
  533. package/dist/renderer/core/_mdast-walk.d.ts +35 -0
  534. package/dist/renderer/core/_mdast-walk.js +45 -0
  535. package/dist/renderer/core/_mdast-walk.js.map +1 -0
  536. package/dist/renderer/core/code-block-dispatch.d.ts +31 -0
  537. package/dist/renderer/core/code-block-dispatch.js +166 -0
  538. package/dist/renderer/core/code-block-dispatch.js.map +1 -0
  539. package/dist/renderer/core/code-blocks.d.ts +12 -0
  540. package/dist/renderer/core/code-blocks.js +32 -0
  541. package/dist/renderer/core/code-blocks.js.map +1 -0
  542. package/dist/renderer/core/embed-tags.d.ts +14 -0
  543. package/dist/renderer/core/embed-tags.js +154 -0
  544. package/dist/renderer/core/embed-tags.js.map +1 -0
  545. package/dist/renderer/core/headings.d.ts +16 -0
  546. package/dist/renderer/core/headings.js +31 -0
  547. package/dist/renderer/core/headings.js.map +1 -0
  548. package/dist/renderer/core/index.d.ts +65 -0
  549. package/dist/renderer/core/index.js +83 -0
  550. package/dist/renderer/core/index.js.map +1 -0
  551. package/dist/renderer/core/mention-resolve.d.ts +39 -0
  552. package/dist/renderer/core/mention-resolve.js +75 -0
  553. package/dist/renderer/core/mention-resolve.js.map +1 -0
  554. package/dist/renderer/core/mentions.d.ts +2 -0
  555. package/dist/renderer/core/mentions.js +83 -0
  556. package/dist/renderer/core/mentions.js.map +1 -0
  557. package/dist/renderer/core/syntax-highlight.d.ts +21 -0
  558. package/dist/renderer/core/syntax-highlight.js +64 -0
  559. package/dist/renderer/core/syntax-highlight.js.map +1 -0
  560. package/dist/renderer/core/url-inline-expand.d.ts +9 -0
  561. package/dist/renderer/core/url-inline-expand.js +157 -0
  562. package/dist/renderer/core/url-inline-expand.js.map +1 -0
  563. package/dist/renderer/core/wikilinks.d.ts +2 -0
  564. package/dist/renderer/core/wikilinks.js +118 -0
  565. package/dist/renderer/core/wikilinks.js.map +1 -0
  566. package/dist/renderer/index.d.ts +67 -0
  567. package/dist/renderer/index.js +99 -0
  568. package/dist/renderer/index.js.map +1 -0
  569. package/dist/renderer/pipeline.d.ts +134 -0
  570. package/dist/renderer/pipeline.js +203 -0
  571. package/dist/renderer/pipeline.js.map +1 -0
  572. package/dist/renderer/registry.d.ts +83 -0
  573. package/dist/renderer/registry.js +130 -0
  574. package/dist/renderer/registry.js.map +1 -0
  575. package/dist/renderer/serialize.d.ts +27 -0
  576. package/dist/renderer/serialize.js +46 -0
  577. package/dist/renderer/serialize.js.map +1 -0
  578. package/dist/renderer/version.d.ts +30 -0
  579. package/dist/renderer/version.js +34 -0
  580. package/dist/renderer/version.js.map +1 -0
  581. package/dist/routes/admin.d.ts +4 -0
  582. package/dist/routes/admin.js +17 -0
  583. package/dist/routes/admin.js.map +1 -0
  584. package/dist/routes/api/admin.d.ts +4 -0
  585. package/dist/routes/api/admin.js +37 -0
  586. package/dist/routes/api/admin.js.map +1 -0
  587. package/dist/routes/api/attachment.d.ts +4 -0
  588. package/dist/routes/api/attachment.js +19 -0
  589. package/dist/routes/api/attachment.js.map +1 -0
  590. package/dist/routes/api/bookmark.d.ts +4 -0
  591. package/dist/routes/api/bookmark.js +15 -0
  592. package/dist/routes/api/bookmark.js.map +1 -0
  593. package/dist/routes/api/comment.d.ts +4 -0
  594. package/dist/routes/api/comment.js +14 -0
  595. package/dist/routes/api/comment.js.map +1 -0
  596. package/dist/routes/api/index.d.ts +4 -0
  597. package/dist/routes/api/index.js +36 -0
  598. package/dist/routes/api/index.js.map +1 -0
  599. package/dist/routes/api/like.d.ts +4 -0
  600. package/dist/routes/api/like.js +13 -0
  601. package/dist/routes/api/like.js.map +1 -0
  602. package/dist/routes/api/notification.d.ts +4 -0
  603. package/dist/routes/api/notification.js +15 -0
  604. package/dist/routes/api/notification.js.map +1 -0
  605. package/dist/routes/api/page.d.ts +4 -0
  606. package/dist/routes/api/page.js +24 -0
  607. package/dist/routes/api/page.js.map +1 -0
  608. package/dist/routes/api/revision.d.ts +4 -0
  609. package/dist/routes/api/revision.js +14 -0
  610. package/dist/routes/api/revision.js.map +1 -0
  611. package/dist/routes/api/share.d.ts +4 -0
  612. package/dist/routes/api/share.js +16 -0
  613. package/dist/routes/api/share.js.map +1 -0
  614. package/dist/routes/api/version.d.ts +4 -0
  615. package/dist/routes/api/version.js +10 -0
  616. package/dist/routes/api/version.js.map +1 -0
  617. package/dist/routes/index.d.ts +4 -0
  618. package/dist/routes/index.js +71 -0
  619. package/dist/routes/index.js.map +1 -0
  620. package/dist/routes/login.d.ts +4 -0
  621. package/dist/routes/login.js +18 -0
  622. package/dist/routes/login.js.map +1 -0
  623. package/dist/routes/me.d.ts +4 -0
  624. package/dist/routes/me.js +24 -0
  625. package/dist/routes/me.js.map +1 -0
  626. package/dist/routes/ts-rest/admin/app.d.ts +4 -0
  627. package/dist/routes/ts-rest/admin/app.js +67 -0
  628. package/dist/routes/ts-rest/admin/app.js.map +1 -0
  629. package/dist/routes/ts-rest/admin/auth.d.ts +4 -0
  630. package/dist/routes/ts-rest/admin/auth.js +95 -0
  631. package/dist/routes/ts-rest/admin/auth.js.map +1 -0
  632. package/dist/routes/ts-rest/admin/index.d.ts +10 -0
  633. package/dist/routes/ts-rest/admin/index.js +35 -0
  634. package/dist/routes/ts-rest/admin/index.js.map +1 -0
  635. package/dist/routes/ts-rest/admin/mail.d.ts +4 -0
  636. package/dist/routes/ts-rest/admin/mail.js +156 -0
  637. package/dist/routes/ts-rest/admin/mail.js.map +1 -0
  638. package/dist/routes/ts-rest/admin/plugins.d.ts +4 -0
  639. package/dist/routes/ts-rest/admin/plugins.js +317 -0
  640. package/dist/routes/ts-rest/admin/plugins.js.map +1 -0
  641. package/dist/routes/ts-rest/admin/search.d.ts +4 -0
  642. package/dist/routes/ts-rest/admin/search.js +67 -0
  643. package/dist/routes/ts-rest/admin/search.js.map +1 -0
  644. package/dist/routes/ts-rest/admin/security.d.ts +4 -0
  645. package/dist/routes/ts-rest/admin/security.js +114 -0
  646. package/dist/routes/ts-rest/admin/security.js.map +1 -0
  647. package/dist/routes/ts-rest/admin/share.d.ts +4 -0
  648. package/dist/routes/ts-rest/admin/share.js +69 -0
  649. package/dist/routes/ts-rest/admin/share.js.map +1 -0
  650. package/dist/routes/ts-rest/admin/storage.d.ts +4 -0
  651. package/dist/routes/ts-rest/admin/storage.js +59 -0
  652. package/dist/routes/ts-rest/admin/storage.js.map +1 -0
  653. package/dist/routes/ts-rest/admin/users.d.ts +4 -0
  654. package/dist/routes/ts-rest/admin/users.js +215 -0
  655. package/dist/routes/ts-rest/admin/users.js.map +1 -0
  656. package/dist/routes/ts-rest/adminCrypto.d.ts +4 -0
  657. package/dist/routes/ts-rest/adminCrypto.js +111 -0
  658. package/dist/routes/ts-rest/adminCrypto.js.map +1 -0
  659. package/dist/routes/ts-rest/app.d.ts +4 -0
  660. package/dist/routes/ts-rest/app.js +23 -0
  661. package/dist/routes/ts-rest/app.js.map +1 -0
  662. package/dist/routes/ts-rest/attachment.d.ts +4 -0
  663. package/dist/routes/ts-rest/attachment.js +830 -0
  664. package/dist/routes/ts-rest/attachment.js.map +1 -0
  665. package/dist/routes/ts-rest/auth.d.ts +4 -0
  666. package/dist/routes/ts-rest/auth.js +70 -0
  667. package/dist/routes/ts-rest/auth.js.map +1 -0
  668. package/dist/routes/ts-rest/autocomplete.d.ts +30 -0
  669. package/dist/routes/ts-rest/autocomplete.js +189 -0
  670. package/dist/routes/ts-rest/autocomplete.js.map +1 -0
  671. package/dist/routes/ts-rest/backlink.d.ts +4 -0
  672. package/dist/routes/ts-rest/backlink.js +106 -0
  673. package/dist/routes/ts-rest/backlink.js.map +1 -0
  674. package/dist/routes/ts-rest/bookmark.d.ts +4 -0
  675. package/dist/routes/ts-rest/bookmark.js +189 -0
  676. package/dist/routes/ts-rest/bookmark.js.map +1 -0
  677. package/dist/routes/ts-rest/comment.d.ts +4 -0
  678. package/dist/routes/ts-rest/comment.js +217 -0
  679. package/dist/routes/ts-rest/comment.js.map +1 -0
  680. package/dist/routes/ts-rest/draft.d.ts +22 -0
  681. package/dist/routes/ts-rest/draft.js +200 -0
  682. package/dist/routes/ts-rest/draft.js.map +1 -0
  683. package/dist/routes/ts-rest/index.d.ts +4 -0
  684. package/dist/routes/ts-rest/index.js +103 -0
  685. package/dist/routes/ts-rest/index.js.map +1 -0
  686. package/dist/routes/ts-rest/installer.d.ts +4 -0
  687. package/dist/routes/ts-rest/installer.js +77 -0
  688. package/dist/routes/ts-rest/installer.js.map +1 -0
  689. package/dist/routes/ts-rest/me.d.ts +4 -0
  690. package/dist/routes/ts-rest/me.js +410 -0
  691. package/dist/routes/ts-rest/me.js.map +1 -0
  692. package/dist/routes/ts-rest/notification.d.ts +4 -0
  693. package/dist/routes/ts-rest/notification.js +241 -0
  694. package/dist/routes/ts-rest/notification.js.map +1 -0
  695. package/dist/routes/ts-rest/page-collab.d.ts +29 -0
  696. package/dist/routes/ts-rest/page-collab.js +90 -0
  697. package/dist/routes/ts-rest/page-collab.js.map +1 -0
  698. package/dist/routes/ts-rest/page-preview.d.ts +26 -0
  699. package/dist/routes/ts-rest/page-preview.js +80 -0
  700. package/dist/routes/ts-rest/page-preview.js.map +1 -0
  701. package/dist/routes/ts-rest/page.d.ts +4 -0
  702. package/dist/routes/ts-rest/page.js +676 -0
  703. package/dist/routes/ts-rest/page.js.map +1 -0
  704. package/dist/routes/ts-rest/presence.d.ts +30 -0
  705. package/dist/routes/ts-rest/presence.js +155 -0
  706. package/dist/routes/ts-rest/presence.js.map +1 -0
  707. package/dist/routes/ts-rest/revision.d.ts +4 -0
  708. package/dist/routes/ts-rest/revision.js +240 -0
  709. package/dist/routes/ts-rest/revision.js.map +1 -0
  710. package/dist/routes/ts-rest/search.d.ts +4 -0
  711. package/dist/routes/ts-rest/search.js +121 -0
  712. package/dist/routes/ts-rest/search.js.map +1 -0
  713. package/dist/routes/ts-rest/tokenAuth.d.ts +4 -0
  714. package/dist/routes/ts-rest/tokenAuth.js +94 -0
  715. package/dist/routes/ts-rest/tokenAuth.js.map +1 -0
  716. package/dist/routes/ts-rest/user.d.ts +4 -0
  717. package/dist/routes/ts-rest/user.js +307 -0
  718. package/dist/routes/ts-rest/user.js.map +1 -0
  719. package/dist/service/config.d.ts +50 -0
  720. package/dist/service/config.js +202 -0
  721. package/dist/service/config.js.map +1 -0
  722. package/dist/service/lru.d.ts +11 -0
  723. package/dist/service/lru.js +47 -0
  724. package/dist/service/lru.js.map +1 -0
  725. package/dist/service/mail.d.ts +107 -0
  726. package/dist/service/mail.js +220 -0
  727. package/dist/service/mail.js.map +1 -0
  728. package/dist/service/notification.d.ts +9 -0
  729. package/dist/service/notification.js +19 -0
  730. package/dist/service/notification.js.map +1 -0
  731. package/dist/service/presence.d.ts +219 -0
  732. package/dist/service/presence.js +602 -0
  733. package/dist/service/presence.js.map +1 -0
  734. package/dist/types/error.d.ts +13 -0
  735. package/dist/types/error.js +13 -0
  736. package/dist/types/error.js.map +1 -0
  737. package/dist/types/express.d.ts +34 -0
  738. package/dist/types/express.js +50 -0
  739. package/dist/types/express.js.map +1 -0
  740. package/dist/types/mongoose-extensions.d.ts +8 -0
  741. package/dist/types/mongoose-extensions.js +24 -0
  742. package/dist/types/mongoose-extensions.js.map +1 -0
  743. package/dist/util/accessTokenParser.d.ts +1 -0
  744. package/dist/util/accessTokenParser.js +34 -0
  745. package/dist/util/accessTokenParser.js.map +1 -0
  746. package/dist/util/activityDefine.d.ts +15 -0
  747. package/dist/util/activityDefine.js +52 -0
  748. package/dist/util/activityDefine.js.map +1 -0
  749. package/dist/util/admin-config.d.ts +57 -0
  750. package/dist/util/admin-config.js +99 -0
  751. package/dist/util/admin-config.js.map +1 -0
  752. package/dist/util/admin-pager.d.ts +24 -0
  753. package/dist/util/admin-pager.js +73 -0
  754. package/dist/util/admin-pager.js.map +1 -0
  755. package/dist/util/apiPaginate.d.ts +11 -0
  756. package/dist/util/apiPaginate.js +33 -0
  757. package/dist/util/apiPaginate.js.map +1 -0
  758. package/dist/util/apiResponse.d.ts +9 -0
  759. package/dist/util/apiResponse.js +23 -0
  760. package/dist/util/apiResponse.js.map +1 -0
  761. package/dist/util/auth.d.ts +11 -0
  762. package/dist/util/auth.js +48 -0
  763. package/dist/util/auth.js.map +1 -0
  764. package/dist/util/auto-watch.d.ts +35 -0
  765. package/dist/util/auto-watch.js +24 -0
  766. package/dist/util/auto-watch.js.map +1 -0
  767. package/dist/util/autocomplete-match.d.ts +44 -0
  768. package/dist/util/autocomplete-match.js +80 -0
  769. package/dist/util/autocomplete-match.js.map +1 -0
  770. package/dist/util/aws-config-migration.d.ts +11 -0
  771. package/dist/util/aws-config-migration.js +68 -0
  772. package/dist/util/aws-config-migration.js.map +1 -0
  773. package/dist/util/boot-reporter.d.ts +130 -0
  774. package/dist/util/boot-reporter.js +242 -0
  775. package/dist/util/boot-reporter.js.map +1 -0
  776. package/dist/util/collab-cap.d.ts +39 -0
  777. package/dist/util/collab-cap.js +90 -0
  778. package/dist/util/collab-cap.js.map +1 -0
  779. package/dist/util/crypto.d.ts +39 -0
  780. package/dist/util/crypto.js +105 -0
  781. package/dist/util/crypto.js.map +1 -0
  782. package/dist/util/dedup-users.d.ts +96 -0
  783. package/dist/util/dedup-users.js +149 -0
  784. package/dist/util/dedup-users.js.map +1 -0
  785. package/dist/util/editor-cap-counter.d.ts +90 -0
  786. package/dist/util/editor-cap-counter.js +175 -0
  787. package/dist/util/editor-cap-counter.js.map +1 -0
  788. package/dist/util/fileUploader.d.ts +55 -0
  789. package/dist/util/fileUploader.js +70 -0
  790. package/dist/util/fileUploader.js.map +1 -0
  791. package/dist/util/formUtil.d.ts +2 -0
  792. package/dist/util/formUtil.js +15 -0
  793. package/dist/util/formUtil.js.map +1 -0
  794. package/dist/util/githubAuth.d.ts +2 -0
  795. package/dist/util/githubAuth.js +82 -0
  796. package/dist/util/githubAuth.js.map +1 -0
  797. package/dist/util/googleAuth.d.ts +2 -0
  798. package/dist/util/googleAuth.js +85 -0
  799. package/dist/util/googleAuth.js.map +1 -0
  800. package/dist/util/jwt.d.ts +50 -0
  801. package/dist/util/jwt.js +127 -0
  802. package/dist/util/jwt.js.map +1 -0
  803. package/dist/util/linkDetector.d.ts +3 -0
  804. package/dist/util/linkDetector.js +91 -0
  805. package/dist/util/linkDetector.js.map +1 -0
  806. package/dist/util/mail-token.d.ts +24 -0
  807. package/dist/util/mail-token.js +117 -0
  808. package/dist/util/mail-token.js.map +1 -0
  809. package/dist/util/mailer.d.ts +7 -0
  810. package/dist/util/mailer.js +98 -0
  811. package/dist/util/mailer.js.map +1 -0
  812. package/dist/util/map-duplicate-key-error.d.ts +26 -0
  813. package/dist/util/map-duplicate-key-error.js +41 -0
  814. package/dist/util/map-duplicate-key-error.js.map +1 -0
  815. package/dist/util/mongoose-paginate.d.ts +10 -0
  816. package/dist/util/mongoose-paginate.js +23 -0
  817. package/dist/util/mongoose-paginate.js.map +1 -0
  818. package/dist/util/notifications-token.d.ts +35 -0
  819. package/dist/util/notifications-token.js +140 -0
  820. package/dist/util/notifications-token.js.map +1 -0
  821. package/dist/util/oauth-client-seed.d.ts +2 -0
  822. package/dist/util/oauth-client-seed.js +48 -0
  823. package/dist/util/oauth-client-seed.js.map +1 -0
  824. package/dist/util/oauth-redirect-uri.d.ts +2 -0
  825. package/dist/util/oauth-redirect-uri.js +55 -0
  826. package/dist/util/oauth-redirect-uri.js.map +1 -0
  827. package/dist/util/page-response.d.ts +113 -0
  828. package/dist/util/page-response.js +154 -0
  829. package/dist/util/page-response.js.map +1 -0
  830. package/dist/util/page-search-index.d.ts +19 -0
  831. package/dist/util/page-search-index.js +91 -0
  832. package/dist/util/page-search-index.js.map +1 -0
  833. package/dist/util/page-status-migration.d.ts +23 -0
  834. package/dist/util/page-status-migration.js +48 -0
  835. package/dist/util/page-status-migration.js.map +1 -0
  836. package/dist/util/path.d.ts +2 -0
  837. package/dist/util/path.js +12 -0
  838. package/dist/util/path.js.map +1 -0
  839. package/dist/util/pkce.d.ts +13 -0
  840. package/dist/util/pkce.js +30 -0
  841. package/dist/util/pkce.js.map +1 -0
  842. package/dist/util/presence-token.d.ts +21 -0
  843. package/dist/util/presence-token.js +120 -0
  844. package/dist/util/presence-token.js.map +1 -0
  845. package/dist/util/rate-limit.d.ts +67 -0
  846. package/dist/util/rate-limit.js +87 -0
  847. package/dist/util/rate-limit.js.map +1 -0
  848. package/dist/util/rebuild-backlink.d.ts +25 -0
  849. package/dist/util/rebuild-backlink.js +7 -0
  850. package/dist/util/rebuild-backlink.js.map +1 -0
  851. package/dist/util/rebuild-renderer.d.ts +31 -0
  852. package/dist/util/rebuild-renderer.js +7 -0
  853. package/dist/util/rebuild-renderer.js.map +1 -0
  854. package/dist/util/redis-opts.d.ts +17 -0
  855. package/dist/util/redis-opts.js +40 -0
  856. package/dist/util/redis-opts.js.map +1 -0
  857. package/dist/util/regex.d.ts +2 -0
  858. package/dist/util/regex.js +8 -0
  859. package/dist/util/regex.js.map +1 -0
  860. package/dist/util/search-rebuild.d.ts +18 -0
  861. package/dist/util/search-rebuild.js +28 -0
  862. package/dist/util/search-rebuild.js.map +1 -0
  863. package/dist/util/ssr.d.ts +3 -0
  864. package/dist/util/ssr.js +9 -0
  865. package/dist/util/ssr.js.map +1 -0
  866. package/dist/util/storage-copy.d.ts +40 -0
  867. package/dist/util/storage-copy.js +123 -0
  868. package/dist/util/storage-copy.js.map +1 -0
  869. package/dist/util/ts-rest-helpers.d.ts +110 -0
  870. package/dist/util/ts-rest-helpers.js +110 -0
  871. package/dist/util/ts-rest-helpers.js.map +1 -0
  872. package/dist/util/url.d.ts +1 -0
  873. package/dist/util/url.js +11 -0
  874. package/dist/util/url.js.map +1 -0
  875. package/dist/util/user-code.d.ts +10 -0
  876. package/dist/util/user-code.js +55 -0
  877. package/dist/util/user-code.js.map +1 -0
  878. package/dist/util/view.d.ts +10 -0
  879. package/dist/util/view.js +99 -0
  880. package/dist/util/view.js.map +1 -0
  881. package/dist/util/watcher-backfill.d.ts +30 -0
  882. package/dist/util/watcher-backfill.js +43 -0
  883. package/dist/util/watcher-backfill.js.map +1 -0
  884. package/dist/util/ws-token.d.ts +24 -0
  885. package/dist/util/ws-token.js +134 -0
  886. package/dist/util/ws-token.js.map +1 -0
  887. package/package.json +106 -0
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attachMcp = void 0;
4
+ const mcp_1 = require("@hono/mcp");
5
+ const http_exception_1 = require("hono/http-exception");
6
+ const rate_limit_1 = require("../util/rate-limit");
7
+ const auth_1 = require("../hono/middleware/auth");
8
+ const dispatch_1 = require("./dispatch");
9
+ const server_1 = require("./server");
10
+ /**
11
+ * Per-user budget for the `/mcp` endpoint. A single budget covers all
12
+ * tool calls (reads + writes); a runaway agent cannot hammer the wiki.
13
+ * Note the dispatched routes that have their own limiter (autocomplete)
14
+ * are double-counted — accepted for v1 (RFC-0011 open question).
15
+ */
16
+ const RATE_LIMIT = 120;
17
+ const RATE_WINDOW_MS = 60_000;
18
+ /**
19
+ * JSON-RPC error codes for the few responses we emit before the MCP
20
+ * transport takes over (rate-limit / missing-bearer). `-32000` is the
21
+ * JSON-RPC "server error" range; `-32001` distinguishes the auth case.
22
+ */
23
+ const JSONRPC_RATE_LIMITED = -32000;
24
+ const JSONRPC_AUTH_REQUIRED = -32001;
25
+ /** A bare JSON-RPC error envelope (`id: null` — pre-dispatch, no request id). */
26
+ const jsonRpcError = (code, message) => ({ jsonrpc: '2.0', error: { code, message }, id: null });
27
+ const attachMcp = (app, crowi) => {
28
+ // One shared limiter per process (Redis-backed when `crowi.redis !==
29
+ // null`, in-memory fallback otherwise — same pattern as autocomplete).
30
+ const limiter = (0, rate_limit_1.createRateLimiter)({
31
+ name: 'mcp',
32
+ limit: RATE_LIMIT,
33
+ windowMs: RATE_WINDOW_MS,
34
+ redisClient: crowi.redis ?? null,
35
+ });
36
+ // Auth gate: a valid PAT / OAuth token is required to reach the
37
+ // endpoint at all. Per-tool scope is enforced downstream.
38
+ app.use('/mcp', (0, auth_1.createJwtAuth)(crowi));
39
+ // Rate limit AFTER jwtAuth so `c.get('user')` is populated. The 429 is
40
+ // emitted as a JSON-RPC-ish error envelope (an MCP client speaks
41
+ // JSON-RPC; a bare HTTP 429 with a `Retry-After` header is still
42
+ // honoured by well-behaved clients, and the body is informational).
43
+ app.use('/mcp', async (c, next) => {
44
+ const user = c.get('user');
45
+ // Defensive: jwtAuth always populates `user` before this runs.
46
+ if (user) {
47
+ const result = await limiter.hit(user._id.toString());
48
+ if (!result.allowed) {
49
+ c.header('Retry-After', String(result.retryAfterSeconds));
50
+ return c.json(jsonRpcError(JSONRPC_RATE_LIMITED, `Rate limit exceeded. Retry after ${result.retryAfterSeconds}s.`), 429);
51
+ }
52
+ }
53
+ await next();
54
+ return;
55
+ });
56
+ // The MCP route itself: a fresh server + transport per request.
57
+ app.all('/mcp', async (c) => {
58
+ const authorization = c.req.header('authorization');
59
+ if (!authorization) {
60
+ // jwtAuth would have rejected a missing header already; this is a
61
+ // type-narrowing guard (a cookie-authenticated request has no
62
+ // header to forward, which the MCP transport does not support).
63
+ return c.json(jsonRpcError(JSONRPC_AUTH_REQUIRED, 'MCP requires a Bearer Authorization header.'), 401);
64
+ }
65
+ const dispatch = (0, dispatch_1.makeDispatch)(app, authorization);
66
+ const server = (0, server_1.buildMcpServer)({ dispatch });
67
+ const transport = new mcp_1.StreamableHTTPTransport({
68
+ // Stateless: no session id, no long-lived session map.
69
+ sessionIdGenerator: undefined,
70
+ // DNS-rebinding protection is intentionally OFF. It is a defence for
71
+ // unauthenticated / ambient-authority (browser) servers; `/mcp` is
72
+ // Bearer-gated (a rebinding attacker cannot mint the user's PAT — the
73
+ // custom Authorization header forces a CORS preflight) and is hit by
74
+ // non-browser clients (Claude Code, the SDK), so Host pinning adds
75
+ // nothing here. Browser cross-origin access is governed by `createCors`.
76
+ // Pinning to a host (e.g. `CLIENT_URL`, the web origin) would instead
77
+ // reject every legitimate client whenever the api runs on its own
78
+ // host/port (dev's :4301 vs web :4302, or any split api/web deploy).
79
+ enableDnsRebindingProtection: false,
80
+ });
81
+ await server.connect(transport);
82
+ let response;
83
+ try {
84
+ response = await transport.handleRequest(c);
85
+ }
86
+ catch (err) {
87
+ // `@hono/mcp` signals protocol-level rejections (DNS-rebinding /
88
+ // Accept-header / unsupported method) by throwing an `HTTPException`
89
+ // that already carries a fully-formed JSON-RPC error response.
90
+ // Crowi's global `onError` would flatten that into a generic 500, so
91
+ // we return the exception's own response here to preserve the
92
+ // correct status (403 / 406 / 405) and JSON-RPC body.
93
+ if (err instanceof http_exception_1.HTTPException) {
94
+ return err.getResponse();
95
+ }
96
+ throw err;
97
+ }
98
+ // `handleRequest` returns `Response | undefined`; a defined Response
99
+ // is always produced for POST/GET MCP traffic.
100
+ return response ?? c.body(null, 204);
101
+ });
102
+ };
103
+ exports.attachMcp = attachMcp;
104
+ //# sourceMappingURL=attach.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.js","sourceRoot":"","sources":["../../src/mcp/attach.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * RFC-0011 — in-process dispatch helper for the MCP tools.
3
+ *
4
+ * Each MCP tool reuses the existing API by dispatching **in-process** to
5
+ * the same Hono routes the HTTP server serves, so validation, scope
6
+ * enforcement, and business logic stay single-source-of-truth. The MCP
7
+ * layer is a thin protocol translator — see RFC-0011 §3.1.
8
+ *
9
+ * Two boundary facts make this safe and simple:
10
+ * - Routes are registered on the Hono app at **root** (`/pages`,
11
+ * `/search`, …). The `/api/v2` prefix is a boundary concern stripped
12
+ * by `stripApiV2Prefix` before `honoApp.fetch` (`hono/path-rewrite.ts`,
13
+ * `crowi/index.ts`). So internal dispatch uses the **bare** route path
14
+ * (`/pages`), never `/api/v2/pages`.
15
+ * - We forward the caller's `Authorization` header verbatim, so the
16
+ * dispatched route re-runs `createJwtAuth` + `requireScope` for the
17
+ * same principal (RFC-0011 §10.4 "forward-the-header"; the optional
18
+ * fast-path that injects the resolved context is deferred).
19
+ *
20
+ * Non-2xx responses are surfaced as a typed `ApiToolError(status, body)`
21
+ * so the tool layer can map them to an MCP `isError` result that carries
22
+ * the API error envelope's `error.code` / `error.message` (RFC-0011 §9).
23
+ */
24
+ import type { OpenAPIHono } from '@hono/zod-openapi';
25
+ import type { CrowiHonoBindings } from '../hono/app';
26
+ /**
27
+ * Thrown by `dispatch` when the in-process route returns a non-2xx
28
+ * status. Carries the parsed JSON body (the API error envelope) so the
29
+ * tool layer can extract `error.code` / `error.message`.
30
+ */
31
+ export declare class ApiToolError extends Error {
32
+ readonly status: number;
33
+ readonly body: unknown;
34
+ constructor(status: number, body: unknown);
35
+ }
36
+ /**
37
+ * A query value bag. Values are coerced to strings; `undefined` entries
38
+ * are dropped so optional contract fields (which Zod fills with defaults
39
+ * server-side) don't serialise as the literal string `"undefined"`.
40
+ */
41
+ export type DispatchQuery = Record<string, string | number | boolean | undefined | null>;
42
+ export interface DispatchInit {
43
+ /** Query parameters for GET dispatches. */
44
+ query?: DispatchQuery;
45
+ /** JSON body for POST / PUT / DELETE dispatches. */
46
+ json?: unknown;
47
+ }
48
+ export type Dispatch = (method: string, path: string, init?: DispatchInit) => Promise<unknown>;
49
+ /**
50
+ * Build a dispatcher bound to a single request's authorization. The
51
+ * `honoApp` is captured at attach time (the same app `buildHonoApp`
52
+ * builds); `authorization` is the caller's verbatim `Authorization`
53
+ * header so the dispatched route authenticates as the MCP caller.
54
+ *
55
+ * The host is irrelevant for in-process dispatch (no socket is opened),
56
+ * but `honoApp.request` needs an absolute-or-rooted URL; a rooted path
57
+ * is what we pass, matching the test harness (`hono/path-rewrite.ts`).
58
+ */
59
+ export declare const makeDispatch: (honoApp: OpenAPIHono<CrowiHonoBindings>, authorization: string) => Dispatch;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeDispatch = exports.ApiToolError = void 0;
4
+ /**
5
+ * Thrown by `dispatch` when the in-process route returns a non-2xx
6
+ * status. Carries the parsed JSON body (the API error envelope) so the
7
+ * tool layer can extract `error.code` / `error.message`.
8
+ */
9
+ class ApiToolError extends Error {
10
+ status;
11
+ body;
12
+ constructor(status, body) {
13
+ super(`MCP dispatch failed with status ${status}`);
14
+ this.status = status;
15
+ this.body = body;
16
+ this.name = 'ApiToolError';
17
+ }
18
+ }
19
+ exports.ApiToolError = ApiToolError;
20
+ /** Serialise a query bag, skipping `undefined` / `null`. */
21
+ const buildQueryString = (query) => {
22
+ const params = new URLSearchParams();
23
+ for (const [key, value] of Object.entries(query)) {
24
+ if (value === undefined || value === null)
25
+ continue;
26
+ params.set(key, String(value));
27
+ }
28
+ const qs = params.toString();
29
+ return qs ? `?${qs}` : '';
30
+ };
31
+ /**
32
+ * Build a dispatcher bound to a single request's authorization. The
33
+ * `honoApp` is captured at attach time (the same app `buildHonoApp`
34
+ * builds); `authorization` is the caller's verbatim `Authorization`
35
+ * header so the dispatched route authenticates as the MCP caller.
36
+ *
37
+ * The host is irrelevant for in-process dispatch (no socket is opened),
38
+ * but `honoApp.request` needs an absolute-or-rooted URL; a rooted path
39
+ * is what we pass, matching the test harness (`hono/path-rewrite.ts`).
40
+ */
41
+ const makeDispatch = (honoApp, authorization) => {
42
+ return async (method, path, init) => {
43
+ const url = `${path}${init?.query ? buildQueryString(init.query) : ''}`;
44
+ const hasJsonBody = init?.json !== undefined;
45
+ const res = await honoApp.request(url, {
46
+ method,
47
+ headers: {
48
+ Authorization: authorization,
49
+ ...(hasJsonBody ? { 'content-type': 'application/json' } : {}),
50
+ },
51
+ body: hasJsonBody ? JSON.stringify(init?.json) : undefined,
52
+ });
53
+ // Every Crowi API route replies JSON (success envelopes + error
54
+ // envelopes). A non-JSON body would be an unexpected 5xx; parse
55
+ // defensively so a malformed body still surfaces as an ApiToolError.
56
+ let body;
57
+ try {
58
+ body = await res.json();
59
+ }
60
+ catch {
61
+ body = { error: { code: 'INTERNAL_ERROR', message: `Non-JSON response (status ${res.status})` } };
62
+ }
63
+ if (!res.ok) {
64
+ throw new ApiToolError(res.status, body);
65
+ }
66
+ return body;
67
+ };
68
+ };
69
+ exports.makeDispatch = makeDispatch;
70
+ //# sourceMappingURL=dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/mcp/dispatch.ts"],"names":[],"mappings":";;;AA2BA;;;;GAIG;AACH,MAAa,YAAa,SAAQ,KAAK;IAEnB;IACA;IAFlB,YACkB,MAAc,EACd,IAAa;QAE7B,KAAK,CAAC,mCAAmC,MAAM,EAAE,CAAC,CAAC;QAHnC,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AARD,oCAQC;AAgBD,4DAA4D;AAC5D,MAAM,gBAAgB,GAAG,CAAC,KAAoB,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5B,CAAC,CAAC;AAIF;;;;;;;;;GASG;AACI,MAAM,YAAY,GAAG,CAAC,OAAuC,EAAE,aAAqB,EAAY,EAAE;IACvG,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAExE,MAAM,WAAW,GAAG,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YACrC,MAAM;YACN,OAAO,EAAE;gBACP,aAAa,EAAE,aAAa;gBAC5B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D;YACD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC3D,CAAC,CAAC;QAEH,gEAAgE;QAChE,gEAAgE;QAChE,qEAAqE;QACrE,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,6BAA6B,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACpG,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,YAAY,gBA6BvB"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * RFC-0011 §9 — mapping in-process dispatch results into MCP tool
3
+ * results.
4
+ *
5
+ * MCP tool results carry `content` (an array of typed blocks; the model
6
+ * reads `text`) plus optional `structuredContent` (machine-readable
7
+ * data) and an `isError` flag. The helpers here turn the JSON envelope a
8
+ * dispatched route returns into that shape, and turn an `ApiToolError`
9
+ * (non-2xx) into an `isError` result whose text is derived from the API
10
+ * error envelope so the model can recover (e.g. re-fetch on a 409).
11
+ */
12
+ import { ApiToolError } from './dispatch';
13
+ /** Minimal MCP tool-result shape (subset of the SDK's `CallToolResult`). */
14
+ export interface McpToolResult {
15
+ content: Array<{
16
+ type: 'text';
17
+ text: string;
18
+ }>;
19
+ structuredContent?: Record<string, unknown>;
20
+ isError?: boolean;
21
+ }
22
+ /** A plain object whose values we want as `structuredContent`. */
23
+ type Structured = Record<string, unknown>;
24
+ /** Build a success result: a text block plus optional structured data. */
25
+ export declare const okResult: (text: string, structuredContent?: Structured) => McpToolResult;
26
+ /**
27
+ * Build an error result from an `ApiToolError`. The text is the API
28
+ * error envelope's `code` + `message` (RFC-0011 §9) so the model gets a
29
+ * human-readable, recoverable signal. The full body is echoed in
30
+ * `structuredContent` for clients that introspect it.
31
+ */
32
+ export declare const errorResult: (err: ApiToolError) => McpToolResult;
33
+ /**
34
+ * Run a tool body and convert a thrown `ApiToolError` into an `isError`
35
+ * result. Any other throw is rethrown — the SDK turns an uncaught throw
36
+ * into a protocol-level error, which is the right behaviour for genuine
37
+ * bugs (vs. an expected 4xx from the dispatched route).
38
+ */
39
+ export declare const runTool: (body: () => Promise<McpToolResult>) => Promise<McpToolResult>;
40
+ export {};
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runTool = exports.errorResult = exports.okResult = void 0;
4
+ /**
5
+ * RFC-0011 §9 — mapping in-process dispatch results into MCP tool
6
+ * results.
7
+ *
8
+ * MCP tool results carry `content` (an array of typed blocks; the model
9
+ * reads `text`) plus optional `structuredContent` (machine-readable
10
+ * data) and an `isError` flag. The helpers here turn the JSON envelope a
11
+ * dispatched route returns into that shape, and turn an `ApiToolError`
12
+ * (non-2xx) into an `isError` result whose text is derived from the API
13
+ * error envelope so the model can recover (e.g. re-fetch on a 409).
14
+ */
15
+ const dispatch_1 = require("./dispatch");
16
+ /** Build a success result: a text block plus optional structured data. */
17
+ const okResult = (text, structuredContent) => ({
18
+ content: [{ type: 'text', text }],
19
+ ...(structuredContent ? { structuredContent } : {}),
20
+ });
21
+ exports.okResult = okResult;
22
+ /**
23
+ * Build an error result from an `ApiToolError`. The text is the API
24
+ * error envelope's `code` + `message` (RFC-0011 §9) so the model gets a
25
+ * human-readable, recoverable signal. The full body is echoed in
26
+ * `structuredContent` for clients that introspect it.
27
+ */
28
+ const errorResult = (err) => {
29
+ const envelope = extractErrorEnvelope(err.body);
30
+ const code = envelope.code ?? `HTTP_${err.status}`;
31
+ const message = envelope.message ?? 'The Crowi API rejected the request.';
32
+ return {
33
+ content: [{ type: 'text', text: `Error (${code}): ${message}` }],
34
+ structuredContent: { status: err.status, error: { code, message } },
35
+ isError: true,
36
+ };
37
+ };
38
+ exports.errorResult = errorResult;
39
+ /**
40
+ * Run a tool body and convert a thrown `ApiToolError` into an `isError`
41
+ * result. Any other throw is rethrown — the SDK turns an uncaught throw
42
+ * into a protocol-level error, which is the right behaviour for genuine
43
+ * bugs (vs. an expected 4xx from the dispatched route).
44
+ */
45
+ const runTool = async (body) => {
46
+ try {
47
+ return await body();
48
+ }
49
+ catch (err) {
50
+ if (err instanceof dispatch_1.ApiToolError) {
51
+ return (0, exports.errorResult)(err);
52
+ }
53
+ throw err;
54
+ }
55
+ };
56
+ exports.runTool = runTool;
57
+ /** Best-effort extraction of `{ error: { code, message } }`. */
58
+ const extractErrorEnvelope = (body) => {
59
+ if (body && typeof body === 'object' && 'error' in body) {
60
+ const error = body.error;
61
+ // Most routes use the nested `{ error: { code, message } }` shape;
62
+ // the rate-limit envelopes use a flat `{ error: 'rate_limited',
63
+ // message }`. Handle both.
64
+ if (error && typeof error === 'object') {
65
+ const e = error;
66
+ return {
67
+ code: typeof e.code === 'string' ? e.code : undefined,
68
+ message: typeof e.message === 'string' ? e.message : undefined,
69
+ };
70
+ }
71
+ if (typeof error === 'string') {
72
+ const message = body.message;
73
+ return { code: error, message: typeof message === 'string' ? message : undefined };
74
+ }
75
+ }
76
+ return {};
77
+ };
78
+ //# sourceMappingURL=result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/mcp/result.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,yCAA0C;AAY1C,0EAA0E;AACnE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,iBAA8B,EAAiB,EAAE,CAAC,CAAC;IACxF,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACjC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CACpD,CAAC,CAAC;AAHU,QAAA,QAAQ,YAGlB;AAEH;;;;;GAKG;AACI,MAAM,WAAW,GAAG,CAAC,GAAiB,EAAiB,EAAE;IAC9D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;IACnD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,qCAAqC,CAAC;IAC1E,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,IAAI,MAAM,OAAO,EAAE,EAAE,CAAC;QAChE,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACnE,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,WAAW,eAStB;AAEF;;;;;GAKG;AACI,MAAM,OAAO,GAAG,KAAK,EAAE,IAAkC,EAA0B,EAAE;IAC1F,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,uBAAY,EAAE,CAAC;YAChC,OAAO,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AATW,QAAA,OAAO,WASlB;AAEF,gEAAgE;AAChE,MAAM,oBAAoB,GAAG,CAAC,IAAa,EAAuC,EAAE;IAClF,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACxD,MAAM,KAAK,GAAI,IAA2B,CAAC,KAAK,CAAC;QACjD,mEAAmE;QACnE,gEAAgE;QAChE,2BAA2B;QAC3B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,KAA8C,CAAC;YACzD,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACrD,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;aAC/D,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAI,IAA8B,CAAC,OAAO,CAAC;YACxD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * RFC-0011 §7 — per-request MCP server factory + data-driven tool table.
3
+ *
4
+ * `buildMcpServer(ctx)` builds a fresh `McpServer` per request (stateless
5
+ * transport, RFC-0011 §4). The server registers the static tool catalog,
6
+ * but every tool closes over the request's `dispatch` (which carries the
7
+ * caller's `Authorization`), so tool calls run with the caller's identity
8
+ * and inherit the dispatched route's scope enforcement (RFC-0011 §5.2).
9
+ *
10
+ * The tool catalog is **data-driven**: each tool is a `ToolDescriptor`
11
+ * row `{ name, method, path, ... }`, so adding a tool is one row, not a
12
+ * new code path (RFC-0011 §8). Three request shapes are supported:
13
+ * - **query** tools (GET): the validated input becomes the query bag.
14
+ * - **body** tools (POST/PUT/DELETE): the validated input becomes the
15
+ * JSON body.
16
+ * - **path-param** tools: one or more input fields are spliced into the
17
+ * route path (e.g. `/pages/{page_id}/revisions`) and the remainder
18
+ * becomes the query / body.
19
+ */
20
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
21
+ import type { ZodRawShape } from 'zod';
22
+ import type { Dispatch } from './dispatch';
23
+ import { type McpToolResult, okResult } from './result';
24
+ /** How a tool's validated input is turned into a dispatch request. */
25
+ export type ToolKind = 'query' | 'body';
26
+ /**
27
+ * A single tool definition. The dispatched route is `method path` (bare,
28
+ * no `/api/v2`); the route enforces scope, so the `scope` field here is
29
+ * documentation only (it is never re-checked in the MCP layer).
30
+ */
31
+ export interface ToolDescriptor {
32
+ /** MCP tool name, `crowi_<verb>_<noun>`. */
33
+ name: string;
34
+ /** Human + model-facing description. Documents revision_id etc. */
35
+ description: string;
36
+ /** HTTP method of the dispatched route. */
37
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE';
38
+ /**
39
+ * Route path with optional `{param}` placeholders filled from the
40
+ * input (e.g. `/pages/{page_id}/revisions`). Placeholder fields are
41
+ * removed from the query / body after substitution.
42
+ */
43
+ path: string;
44
+ /** Input schema shape passed to `registerTool` for boundary validation. */
45
+ schema: ZodRawShape;
46
+ /**
47
+ * Whether the non-path input becomes the query string (GET) or the
48
+ * JSON body (POST/PUT/DELETE).
49
+ */
50
+ kind: ToolKind;
51
+ /** Scope the dispatched route requires (documentation only). */
52
+ scope: string;
53
+ /** Map the dispatched route's JSON result into an MCP tool result. */
54
+ resultMapper: (body: unknown) => McpToolResult;
55
+ }
56
+ /** Context captured per request and closed over by every tool. */
57
+ export interface McpServerContext {
58
+ dispatch: Dispatch;
59
+ }
60
+ /**
61
+ * Build a per-request `McpServer` with the full tool catalog registered.
62
+ * Stateless: a fresh server is connected to a fresh transport per request
63
+ * by `attachMcp`.
64
+ */
65
+ export declare const buildMcpServer: (ctx: McpServerContext) => McpServer;
66
+ /** Re-export the result helper so tool tables can build success results. */
67
+ export { okResult };
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.okResult = exports.buildMcpServer = void 0;
4
+ /**
5
+ * RFC-0011 §7 — per-request MCP server factory + data-driven tool table.
6
+ *
7
+ * `buildMcpServer(ctx)` builds a fresh `McpServer` per request (stateless
8
+ * transport, RFC-0011 §4). The server registers the static tool catalog,
9
+ * but every tool closes over the request's `dispatch` (which carries the
10
+ * caller's `Authorization`), so tool calls run with the caller's identity
11
+ * and inherit the dispatched route's scope enforcement (RFC-0011 §5.2).
12
+ *
13
+ * The tool catalog is **data-driven**: each tool is a `ToolDescriptor`
14
+ * row `{ name, method, path, ... }`, so adding a tool is one row, not a
15
+ * new code path (RFC-0011 §8). Three request shapes are supported:
16
+ * - **query** tools (GET): the validated input becomes the query bag.
17
+ * - **body** tools (POST/PUT/DELETE): the validated input becomes the
18
+ * JSON body.
19
+ * - **path-param** tools: one or more input fields are spliced into the
20
+ * route path (e.g. `/pages/{page_id}/revisions`) and the remainder
21
+ * becomes the query / body.
22
+ */
23
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
24
+ const result_1 = require("./result");
25
+ Object.defineProperty(exports, "okResult", { enumerable: true, get: function () { return result_1.okResult; } });
26
+ const page_1 = require("./tools/page");
27
+ const search_1 = require("./tools/search");
28
+ /** Server identity advertised to MCP clients (`initialize` response). */
29
+ const SERVER_INFO = {
30
+ name: 'crowi',
31
+ version: '1.0.0',
32
+ };
33
+ /**
34
+ * Server-level usage guidance returned in the `initialize` response. MCP
35
+ * clients surface this to the model as a system-prompt-style hint (MCP
36
+ * spec: `instructions`), so it is the place for cross-cutting Crowi
37
+ * conventions that no single tool owns — path shape, date-page nesting,
38
+ * the get-before-update lock dance, and grant values.
39
+ */
40
+ const SERVER_INSTRUCTIONS = `This server exposes a Crowi wiki (team knowledge base). When the user asks to
41
+ search/read/create/update wiki pages, use these crowi_* tools — they operate on
42
+ the wiki, not the local filesystem or codebase.
43
+
44
+ Path conventions:
45
+ - Paths are slash-separated hierarchies. A trailing slash means a portal
46
+ (directory) page; no trailing slash is the page itself.
47
+ - Date-based pages nest by slash, NOT hyphens: \`/parent/YYYY/MM/DD/title\`
48
+ (e.g. /crowi/qa/2026/06/08/mcp-server), never \`/parent/2026-06-08-title\`.
49
+
50
+ Choosing where to create a page:
51
+ - Personal notes / daily memos belong under the author's own user page:
52
+ \`/user/<username>/memo/YYYY/MM/DD/title\`. If you do not know the username, ask
53
+ the user rather than guessing.
54
+ - Project / team content follows the existing structure of that project. Before
55
+ creating, explore with crowi_search_pages / crowi_list_child_pages /
56
+ crowi_autocomplete_pages to see where similar pages already live, then place the
57
+ new page to match that hierarchy instead of inventing a new top-level path.
58
+
59
+ Editing:
60
+ - Before crowi_update_page, call crowi_get_page to read the current revision_id
61
+ (optimistic lock). A stale revision_id returns a 409 conflict — refetch and retry.
62
+
63
+ Visibility (\`grant\` on create): 1 = public, 2 = restricted, 3 = specified users,
64
+ 4 = owner only. Omit to default to public.`;
65
+ /** Names of `{param}` placeholders in a path template. */
66
+ const pathParamNames = (path) => [...path.matchAll(/\{([^}]+)\}/g)].map((m) => m[1]);
67
+ /**
68
+ * Substitute `{param}` placeholders in `path` from `input`, returning the
69
+ * concrete path plus the remaining (non-path) input fields.
70
+ */
71
+ const splicePathParams = (path, input) => {
72
+ const names = pathParamNames(path);
73
+ if (names.length === 0)
74
+ return { path, rest: input };
75
+ let concrete = path;
76
+ const rest = { ...input };
77
+ for (const name of names) {
78
+ const value = rest[name];
79
+ concrete = concrete.replace(`{${name}}`, encodeURIComponent(String(value ?? '')));
80
+ delete rest[name];
81
+ }
82
+ return { path: concrete, rest };
83
+ };
84
+ /**
85
+ * Build a per-request `McpServer` with the full tool catalog registered.
86
+ * Stateless: a fresh server is connected to a fresh transport per request
87
+ * by `attachMcp`.
88
+ */
89
+ const buildMcpServer = (ctx) => {
90
+ const server = new mcp_js_1.McpServer(SERVER_INFO, { instructions: SERVER_INSTRUCTIONS });
91
+ const descriptors = [...page_1.pageTools, ...search_1.searchTools];
92
+ for (const tool of descriptors) {
93
+ // The SDK validates `args` against `tool.schema` before invoking the
94
+ // callback, so `args` is the parsed input — invalid input never
95
+ // reaches here (it is rejected at the MCP boundary as `isError`,
96
+ // RFC §6). The handler return type (`McpToolResult`) is structurally
97
+ // a `CallToolResult` but lacks the SDK type's `[x: string]: unknown`
98
+ // index signature, so we cast at the registration boundary.
99
+ const handler = async (args) => (0, result_1.runTool)(async () => {
100
+ const { path, rest } = splicePathParams(tool.path, args ?? {});
101
+ const init = tool.kind === 'query' ? { query: rest } : { json: rest };
102
+ const body = await ctx.dispatch(tool.method, path, init);
103
+ return tool.resultMapper(body);
104
+ });
105
+ server.registerTool(tool.name, {
106
+ description: tool.description,
107
+ inputSchema: tool.schema,
108
+ }, handler);
109
+ }
110
+ return server;
111
+ };
112
+ exports.buildMcpServer = buildMcpServer;
113
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { ToolDescriptor } from '../server';
2
+ export declare const pageTools: ToolDescriptor[];