@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,881 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mongoose_1 = require("mongoose");
7
+ const debug_1 = __importDefault(require("debug"));
8
+ const apiResponse_1 = __importDefault(require("../util/apiResponse"));
9
+ const path_1 = require("../util/path");
10
+ const error_1 = require("../types/error");
11
+ const express_1 = require("../types/express");
12
+ exports.default = (crowi) => {
13
+ const debug = (0, debug_1.default)('crowi:routes:page');
14
+ const Page = crowi.model('Page');
15
+ const User = crowi.model('User');
16
+ const Bookmark = crowi.model('Bookmark');
17
+ const Watcher = crowi.model('Watcher');
18
+ const actions = {};
19
+ const api = (actions.api = {});
20
+ // register page events
21
+ const pageEvent = crowi.event('Page');
22
+ pageEvent.on('update', function (page, user) {
23
+ /*
24
+ const io = crowi.getIo()
25
+ if (io) {
26
+ io.sockets.emit('page edited', { page, user })
27
+ }
28
+ */
29
+ });
30
+ function getPathFromRequest(req) {
31
+ let path;
32
+ path = '/' + (req.params[0] || '');
33
+ path = (0, path_1.decodeSpace)(path);
34
+ path = path.replace(/\.md$/, '');
35
+ return path;
36
+ }
37
+ // TODO: total とかでちゃんと計算する
38
+ function generatePager(options) {
39
+ let next = null;
40
+ let prev = null;
41
+ const offset = parseInt(String(options.offset), 10);
42
+ const limit = parseInt(String(options.limit), 10);
43
+ const length = options.length || 0;
44
+ if (offset > 0) {
45
+ prev = offset - limit;
46
+ if (prev < 0) {
47
+ prev = 0;
48
+ }
49
+ }
50
+ if (length < limit) {
51
+ next = null;
52
+ }
53
+ else {
54
+ next = offset + limit;
55
+ }
56
+ return {
57
+ prev: prev,
58
+ next: next,
59
+ offset: offset,
60
+ };
61
+ }
62
+ // routing
63
+ actions.pageListShow = async function (req, res) {
64
+ const user = req.user;
65
+ const limit = 50;
66
+ const offset = (0, express_1.getQueryAsNumber)(req.query.offset, 0);
67
+ const SEENER_THRESHOLD = 10;
68
+ let path = getPathFromRequest(req);
69
+ path = path + (path == '/' ? '' : '/');
70
+ debug('Page list show', path);
71
+ const pagerOptions = { offset, limit };
72
+ const queryOptions = { offset, limit: limit + 1 };
73
+ try {
74
+ const [portalPage, pageList] = (await Promise.all([
75
+ Page.findPortalPage(path, req.user, req.query.revision),
76
+ Page.findListByStartWith(path, req.user, queryOptions),
77
+ // FIXME: A bug of Promise.all type. It was introduced by TypeScript 3.7.3.
78
+ // https://github.com/microsoft/TypeScript/pull/33707
79
+ ]));
80
+ if (pageList.length > limit) {
81
+ pageList.pop();
82
+ }
83
+ if (portalPage) {
84
+ crowi.lru.add(user._id.toString(), portalPage._id.toString());
85
+ }
86
+ pagerOptions.length = pageList.length;
87
+ res.json({
88
+ path,
89
+ page: portalPage || null,
90
+ pages: pageList,
91
+ pager: generatePager(pagerOptions),
92
+ viewConfig: {
93
+ seener_threshold: SEENER_THRESHOLD,
94
+ },
95
+ });
96
+ }
97
+ catch (err) {
98
+ debug('Error on rendering pageListShow', err);
99
+ res.status(500).json({ error: 'Error on rendering pageListShow' });
100
+ }
101
+ };
102
+ actions.deletedPageListShow = function (req, res) {
103
+ const path = '/trash' + getPathFromRequest(req);
104
+ const limit = 50;
105
+ const offset = (0, express_1.getQueryAsNumber)(req.query.offset, 0);
106
+ // index page
107
+ const pagerOptions = { offset, limit };
108
+ const queryOptions = {
109
+ offset,
110
+ limit: limit + 1,
111
+ includeDeletedPage: true,
112
+ };
113
+ const renderVars = {
114
+ page: null,
115
+ path,
116
+ pages: [],
117
+ };
118
+ Page.findListByStartWith(path, req.user, queryOptions)
119
+ .then(function (pageList) {
120
+ if (pageList.length > limit) {
121
+ pageList.pop();
122
+ }
123
+ pagerOptions.length = pageList.length;
124
+ renderVars.pager = generatePager(pagerOptions);
125
+ renderVars.pages = pageList;
126
+ res.json(renderVars);
127
+ })
128
+ .catch(function (err) {
129
+ debug('Error on rendering deletedPageListShow', err);
130
+ res.status(500).json({ error: 'Error on rendering deletedPageListShow' });
131
+ });
132
+ };
133
+ async function renderPage(pageData, req, res) {
134
+ const user = req.user;
135
+ // create page
136
+ if (!pageData) {
137
+ return res.json({
138
+ author: {},
139
+ page: false,
140
+ });
141
+ }
142
+ crowi.lru.add(user._id.toString(), pageData._id.toString());
143
+ if (pageData.redirectTo) {
144
+ return res.redirect(encodeURI(pageData.redirectTo + '?redirectFrom=' + pageData.path));
145
+ }
146
+ const isNonExistentUserTrashPage = await Page.isNonExistentUserTrashPage(pageData.path);
147
+ const renderVars = {
148
+ path: pageData.path,
149
+ page: pageData,
150
+ revision: pageData.revision || {},
151
+ author: pageData.revision.author || false,
152
+ isNonExistentUserTrashPage,
153
+ };
154
+ return res.json(renderVars);
155
+ }
156
+ actions.userPageShow = async function (req, res) {
157
+ const user = req.user;
158
+ const username = req.params.username;
159
+ const path = `/user/${username}`;
160
+ res.locals.path = path;
161
+ debug('path', path);
162
+ // check page existance
163
+ let pageData;
164
+ try {
165
+ pageData = await Page.findPage(path, req.user, req.query.revision);
166
+ crowi.lru.add(user._id.toString(), pageData._id.toString());
167
+ if (pageData.redirectTo) {
168
+ return res.redirect(encodeURI(pageData.redirectTo + '?redirectFrom=' + pageData.path));
169
+ }
170
+ }
171
+ catch (e) {
172
+ // for B.C.: Old Crowi has no user page
173
+ return renderPage(null, req, res); // show create
174
+ }
175
+ let pageUser = null;
176
+ let bookmarkList = [];
177
+ let createdList = [];
178
+ let isNonExistentUserPage = false;
179
+ try {
180
+ // user いない場合
181
+ pageUser = await User.findUserByUsername(username);
182
+ [bookmarkList, createdList] = await Promise.all([
183
+ Bookmark.findByUser(pageUser, { limit: 10, populatePage: true, requestUser: req.user }),
184
+ Page.findListByCreator(pageUser, { limit: 10 }, req.user),
185
+ ]);
186
+ }
187
+ catch (e) {
188
+ isNonExistentUserPage = true;
189
+ debug('Error while loading user page.', username);
190
+ }
191
+ return res.json({
192
+ username,
193
+ bookmarkList,
194
+ createdList,
195
+ pageUser,
196
+ path: pageData.path,
197
+ page: pageData,
198
+ revision: pageData.revision || {},
199
+ author: pageData.revision.author || false,
200
+ isNonExistentUserPage,
201
+ });
202
+ };
203
+ actions.pageShow = async function (req, res) {
204
+ const path = getPathFromRequest(req);
205
+ // FIXME: せっかく getPathFromRequest になってるのにここが生 params[0] だとダサイ
206
+ const isMarkdown = req.params[0].match(/.+\.md$/) || false;
207
+ res.locals.path = path;
208
+ try {
209
+ const page = (await Page.findPage(path, req.user, req.query.revision));
210
+ debug('Page found', page._id, page.path);
211
+ if (isMarkdown) {
212
+ res.set('Content-Type', 'text/plain');
213
+ return res.send(page.revision.body);
214
+ }
215
+ return renderPage(page, req, res);
216
+ }
217
+ catch (err) {
218
+ const normalizedPath = Page.normalizePath(path);
219
+ if (normalizedPath !== path) {
220
+ return res.redirect(normalizedPath);
221
+ }
222
+ // pageShow は /* にマッチしてる最後の砦なので、creatableName でない routing は
223
+ // これ以前に定義されているはずなので、こうしてしまって問題ない。
224
+ if (!Page.isCreatableName(path)) {
225
+ // 削除済みページの場合 /trash 以下に移動しているので creatableName になっていないので、表示を許可
226
+ debug('Page is not creatable name.', path);
227
+ res.redirect('/');
228
+ return;
229
+ }
230
+ if (req.query.revision) {
231
+ return res.redirect(encodeURI(path));
232
+ }
233
+ if (isMarkdown) {
234
+ return res.redirect('/');
235
+ }
236
+ try {
237
+ const portalPage = await Page.hasPortalPage(path + '/', req.user);
238
+ if (portalPage) {
239
+ return res.redirect(encodeURI(path) + '/');
240
+ }
241
+ else {
242
+ const fixed = Page.fixToCreatableName(path);
243
+ if (fixed !== path) {
244
+ debug('fixed page name', fixed);
245
+ res.redirect(encodeURI(fixed));
246
+ return;
247
+ }
248
+ // if guest user, redirect to `/login'
249
+ if (req.user === null) {
250
+ req.session.redirectTo = `${req.path}${req.search}`;
251
+ return res.redirect('/login');
252
+ }
253
+ return renderPage(null, req, res); // show create
254
+ }
255
+ }
256
+ catch (err) {
257
+ debug('Error on rendering pageShow (redirect to portal or fixed)', err);
258
+ return res.redirect('/');
259
+ }
260
+ }
261
+ };
262
+ actions.pageEdit = function (req, res) {
263
+ const pageForm = req.body.pageForm;
264
+ const body = pageForm.body;
265
+ const currentRevision = pageForm.currentRevision;
266
+ const grant = pageForm.grant;
267
+ const path = pageForm.path;
268
+ // TODO: make it pluggable
269
+ const notify = pageForm.notify || {};
270
+ debug('notify: ', notify);
271
+ const redirectPath = encodeURI(path);
272
+ let pageData = null;
273
+ let updateOrCreate;
274
+ let previousRevision = false;
275
+ // set to render
276
+ res.locals.pageForm = pageForm;
277
+ // 削除済みページはここで編集不可判定される
278
+ if (!Page.isCreatableName(path)) {
279
+ res.redirect(redirectPath);
280
+ return;
281
+ }
282
+ const ignoreNotFound = true;
283
+ Page.findPage(path, req.user, null, ignoreNotFound)
284
+ .then(function (data) {
285
+ pageData = data;
286
+ if (!req.form.isValid) {
287
+ debug('Form data not valid');
288
+ throw new Error('Form data not valid.');
289
+ }
290
+ if (data && !data.isUpdatable(currentRevision)) {
291
+ debug('Conflict occured');
292
+ req.form.errors.push('page_edit.notice.conflict');
293
+ throw new Error('Conflict.');
294
+ }
295
+ if (data) {
296
+ previousRevision = data.revision;
297
+ return Page.updatePage(data, body, req.user, { grant: grant });
298
+ }
299
+ else {
300
+ // new page
301
+ updateOrCreate = 'create';
302
+ return Page.createPage(path, body, req.user, { grant: grant });
303
+ }
304
+ })
305
+ .then(function (data) {
306
+ // data is a saved page data.
307
+ pageData = data;
308
+ if (!data) {
309
+ throw new Error('Data not found');
310
+ }
311
+ // TODO: move to events
312
+ if (notify.slack) {
313
+ if (notify.slack.on && notify.slack.channel) {
314
+ data
315
+ .updateSlackChannel(notify.slack.channel)
316
+ .then(function () { })
317
+ .catch(function () { });
318
+ if (crowi.slack) {
319
+ notify.slack.channel.split(',').map(function (chan) {
320
+ const message = crowi.slack.prepareSlackMessage(pageData, req.user, chan, updateOrCreate, previousRevision);
321
+ crowi.slack
322
+ .post(message.channel, message.text, message)
323
+ .then(function () { })
324
+ .catch(function () { });
325
+ });
326
+ }
327
+ }
328
+ }
329
+ return res.redirect(redirectPath);
330
+ })
331
+ .catch(function (err) {
332
+ debug('Page create or edit error.', err);
333
+ if (pageData && !req.form.isValid) {
334
+ return renderPage(pageData, req, res);
335
+ }
336
+ return res.redirect(redirectPath);
337
+ });
338
+ };
339
+ // app.get( '/users/:username([^/]+)/bookmarks' , loginRequired(crowi, app) , page.userBookmarkList);
340
+ actions.userBookmarkList = function (req, res) {
341
+ const username = req.params.username;
342
+ const limit = 50;
343
+ const offset = (0, express_1.getQueryAsNumber)(req.query.offset, 0);
344
+ const renderVars = {};
345
+ const pagerOptions = { offset, limit };
346
+ const queryOptions = { offset, limit: limit + 1, populatePage: true, requestUser: req.user };
347
+ User.findUserByUsername(username)
348
+ .then(function (user) {
349
+ if (user === null) {
350
+ throw new Error('The user not found.');
351
+ }
352
+ renderVars.pageUser = user;
353
+ return Bookmark.findByUser(user, queryOptions);
354
+ })
355
+ .then(function (bookmarks) {
356
+ if (bookmarks.length > limit) {
357
+ bookmarks.pop();
358
+ }
359
+ pagerOptions.length = bookmarks.length;
360
+ renderVars.pager = generatePager(pagerOptions);
361
+ renderVars.bookmarks = bookmarks;
362
+ return res.json(renderVars);
363
+ })
364
+ .catch(function (err) {
365
+ debug('Error on rendereing bookmark', err);
366
+ res.redirect('/');
367
+ });
368
+ };
369
+ // app.get( '/users/:username([^/]+)/recent-create' , loginRequired(crowi, app) , page.userRecentCreatedList);
370
+ actions.userRecentCreatedList = function (req, res) {
371
+ const username = req.params.username;
372
+ const limit = 50;
373
+ const offset = (0, express_1.getQueryAsNumber)(req.query.offset, 0);
374
+ const renderVars = {};
375
+ const pagerOptions = { offset, limit };
376
+ const queryOptions = { offset, limit: limit + 1 };
377
+ User.findUserByUsername(username)
378
+ .then(function (user) {
379
+ if (user === null) {
380
+ throw new Error('The user not found.');
381
+ }
382
+ renderVars.pageUser = user;
383
+ return Page.findListByCreator(user, queryOptions, req.user);
384
+ })
385
+ .then(function (pages) {
386
+ if (pages.length > limit) {
387
+ pages.pop();
388
+ }
389
+ pagerOptions.length = pages.length;
390
+ renderVars.pager = generatePager(pagerOptions);
391
+ renderVars.pages = pages;
392
+ return res.json(renderVars);
393
+ })
394
+ .catch(function (err) {
395
+ debug('Error on rendereing recent-created', err);
396
+ res.redirect('/');
397
+ });
398
+ };
399
+ /**
400
+ * redirector
401
+ */
402
+ api.redirector = function (req, res) {
403
+ const id = req.params.id;
404
+ Page.findPageById(id)
405
+ .then(function (pageData) {
406
+ const isGranted = pageData.isGrantedFor(req.user);
407
+ if (pageData.grant == Page.GRANT_RESTRICTED && !isGranted) {
408
+ return Page.pushToGrantedUsers(pageData, req.user);
409
+ }
410
+ if (!isGranted) {
411
+ throw new Error('Page is not granted for the user.');
412
+ }
413
+ return Promise.resolve(pageData);
414
+ })
415
+ .then(function (page) {
416
+ return res.redirect(encodeURI(page.path));
417
+ })
418
+ .catch(function (err) {
419
+ return res.redirect('/');
420
+ });
421
+ };
422
+ /**
423
+ * @api {get} /pages.list List pages by user
424
+ * @apiName ListPage
425
+ * @apiGroup Page
426
+ *
427
+ * @apiParam {String} path
428
+ * @apiParam {String} user
429
+ */
430
+ api.list = function (req, res) {
431
+ const username = (0, express_1.getQueryAsString)(req.query.user) || null;
432
+ const path = (0, express_1.getQueryAsString)(req.query.path) || null;
433
+ const limit = parseInt((0, express_1.getQueryAsString)(req.query.limit), 10) || 50;
434
+ const offset = parseInt((0, express_1.getQueryAsString)(req.query.offset), 10) || 0;
435
+ const pagerOptions = { offset, limit };
436
+ const queryOptions = { offset, limit: limit + 1 };
437
+ // Accepts only one of these
438
+ if (username === null && path === null) {
439
+ return res.json(apiResponse_1.default.error('Parameter user or path is required.'));
440
+ }
441
+ if (username !== null && path !== null) {
442
+ return res.json(apiResponse_1.default.error('Parameter user or path is required.'));
443
+ }
444
+ let pageFetcher;
445
+ if (path === null) {
446
+ pageFetcher = Page.findListByCreator(username, req.user, queryOptions); // by username
447
+ }
448
+ else {
449
+ pageFetcher = Page.findListByStartWith(path, req.user, queryOptions); // by path
450
+ }
451
+ pageFetcher
452
+ .then(function (pages) {
453
+ pagerOptions.length = pages.length;
454
+ const result = {
455
+ pages: pages.slice(0, limit),
456
+ pager: generatePager(pagerOptions),
457
+ };
458
+ return res.json(apiResponse_1.default.success(result));
459
+ })
460
+ .catch(function (err) {
461
+ return res.json(apiResponse_1.default.error(err));
462
+ });
463
+ };
464
+ /**
465
+ * @api {post} /pages.create Create new page
466
+ * @apiName CreatePage
467
+ * @apiGroup Page
468
+ *
469
+ * @apiParam {String} body
470
+ * @apiParam {String} path
471
+ * @apiParam {String} grant
472
+ */
473
+ api.create = function (req, res) {
474
+ const body = req.body.body || null;
475
+ const pagePath = req.body.path || null;
476
+ const grant = req.body.grant || null;
477
+ if (body === null || pagePath === null) {
478
+ return res.json(apiResponse_1.default.error('Parameters body and path are required.'));
479
+ }
480
+ const ignoreNotFound = true;
481
+ Page.findPage(pagePath, req.user, null, ignoreNotFound)
482
+ .then(function (data) {
483
+ if (data !== null) {
484
+ throw new Error('Page exists');
485
+ }
486
+ return Page.createPage(pagePath, body, req.user, { grant: grant });
487
+ })
488
+ .then(function (data) {
489
+ if (!data) {
490
+ throw new Error('Failed to create page.');
491
+ }
492
+ const result = { page: data.toObject() };
493
+ return res.json(apiResponse_1.default.success(result));
494
+ })
495
+ .catch(function (err) {
496
+ return res.json(apiResponse_1.default.error(err));
497
+ });
498
+ };
499
+ /**
500
+ * @api {post} /pages.update Update page
501
+ * @apiName UpdatePage
502
+ * @apiGroup Page
503
+ *
504
+ * @apiParam {String} body
505
+ * @apiParam {String} page_id
506
+ * @apiParam {String} revision_id
507
+ * @apiParam {String} grant
508
+ *
509
+ * In the case of the page exists:
510
+ * - If revision_id is specified => update the page,
511
+ * - If revision_id is not specified => force update by the new contents.
512
+ */
513
+ api.update = function (req, res) {
514
+ const pageBody = req.body.body || null;
515
+ const pageId = req.body.page_id || null;
516
+ const revisionId = req.body.revision_id || null;
517
+ const grant = req.body.grant || null;
518
+ if (pageId === null || pageBody === null) {
519
+ return res.json(apiResponse_1.default.error('page_id and body are required.'));
520
+ }
521
+ Page.findPageByIdAndGrantedUser(pageId, req.user)
522
+ .then(function (pageData) {
523
+ if (pageData && revisionId !== null && !pageData.isUpdatable(revisionId)) {
524
+ throw new Error('Revision error.');
525
+ }
526
+ const grantOption = { grant: pageData.grant };
527
+ if (grant !== null) {
528
+ grantOption.grant = grant;
529
+ }
530
+ return Page.updatePage(pageData, pageBody, req.user, grantOption);
531
+ })
532
+ .then(function (pageData) {
533
+ const result = {
534
+ page: pageData.toObject(),
535
+ };
536
+ return res.json(apiResponse_1.default.success(result));
537
+ })
538
+ .catch(function (err) {
539
+ debug('error on _api/pages.update', err);
540
+ return res.json(apiResponse_1.default.error(err));
541
+ });
542
+ };
543
+ /**
544
+ * @api {get} /pages.get Get page data
545
+ * @apiName GetPage
546
+ * @apiGroup Page
547
+ *
548
+ * @apiParam {String} page_id
549
+ * @apiParam {String} path
550
+ * @apiParam {String} revision_id
551
+ */
552
+ api.get = function (req, res) {
553
+ const pagePath = (0, express_1.getQueryAsString)(req.query.path) || null;
554
+ const pageId = (0, express_1.getQueryAsString)(req.query.page_id) || null; // TODO: handling
555
+ const revisionId = (0, express_1.getQueryAsString)(req.query.revision_id) || null;
556
+ if (!pageId && !pagePath) {
557
+ return res.json(apiResponse_1.default.error(new Error('Parameter path or page_id is required.')));
558
+ }
559
+ let pageFinder;
560
+ if (pageId) {
561
+ // prioritized
562
+ pageFinder = Page.findPageByIdAndGrantedUser(pageId, req.user);
563
+ }
564
+ else if (pagePath) {
565
+ pageFinder = Page.findPage(pagePath, req.user, revisionId);
566
+ }
567
+ pageFinder
568
+ .then(function (page) {
569
+ const result = { page };
570
+ return res.json(apiResponse_1.default.success(result));
571
+ })
572
+ .catch(function (err) {
573
+ return res.json(apiResponse_1.default.error(err));
574
+ });
575
+ };
576
+ /**
577
+ * @api {post} /pages.seen Mark as seen user
578
+ * @apiName SeenPage
579
+ * @apiGroup Page
580
+ *
581
+ * @apiParam {String} page_id Page Id.
582
+ */
583
+ api.seen = function (req, res) {
584
+ const pageId = req.body.page_id;
585
+ if (!pageId) {
586
+ return res.json(apiResponse_1.default.error('page_id required'));
587
+ }
588
+ Page.findPageByIdAndGrantedUser(pageId, req.user)
589
+ .then(function (page) {
590
+ return page.seen(req.user);
591
+ })
592
+ .then(function (seenUser) {
593
+ const result = { seenUser };
594
+ return res.json(apiResponse_1.default.success(result));
595
+ })
596
+ .catch(function (err) {
597
+ debug('Seen user update error', err);
598
+ return res.json(apiResponse_1.default.error(err));
599
+ });
600
+ };
601
+ /**
602
+ * @api {post} /likes.add Like page
603
+ * @apiName LikePage
604
+ * @apiGroup Page
605
+ *
606
+ * @apiParam {String} page_id Page Id.
607
+ */
608
+ api.like = function (req, res) {
609
+ const id = req.body.page_id;
610
+ Page.findPageByIdAndGrantedUser(id, req.user)
611
+ .then(function (pageData) {
612
+ return pageData.like(req.user);
613
+ })
614
+ .then(function (data) {
615
+ const result = { page: data };
616
+ return res.json(apiResponse_1.default.success(result));
617
+ })
618
+ .catch(function (err) {
619
+ debug('Like failed', err);
620
+ return res.json(apiResponse_1.default.error({}));
621
+ });
622
+ };
623
+ /**
624
+ * @api {post} /likes.remove Unlike page
625
+ * @apiName UnlikePage
626
+ * @apiGroup Page
627
+ *
628
+ * @apiParam {String} page_id Page Id.
629
+ */
630
+ api.unlike = function (req, res) {
631
+ const id = req.body.page_id;
632
+ Page.findPageByIdAndGrantedUser(id, req.user)
633
+ .then(function (pageData) {
634
+ return pageData.unlike(req.user);
635
+ })
636
+ .then(function (data) {
637
+ const result = { page: data };
638
+ return res.json(apiResponse_1.default.success(result));
639
+ })
640
+ .catch(function (err) {
641
+ debug('Unlike failed', err);
642
+ return res.json(apiResponse_1.default.error({}));
643
+ });
644
+ };
645
+ /**
646
+ * @api {get} /pages.updatePost
647
+ * @apiName Get UpdatePost setting list
648
+ * @apiGroup Page
649
+ *
650
+ * @apiParam {String} path
651
+ */
652
+ api.getUpdatePost = function (req, res) {
653
+ const path = req.query.path;
654
+ const UpdatePost = crowi.model('UpdatePost');
655
+ if (!path) {
656
+ return res.json(apiResponse_1.default.error({}));
657
+ }
658
+ UpdatePost.findSettingsByPath(path)
659
+ .then(function (data) {
660
+ data = data.map(function (e) {
661
+ return e.channel;
662
+ });
663
+ debug('Found updatePost data', data);
664
+ const result = { updatePost: data };
665
+ return res.json(apiResponse_1.default.success(result));
666
+ })
667
+ .catch(function (err) {
668
+ debug('Error occured while get setting', err);
669
+ return res.json(apiResponse_1.default.error({}));
670
+ });
671
+ };
672
+ /**
673
+ * @api {post} /pages.remove Remove page
674
+ * @apiName RemovePage
675
+ * @apiGroup Page
676
+ *
677
+ * @apiParam {String} page_id Page Id.
678
+ * @apiParam {String} revision_id
679
+ */
680
+ api.remove = function (req, res) {
681
+ const pageId = req.body.page_id;
682
+ const previousRevision = req.body.revision_id || null;
683
+ // get completely flag
684
+ const isCompletely = req.body.completely !== undefined;
685
+ Page.findPageByIdAndGrantedUser(pageId, req.user)
686
+ .then(function (pageData) {
687
+ debug('Delete page', pageData._id, pageData.path);
688
+ if (isCompletely) {
689
+ return Page.completelyDeletePage(pageData, req.user);
690
+ }
691
+ // else
692
+ if (!pageData.isUpdatable(previousRevision)) {
693
+ throw new Error("Someone could update this page, so couldn't delete.");
694
+ }
695
+ return Page.deletePage(pageData, req.user);
696
+ })
697
+ .then(function (page) {
698
+ debug('Page deleted', page.path);
699
+ const result = { page };
700
+ return res.json(apiResponse_1.default.success(result));
701
+ })
702
+ .catch(function (err) {
703
+ debug('Error occured while get setting', err, err.stack);
704
+ return res.json(apiResponse_1.default.error('Failed to delete page.'));
705
+ });
706
+ };
707
+ /**
708
+ * @api {post} /pages.revertRemove Revert removed page
709
+ * @apiName RevertRemovePage
710
+ * @apiGroup Page
711
+ *
712
+ * @apiParam {String} page_id Page Id.
713
+ */
714
+ api.revertRemove = function (req, res) {
715
+ const pageId = req.body.page_id;
716
+ Page.findPageByIdAndGrantedUser(pageId, req.user)
717
+ .then(function (pageData) {
718
+ // TODO: これでいいんだっけ
719
+ return Page.revertDeletedPage(pageData, req.user);
720
+ })
721
+ .then(function (page) {
722
+ debug('Complete to revert deleted page', page.path);
723
+ const result = { page };
724
+ return res.json(apiResponse_1.default.success(result));
725
+ })
726
+ .catch(function (err) {
727
+ debug('Error occured while get setting', err, err.stack);
728
+ return res.json(apiResponse_1.default.error('Failed to revert deleted page.'));
729
+ });
730
+ };
731
+ /**
732
+ * @api {post} /pages.rename Rename page
733
+ * @apiName RenamePage
734
+ * @apiGroup Page
735
+ *
736
+ * @apiParam {String} page_id Page Id.
737
+ * @apiParam {String} path
738
+ * @apiParam {String} revision_id
739
+ * @apiParam {String} new_path
740
+ * @apiParam {Bool} create_redirect
741
+ */
742
+ api.rename = async function (req, res) {
743
+ const { page_id: pageId, revision_id: previousRevision = null, new_path: newPath, create_redirect: createRedirect, move_trees: moveTrees } = req.body;
744
+ const newPagePath = Page.normalizePath(newPath);
745
+ const newPageIsPortal = newPagePath.endsWith('/');
746
+ const options = {
747
+ createRedirectPage: (!newPageIsPortal && createRedirect) || 0,
748
+ moveUnderTrees: moveTrees || 0,
749
+ };
750
+ if (!Page.isCreatableName(newPagePath)) {
751
+ return res.json(apiResponse_1.default.error(`このページ名は作成できません (${newPagePath})`));
752
+ }
753
+ const rename = async function () {
754
+ try {
755
+ const page = await Page.findPageById(pageId);
756
+ if (!page.isUpdatable(previousRevision)) {
757
+ return res.json(apiResponse_1.default.error(new Error("Someone could update this page, so couldn't delete.")));
758
+ }
759
+ await Page.rename(page, newPagePath, req.user, options);
760
+ const result = { page };
761
+ return res.json(apiResponse_1.default.success(result));
762
+ }
763
+ catch (err) {
764
+ return res.json(apiResponse_1.default.error('Failed to update page.'));
765
+ }
766
+ };
767
+ try {
768
+ const page = await Page.findPageByPath(newPagePath);
769
+ if (page.isUnlinkable(req.user)) {
770
+ try {
771
+ await page.unlink(req.user);
772
+ rename();
773
+ }
774
+ catch (err) {
775
+ res.json(apiResponse_1.default.error(err));
776
+ }
777
+ }
778
+ else {
779
+ // can't rename to that path when page found and can't remove it
780
+ return res.json(apiResponse_1.default.error(`このページ名は作成できません (${newPagePath})。ページが存在します。`));
781
+ }
782
+ }
783
+ catch (err) {
784
+ rename();
785
+ }
786
+ };
787
+ api.renameTree = async function (req, res) {
788
+ const { path, new_path: newPath, create_redirect: createRedirect = 0 } = req.body;
789
+ const options = { createRedirectPage: createRedirect };
790
+ const paths = await Page.findChildrenByPath(path, req.user, {});
791
+ const pathMap = Page.getPathMap(paths, path, newPath);
792
+ const [error, errors] = await Page.checkPagesRenamable(Object.values(pathMap), req.user);
793
+ if (error) {
794
+ const info = { errors, path_map: pathMap };
795
+ return res.json(apiResponse_1.default.error('rename_tree.error.can_not_move', info));
796
+ }
797
+ try {
798
+ const result = await Page.renameTree(pathMap, req.user, options);
799
+ return res.json(apiResponse_1.default.success({ pages: result }));
800
+ }
801
+ catch (err) {
802
+ return res.json(apiResponse_1.default.error(err));
803
+ }
804
+ };
805
+ api.checkTreeRenamable = async function (req, res) {
806
+ const { path, new_path: newPath } = req.body;
807
+ const paths = await Page.findChildrenByPath(path, req.user, {});
808
+ const pathMap = Page.getPathMap(paths, path, newPath);
809
+ const [error, errors] = await Page.checkPagesRenamable(Object.values(pathMap), req.user);
810
+ if (error) {
811
+ const info = { errors, path_map: pathMap };
812
+ return res.json(apiResponse_1.default.error('rename_tree.error.can_not_move', info));
813
+ }
814
+ return res.json(apiResponse_1.default.success({ path_map: pathMap }));
815
+ };
816
+ /**
817
+ * @api {post} /pages.unlink Remove the redirecting page
818
+ * @apiName UnlinkPage
819
+ * @apiGroup Page
820
+ *
821
+ * @apiParam {String} page_id Page Id.
822
+ * @apiParam {String} revision_id
823
+ */
824
+ api.unlink = async function (req, res) {
825
+ const { page_id: pageId } = req.body;
826
+ try {
827
+ const page = await Page.findPageByIdAndGrantedUser(pageId, req.user);
828
+ debug('Unlink page', page._id, page.path);
829
+ await Page.removeRedirectOriginPageByPath(page.path);
830
+ debug('Redirect Page deleted', page.path);
831
+ const result = { page };
832
+ return res.json(apiResponse_1.default.success(result));
833
+ }
834
+ catch (err) {
835
+ const error = (0, error_1.asCustomError)(err);
836
+ debug('Error occured while get setting', error, error.stack);
837
+ return res.json(apiResponse_1.default.error('Failed to delete redirect page.'));
838
+ }
839
+ };
840
+ api.watchStatus = async function (req, res) {
841
+ const pageIdStr = (0, express_1.getQueryAsString)(req.query.page_id);
842
+ const { _id: userId } = req.user;
843
+ try {
844
+ // @ts-ignore - TypeScriptの型定義が正しくないため無視
845
+ const pageId = new mongoose_1.Types.ObjectId(pageIdStr);
846
+ const watcher = await Watcher.findByUserIdAndTargetId(userId, pageId);
847
+ const getDefaultStatus = async () => {
848
+ const page = await Page.findById(pageIdStr);
849
+ if (!page)
850
+ throw new Error('Page not found');
851
+ const targetUsers = await page.getNotificationTargetUsers();
852
+ return targetUsers.some((user) => user.toString() === userId.toString());
853
+ };
854
+ const watching = watcher ? watcher.isWatching() : await getDefaultStatus();
855
+ const result = { watching };
856
+ return res.json(apiResponse_1.default.success(result));
857
+ }
858
+ catch (err) {
859
+ const error = (0, error_1.asCustomError)(err);
860
+ debug('Error occured while get setting', error, error.stack);
861
+ return res.json(apiResponse_1.default.error('Failed to fetch watch status.'));
862
+ }
863
+ };
864
+ api.watch = async function (req, res) {
865
+ const { page_id: pageId } = req.body;
866
+ const { _id: userId } = req.user;
867
+ const status = req.body.status ? Watcher.STATUS_WATCH : Watcher.STATUS_IGNORE;
868
+ try {
869
+ const watcher = await Watcher.watchByPageId(userId, pageId, status);
870
+ const result = { watcher };
871
+ return res.json(apiResponse_1.default.success(result));
872
+ }
873
+ catch (err) {
874
+ const error = (0, error_1.asCustomError)(err);
875
+ debug('Error occured while update watch status', error, error.stack);
876
+ return res.json(apiResponse_1.default.error('Failed to watch this page.'));
877
+ }
878
+ };
879
+ return actions;
880
+ };
881
+ //# sourceMappingURL=page.js.map