@crowi/api 2.0.0-alpha.1 → 2.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/dist/hono/handlers/activation.d.ts +3 -3
  2. package/dist/hono/handlers/admin/users.d.ts +118 -0
  3. package/dist/hono/handlers/admin/users.js +28 -0
  4. package/dist/hono/handlers/admin/users.js.map +1 -1
  5. package/dist/hono/handlers/app.d.ts +1 -0
  6. package/dist/hono/handlers/app.js +11 -0
  7. package/dist/hono/handlers/app.js.map +1 -1
  8. package/dist/hono/handlers/attachment-stream.js +23 -0
  9. package/dist/hono/handlers/attachment-stream.js.map +1 -1
  10. package/dist/hono/handlers/draft.js +10 -0
  11. package/dist/hono/handlers/draft.js.map +1 -1
  12. package/dist/hono/handlers/emailChange.d.ts +4 -4
  13. package/dist/hono/handlers/inviteAccept.d.ts +6 -6
  14. package/dist/hono/handlers/page.d.ts +251 -0
  15. package/dist/hono/handlers/page.js +123 -6
  16. package/dist/hono/handlers/page.js.map +1 -1
  17. package/dist/hono/handlers/passwordReset.d.ts +5 -5
  18. package/dist/hono/handlers/tokenAuth.d.ts +7 -7
  19. package/dist/mcp/result.d.ts +42 -16
  20. package/dist/mcp/result.js +56 -10
  21. package/dist/mcp/result.js.map +1 -1
  22. package/dist/mcp/tools/page.js +21 -1
  23. package/dist/mcp/tools/page.js.map +1 -1
  24. package/dist/mcp/tools/search.d.ts +12 -0
  25. package/dist/mcp/tools/search.js +21 -5
  26. package/dist/mcp/tools/search.js.map +1 -1
  27. package/dist/migration/helpers.d.ts +13 -0
  28. package/dist/migration/helpers.js +29 -0
  29. package/dist/migration/helpers.js.map +1 -0
  30. package/dist/migration/migrations/files-url-to-attachments.d.ts +35 -0
  31. package/dist/migration/migrations/files-url-to-attachments.js +291 -0
  32. package/dist/migration/migrations/files-url-to-attachments.js.map +1 -0
  33. package/dist/migration/migrations/index.js +4 -0
  34. package/dist/migration/migrations/index.js.map +1 -1
  35. package/dist/migration/migrations/published-current-revision.d.ts +47 -0
  36. package/dist/migration/migrations/published-current-revision.js +90 -0
  37. package/dist/migration/migrations/published-current-revision.js.map +1 -0
  38. package/dist/migration/migrations/wikilink-format.d.ts +0 -11
  39. package/dist/migration/migrations/wikilink-format.js +5 -156
  40. package/dist/migration/migrations/wikilink-format.js.map +1 -1
  41. package/dist/migration/migrations/wikilink-html-recover.d.ts +116 -0
  42. package/dist/migration/migrations/wikilink-html-recover.js +314 -0
  43. package/dist/migration/migrations/wikilink-html-recover.js.map +1 -0
  44. package/dist/models/page.d.ts +3 -0
  45. package/dist/models/page.js +31 -0
  46. package/dist/models/page.js.map +1 -1
  47. package/dist/models/user.d.ts +1 -0
  48. package/dist/models/user.js +40 -21
  49. package/dist/models/user.js.map +1 -1
  50. package/dist/renderer/core/headings.d.ts +12 -1
  51. package/dist/renderer/core/headings.js +48 -8
  52. package/dist/renderer/core/headings.js.map +1 -1
  53. package/dist/renderer/pipeline.d.ts +6 -0
  54. package/dist/renderer/pipeline.js.map +1 -1
  55. package/dist/util/page-response.js +19 -2
  56. package/dist/util/page-response.js.map +1 -1
  57. package/package.json +12 -6
  58. package/views/mail/layout.mjml +7 -5
  59. package/dist/common/functions/path2name.d.ts +0 -1
  60. package/dist/common/functions/path2name.js +0 -22
  61. package/dist/common/functions/path2name.js.map +0 -1
  62. package/dist/common/functions/renderIcon.d.ts +0 -1
  63. package/dist/common/functions/renderIcon.js +0 -9
  64. package/dist/common/functions/renderIcon.js.map +0 -1
  65. package/dist/controllers/admin.d.ts +0 -3
  66. package/dist/controllers/admin.js +0 -474
  67. package/dist/controllers/admin.js.map +0 -1
  68. package/dist/controllers/attachment.d.ts +0 -4
  69. package/dist/controllers/attachment.js +0 -200
  70. package/dist/controllers/attachment.js.map +0 -1
  71. package/dist/controllers/backlink.d.ts +0 -3
  72. package/dist/controllers/backlink.js +0 -42
  73. package/dist/controllers/backlink.js.map +0 -1
  74. package/dist/controllers/bookmark.d.ts +0 -3
  75. package/dist/controllers/bookmark.js +0 -100
  76. package/dist/controllers/bookmark.js.map +0 -1
  77. package/dist/controllers/comment.d.ts +0 -3
  78. package/dist/controllers/comment.js +0 -111
  79. package/dist/controllers/comment.js.map +0 -1
  80. package/dist/controllers/index.d.ts +0 -25
  81. package/dist/controllers/index.js +0 -44
  82. package/dist/controllers/index.js.map +0 -1
  83. package/dist/controllers/installer.d.ts +0 -3
  84. package/dist/controllers/installer.js +0 -48
  85. package/dist/controllers/installer.js.map +0 -1
  86. package/dist/controllers/login.d.ts +0 -4
  87. package/dist/controllers/login.js +0 -438
  88. package/dist/controllers/login.js.map +0 -1
  89. package/dist/controllers/logout.d.ts +0 -5
  90. package/dist/controllers/logout.js +0 -11
  91. package/dist/controllers/logout.js.map +0 -1
  92. package/dist/controllers/me.d.ts +0 -4
  93. package/dist/controllers/me.js +0 -369
  94. package/dist/controllers/me.js.map +0 -1
  95. package/dist/controllers/notification.d.ts +0 -3
  96. package/dist/controllers/notification.js +0 -88
  97. package/dist/controllers/notification.js.map +0 -1
  98. package/dist/controllers/page.d.ts +0 -3
  99. package/dist/controllers/page.js +0 -881
  100. package/dist/controllers/page.js.map +0 -1
  101. package/dist/controllers/revision.d.ts +0 -3
  102. package/dist/controllers/revision.js +0 -91
  103. package/dist/controllers/revision.js.map +0 -1
  104. package/dist/controllers/search.d.ts +0 -3
  105. package/dist/controllers/search.js +0 -93
  106. package/dist/controllers/search.js.map +0 -1
  107. package/dist/controllers/share.d.ts +0 -3
  108. package/dist/controllers/share.js +0 -207
  109. package/dist/controllers/share.js.map +0 -1
  110. package/dist/controllers/shareAccess.d.ts +0 -3
  111. package/dist/controllers/shareAccess.js +0 -28
  112. package/dist/controllers/shareAccess.js.map +0 -1
  113. package/dist/controllers/slack.d.ts +0 -3
  114. package/dist/controllers/slack.js +0 -87
  115. package/dist/controllers/slack.js.map +0 -1
  116. package/dist/controllers/tokenAuth.d.ts +0 -10
  117. package/dist/controllers/tokenAuth.js +0 -292
  118. package/dist/controllers/tokenAuth.js.map +0 -1
  119. package/dist/controllers/user.d.ts +0 -3
  120. package/dist/controllers/user.js +0 -67
  121. package/dist/controllers/user.js.map +0 -1
  122. package/dist/controllers/version.d.ts +0 -4
  123. package/dist/controllers/version.js +0 -19
  124. package/dist/controllers/version.js.map +0 -1
  125. package/dist/crowi/express-init.d.ts +0 -4
  126. package/dist/crowi/express-init.js +0 -101
  127. package/dist/crowi/express-init.js.map +0 -1
  128. package/dist/form/admin/app.d.ts +0 -2
  129. package/dist/form/admin/app.js +0 -9
  130. package/dist/form/admin/app.js.map +0 -1
  131. package/dist/form/admin/auth.d.ts +0 -2
  132. package/dist/form/admin/auth.js +0 -9
  133. package/dist/form/admin/auth.js.map +0 -1
  134. package/dist/form/admin/aws.d.ts +0 -2
  135. package/dist/form/admin/aws.js +0 -13
  136. package/dist/form/admin/aws.js.map +0 -1
  137. package/dist/form/admin/github.d.ts +0 -2
  138. package/dist/form/admin/github.js +0 -15
  139. package/dist/form/admin/github.js.map +0 -1
  140. package/dist/form/admin/google.d.ts +0 -2
  141. package/dist/form/admin/google.js +0 -13
  142. package/dist/form/admin/google.js.map +0 -1
  143. package/dist/form/admin/mail.d.ts +0 -2
  144. package/dist/form/admin/mail.js +0 -13
  145. package/dist/form/admin/mail.js.map +0 -1
  146. package/dist/form/admin/sec.d.ts +0 -2
  147. package/dist/form/admin/sec.js +0 -10
  148. package/dist/form/admin/sec.js.map +0 -1
  149. package/dist/form/admin/slackSetting.d.ts +0 -2
  150. package/dist/form/admin/slackSetting.js +0 -13
  151. package/dist/form/admin/slackSetting.js.map +0 -1
  152. package/dist/form/admin/userEdit.d.ts +0 -2
  153. package/dist/form/admin/userEdit.js +0 -9
  154. package/dist/form/admin/userEdit.js.map +0 -1
  155. package/dist/form/admin/userInvite.d.ts +0 -2
  156. package/dist/form/admin/userInvite.js +0 -9
  157. package/dist/form/admin/userInvite.js.map +0 -1
  158. package/dist/form/comment.d.ts +0 -2
  159. package/dist/form/comment.js +0 -9
  160. package/dist/form/comment.js.map +0 -1
  161. package/dist/form/index.d.ts +0 -25
  162. package/dist/form/index.js +0 -48
  163. package/dist/form/index.js.map +0 -1
  164. package/dist/form/invited.d.ts +0 -2
  165. package/dist/form/invited.js +0 -13
  166. package/dist/form/invited.js.map +0 -1
  167. package/dist/form/login.d.ts +0 -2
  168. package/dist/form/login.js +0 -11
  169. package/dist/form/login.js.map +0 -1
  170. package/dist/form/me/apiToken.d.ts +0 -2
  171. package/dist/form/me/apiToken.js +0 -9
  172. package/dist/form/me/apiToken.js.map +0 -1
  173. package/dist/form/me/password.d.ts +0 -2
  174. package/dist/form/me/password.js +0 -11
  175. package/dist/form/me/password.js.map +0 -1
  176. package/dist/form/me/user.d.ts +0 -2
  177. package/dist/form/me/user.js +0 -9
  178. package/dist/form/me/user.js.map +0 -1
  179. package/dist/form/register.d.ts +0 -2
  180. package/dist/form/register.js +0 -13
  181. package/dist/form/register.js.map +0 -1
  182. package/dist/form/revision.d.ts +0 -2
  183. package/dist/form/revision.js +0 -13
  184. package/dist/form/revision.js.map +0 -1
  185. package/dist/hono/handlers/admin/share.d.ts +0 -106
  186. package/dist/hono/handlers/admin/share.js +0 -55
  187. package/dist/hono/handlers/admin/share.js.map +0 -1
  188. package/dist/middlewares/accessTokenParser.d.ts +0 -4
  189. package/dist/middlewares/accessTokenParser.js +0 -29
  190. package/dist/middlewares/accessTokenParser.js.map +0 -1
  191. package/dist/middlewares/adminRequired.d.ts +0 -10
  192. package/dist/middlewares/adminRequired.js +0 -35
  193. package/dist/middlewares/adminRequired.js.map +0 -1
  194. package/dist/middlewares/applicationInstalled.d.ts +0 -3
  195. package/dist/middlewares/applicationInstalled.js +0 -20
  196. package/dist/middlewares/applicationInstalled.js.map +0 -1
  197. package/dist/middlewares/applicationNotInstalled.d.ts +0 -3
  198. package/dist/middlewares/applicationNotInstalled.js +0 -13
  199. package/dist/middlewares/applicationNotInstalled.js.map +0 -1
  200. package/dist/middlewares/basicAuth.d.ts +0 -4
  201. package/dist/middlewares/basicAuth.js +0 -23
  202. package/dist/middlewares/basicAuth.js.map +0 -1
  203. package/dist/middlewares/csrfVerify.d.ts +0 -4
  204. package/dist/middlewares/csrfVerify.js +0 -24
  205. package/dist/middlewares/csrfVerify.js.map +0 -1
  206. package/dist/middlewares/encodeSpace.d.ts +0 -3
  207. package/dist/middlewares/encodeSpace.js +0 -14
  208. package/dist/middlewares/encodeSpace.js.map +0 -1
  209. package/dist/middlewares/fileAccessRightOrLoginRequired.d.ts +0 -4
  210. package/dist/middlewares/fileAccessRightOrLoginRequired.js +0 -29
  211. package/dist/middlewares/fileAccessRightOrLoginRequired.js.map +0 -1
  212. package/dist/middlewares/index.d.ts +0 -16
  213. package/dist/middlewares/index.js +0 -30
  214. package/dist/middlewares/index.js.map +0 -1
  215. package/dist/middlewares/jwtAdminRequired.d.ts +0 -8
  216. package/dist/middlewares/jwtAdminRequired.js +0 -35
  217. package/dist/middlewares/jwtAdminRequired.js.map +0 -1
  218. package/dist/middlewares/jwtAuth.d.ts +0 -4
  219. package/dist/middlewares/jwtAuth.js +0 -104
  220. package/dist/middlewares/jwtAuth.js.map +0 -1
  221. package/dist/middlewares/loginChecker.d.ts +0 -4
  222. package/dist/middlewares/loginChecker.js +0 -32
  223. package/dist/middlewares/loginChecker.js.map +0 -1
  224. package/dist/middlewares/loginRequired.d.ts +0 -4
  225. package/dist/middlewares/loginRequired.js +0 -88
  226. package/dist/middlewares/loginRequired.js.map +0 -1
  227. package/dist/routes/admin.d.ts +0 -4
  228. package/dist/routes/admin.js +0 -17
  229. package/dist/routes/admin.js.map +0 -1
  230. package/dist/routes/api/admin.d.ts +0 -4
  231. package/dist/routes/api/admin.js +0 -37
  232. package/dist/routes/api/admin.js.map +0 -1
  233. package/dist/routes/api/attachment.d.ts +0 -4
  234. package/dist/routes/api/attachment.js +0 -19
  235. package/dist/routes/api/attachment.js.map +0 -1
  236. package/dist/routes/api/bookmark.d.ts +0 -4
  237. package/dist/routes/api/bookmark.js +0 -15
  238. package/dist/routes/api/bookmark.js.map +0 -1
  239. package/dist/routes/api/comment.d.ts +0 -4
  240. package/dist/routes/api/comment.js +0 -14
  241. package/dist/routes/api/comment.js.map +0 -1
  242. package/dist/routes/api/index.d.ts +0 -4
  243. package/dist/routes/api/index.js +0 -36
  244. package/dist/routes/api/index.js.map +0 -1
  245. package/dist/routes/api/like.d.ts +0 -4
  246. package/dist/routes/api/like.js +0 -13
  247. package/dist/routes/api/like.js.map +0 -1
  248. package/dist/routes/api/notification.d.ts +0 -4
  249. package/dist/routes/api/notification.js +0 -15
  250. package/dist/routes/api/notification.js.map +0 -1
  251. package/dist/routes/api/page.d.ts +0 -4
  252. package/dist/routes/api/page.js +0 -24
  253. package/dist/routes/api/page.js.map +0 -1
  254. package/dist/routes/api/revision.d.ts +0 -4
  255. package/dist/routes/api/revision.js +0 -14
  256. package/dist/routes/api/revision.js.map +0 -1
  257. package/dist/routes/api/share.d.ts +0 -4
  258. package/dist/routes/api/share.js +0 -16
  259. package/dist/routes/api/share.js.map +0 -1
  260. package/dist/routes/api/version.d.ts +0 -4
  261. package/dist/routes/api/version.js +0 -10
  262. package/dist/routes/api/version.js.map +0 -1
  263. package/dist/routes/index.d.ts +0 -4
  264. package/dist/routes/index.js +0 -71
  265. package/dist/routes/index.js.map +0 -1
  266. package/dist/routes/login.d.ts +0 -4
  267. package/dist/routes/login.js +0 -18
  268. package/dist/routes/login.js.map +0 -1
  269. package/dist/routes/me.d.ts +0 -4
  270. package/dist/routes/me.js +0 -24
  271. package/dist/routes/me.js.map +0 -1
  272. package/dist/routes/ts-rest/admin/app.d.ts +0 -4
  273. package/dist/routes/ts-rest/admin/app.js +0 -67
  274. package/dist/routes/ts-rest/admin/app.js.map +0 -1
  275. package/dist/routes/ts-rest/admin/auth.d.ts +0 -4
  276. package/dist/routes/ts-rest/admin/auth.js +0 -95
  277. package/dist/routes/ts-rest/admin/auth.js.map +0 -1
  278. package/dist/routes/ts-rest/admin/index.d.ts +0 -10
  279. package/dist/routes/ts-rest/admin/index.js +0 -35
  280. package/dist/routes/ts-rest/admin/index.js.map +0 -1
  281. package/dist/routes/ts-rest/admin/mail.d.ts +0 -4
  282. package/dist/routes/ts-rest/admin/mail.js +0 -156
  283. package/dist/routes/ts-rest/admin/mail.js.map +0 -1
  284. package/dist/routes/ts-rest/admin/plugins.d.ts +0 -4
  285. package/dist/routes/ts-rest/admin/plugins.js +0 -317
  286. package/dist/routes/ts-rest/admin/plugins.js.map +0 -1
  287. package/dist/routes/ts-rest/admin/search.d.ts +0 -4
  288. package/dist/routes/ts-rest/admin/search.js +0 -67
  289. package/dist/routes/ts-rest/admin/search.js.map +0 -1
  290. package/dist/routes/ts-rest/admin/security.d.ts +0 -4
  291. package/dist/routes/ts-rest/admin/security.js +0 -114
  292. package/dist/routes/ts-rest/admin/security.js.map +0 -1
  293. package/dist/routes/ts-rest/admin/share.d.ts +0 -4
  294. package/dist/routes/ts-rest/admin/share.js +0 -69
  295. package/dist/routes/ts-rest/admin/share.js.map +0 -1
  296. package/dist/routes/ts-rest/admin/storage.d.ts +0 -4
  297. package/dist/routes/ts-rest/admin/storage.js +0 -59
  298. package/dist/routes/ts-rest/admin/storage.js.map +0 -1
  299. package/dist/routes/ts-rest/admin/users.d.ts +0 -4
  300. package/dist/routes/ts-rest/admin/users.js +0 -215
  301. package/dist/routes/ts-rest/admin/users.js.map +0 -1
  302. package/dist/routes/ts-rest/adminCrypto.d.ts +0 -4
  303. package/dist/routes/ts-rest/adminCrypto.js +0 -111
  304. package/dist/routes/ts-rest/adminCrypto.js.map +0 -1
  305. package/dist/routes/ts-rest/app.d.ts +0 -4
  306. package/dist/routes/ts-rest/app.js +0 -23
  307. package/dist/routes/ts-rest/app.js.map +0 -1
  308. package/dist/routes/ts-rest/attachment.d.ts +0 -4
  309. package/dist/routes/ts-rest/attachment.js +0 -830
  310. package/dist/routes/ts-rest/attachment.js.map +0 -1
  311. package/dist/routes/ts-rest/auth.d.ts +0 -4
  312. package/dist/routes/ts-rest/auth.js +0 -70
  313. package/dist/routes/ts-rest/auth.js.map +0 -1
  314. package/dist/routes/ts-rest/autocomplete.d.ts +0 -30
  315. package/dist/routes/ts-rest/autocomplete.js +0 -189
  316. package/dist/routes/ts-rest/autocomplete.js.map +0 -1
  317. package/dist/routes/ts-rest/backlink.d.ts +0 -4
  318. package/dist/routes/ts-rest/backlink.js +0 -106
  319. package/dist/routes/ts-rest/backlink.js.map +0 -1
  320. package/dist/routes/ts-rest/bookmark.d.ts +0 -4
  321. package/dist/routes/ts-rest/bookmark.js +0 -189
  322. package/dist/routes/ts-rest/bookmark.js.map +0 -1
  323. package/dist/routes/ts-rest/comment.d.ts +0 -4
  324. package/dist/routes/ts-rest/comment.js +0 -217
  325. package/dist/routes/ts-rest/comment.js.map +0 -1
  326. package/dist/routes/ts-rest/draft.d.ts +0 -22
  327. package/dist/routes/ts-rest/draft.js +0 -200
  328. package/dist/routes/ts-rest/draft.js.map +0 -1
  329. package/dist/routes/ts-rest/index.d.ts +0 -4
  330. package/dist/routes/ts-rest/index.js +0 -103
  331. package/dist/routes/ts-rest/index.js.map +0 -1
  332. package/dist/routes/ts-rest/installer.d.ts +0 -4
  333. package/dist/routes/ts-rest/installer.js +0 -77
  334. package/dist/routes/ts-rest/installer.js.map +0 -1
  335. package/dist/routes/ts-rest/me.d.ts +0 -4
  336. package/dist/routes/ts-rest/me.js +0 -410
  337. package/dist/routes/ts-rest/me.js.map +0 -1
  338. package/dist/routes/ts-rest/notification.d.ts +0 -4
  339. package/dist/routes/ts-rest/notification.js +0 -241
  340. package/dist/routes/ts-rest/notification.js.map +0 -1
  341. package/dist/routes/ts-rest/page-collab.d.ts +0 -29
  342. package/dist/routes/ts-rest/page-collab.js +0 -90
  343. package/dist/routes/ts-rest/page-collab.js.map +0 -1
  344. package/dist/routes/ts-rest/page-preview.d.ts +0 -26
  345. package/dist/routes/ts-rest/page-preview.js +0 -80
  346. package/dist/routes/ts-rest/page-preview.js.map +0 -1
  347. package/dist/routes/ts-rest/page.d.ts +0 -4
  348. package/dist/routes/ts-rest/page.js +0 -676
  349. package/dist/routes/ts-rest/page.js.map +0 -1
  350. package/dist/routes/ts-rest/presence.d.ts +0 -30
  351. package/dist/routes/ts-rest/presence.js +0 -155
  352. package/dist/routes/ts-rest/presence.js.map +0 -1
  353. package/dist/routes/ts-rest/revision.d.ts +0 -4
  354. package/dist/routes/ts-rest/revision.js +0 -240
  355. package/dist/routes/ts-rest/revision.js.map +0 -1
  356. package/dist/routes/ts-rest/search.d.ts +0 -4
  357. package/dist/routes/ts-rest/search.js +0 -121
  358. package/dist/routes/ts-rest/search.js.map +0 -1
  359. package/dist/routes/ts-rest/tokenAuth.d.ts +0 -4
  360. package/dist/routes/ts-rest/tokenAuth.js +0 -94
  361. package/dist/routes/ts-rest/tokenAuth.js.map +0 -1
  362. package/dist/routes/ts-rest/user.d.ts +0 -4
  363. package/dist/routes/ts-rest/user.js +0 -307
  364. package/dist/routes/ts-rest/user.js.map +0 -1
  365. package/dist/types/express.d.ts +0 -34
  366. package/dist/types/express.js +0 -50
  367. package/dist/types/express.js.map +0 -1
  368. package/dist/util/accessTokenParser.d.ts +0 -1
  369. package/dist/util/accessTokenParser.js +0 -34
  370. package/dist/util/accessTokenParser.js.map +0 -1
  371. package/dist/util/apiPaginate.d.ts +0 -11
  372. package/dist/util/apiPaginate.js +0 -33
  373. package/dist/util/apiPaginate.js.map +0 -1
  374. package/dist/util/apiResponse.d.ts +0 -9
  375. package/dist/util/apiResponse.js +0 -23
  376. package/dist/util/apiResponse.js.map +0 -1
  377. package/dist/util/auth.d.ts +0 -11
  378. package/dist/util/auth.js +0 -48
  379. package/dist/util/auth.js.map +0 -1
  380. package/dist/util/aws-config-migration.d.ts +0 -11
  381. package/dist/util/aws-config-migration.js +0 -68
  382. package/dist/util/aws-config-migration.js.map +0 -1
  383. package/dist/util/formUtil.d.ts +0 -2
  384. package/dist/util/formUtil.js +0 -15
  385. package/dist/util/formUtil.js.map +0 -1
  386. package/dist/util/githubAuth.d.ts +0 -2
  387. package/dist/util/githubAuth.js +0 -82
  388. package/dist/util/githubAuth.js.map +0 -1
  389. package/dist/util/googleAuth.d.ts +0 -2
  390. package/dist/util/googleAuth.js +0 -85
  391. package/dist/util/googleAuth.js.map +0 -1
  392. package/dist/util/mailer.d.ts +0 -7
  393. package/dist/util/mailer.js +0 -98
  394. package/dist/util/mailer.js.map +0 -1
  395. package/dist/util/page-status-migration.d.ts +0 -23
  396. package/dist/util/page-status-migration.js +0 -48
  397. package/dist/util/page-status-migration.js.map +0 -1
  398. package/dist/util/ssr.d.ts +0 -3
  399. package/dist/util/ssr.js +0 -9
  400. package/dist/util/ssr.js.map +0 -1
  401. package/dist/util/view.d.ts +0 -10
  402. package/dist/util/view.js +0 -99
  403. package/dist/util/view.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../../src/routes/ts-rest/page.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import Crowi from '../../crowi';
2
- import { Express } from 'express';
3
- /**
4
- * GET /api/v2/pages/:id/presence-token (RFC-0005 Phase 1)
5
- *
6
- * Mints the short-lived JWT a page *viewer* carries on the
7
- * `/presence/:pageId` WebSocket handshake. The presence handler
8
- * verifies this token (signature + pageId match) and re-checks read
9
- * permission before registering the viewer in the Redis viewer hash.
10
- *
11
- * Parallels `page-collab.ts:getYjsToken` (the collab wsToken endpoint)
12
- * but issues a token signed by a *separate* issuer (`crowi-presence`)
13
- * so a leaked presence token can never be replayed against the
14
- * write-capable `/collab` channel.
15
- *
16
- * Authorisation pipeline (all gates fail-closed):
17
- * 1. `jwtAuth` — applied at the router level; we just narrow
18
- * `req.user` to `UserDocument`.
19
- * 2. `loadGrantedPage` — validates the 24-char hex page id and
20
- * ensures the caller has read grant. "Not found" and "not
21
- * granted" collapse to the same 404 so page existence is never
22
- * leaked (matches every other page-scoped ts-rest endpoint).
23
- *
24
- * Note: presence is read-only viewer tracking, so — unlike the collab
25
- * wsToken route — there is no draft-author gate here. A user who can
26
- * read a draft page (its author) can also appear in its presence row;
27
- * a non-author already gets the 404 from `loadGrantedPage`.
28
- */
29
- declare const _default: (crowi: Crowi, _app: Express) => import("express-serve-static-core").Router;
30
- export default _default;
@@ -1,155 +0,0 @@
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 express_1 = require("@ts-rest/express");
7
- const api_contract_1 = require("@crowi/api-contract");
8
- const express_2 = require("express");
9
- const ts_rest_helpers_1 = require("../../util/ts-rest-helpers");
10
- const presence_token_1 = require("../../util/presence-token");
11
- const activityDefine_1 = __importDefault(require("../../util/activityDefine"));
12
- const debug_1 = __importDefault(require("debug"));
13
- const debug = (0, debug_1.default)('crowi:routes:ts-rest:presence');
14
- /**
15
- * GET /api/v2/pages/:id/presence-token (RFC-0005 Phase 1)
16
- *
17
- * Mints the short-lived JWT a page *viewer* carries on the
18
- * `/presence/:pageId` WebSocket handshake. The presence handler
19
- * verifies this token (signature + pageId match) and re-checks read
20
- * permission before registering the viewer in the Redis viewer hash.
21
- *
22
- * Parallels `page-collab.ts:getYjsToken` (the collab wsToken endpoint)
23
- * but issues a token signed by a *separate* issuer (`crowi-presence`)
24
- * so a leaked presence token can never be replayed against the
25
- * write-capable `/collab` channel.
26
- *
27
- * Authorisation pipeline (all gates fail-closed):
28
- * 1. `jwtAuth` — applied at the router level; we just narrow
29
- * `req.user` to `UserDocument`.
30
- * 2. `loadGrantedPage` — validates the 24-char hex page id and
31
- * ensures the caller has read grant. "Not found" and "not
32
- * granted" collapse to the same 404 so page existence is never
33
- * leaked (matches every other page-scoped ts-rest endpoint).
34
- *
35
- * Note: presence is read-only viewer tracking, so — unlike the collab
36
- * wsToken route — there is no draft-author gate here. A user who can
37
- * read a draft page (its author) can also appear in its presence row;
38
- * a non-author already gets the 404 from `loadGrantedPage`.
39
- */
40
- exports.default = (crowi, _app) => {
41
- const s = (0, express_1.initServer)();
42
- const router = (0, express_2.Router)();
43
- // Resolve / sign helper once per server (closure-captures the secret).
44
- const presenceTokenUtil = (0, presence_token_1.createPresenceTokenUtil)();
45
- const presenceRouter = s.router(api_contract_1.apiContract.presence, {
46
- getPresenceToken: async ({ params, req }) => {
47
- const user = req.user;
48
- const { id: pageId } = params;
49
- const Page = crowi.model('Page');
50
- debug('getPresenceToken called', { pageId, userId: user._id.toString() });
51
- const loaded = await (0, ts_rest_helpers_1.loadGrantedPage)(Page, pageId, user);
52
- if ('error' in loaded)
53
- return loaded.error;
54
- try {
55
- const userId = user._id.toString();
56
- const { token, expiresAt } = presenceTokenUtil.signPresenceToken({ userId, pageId });
57
- return {
58
- status: 200,
59
- body: {
60
- token,
61
- pageId,
62
- selfUserId: userId,
63
- expiresAt: expiresAt.toISOString(),
64
- },
65
- };
66
- }
67
- catch (err) {
68
- debug('presence token signing failed:', err.message);
69
- return ts_rest_helpers_1.internalServerErrorResponse;
70
- }
71
- },
72
- /**
73
- * GET /api/v2/pages/:id/likers
74
- *
75
- * The liker list is sourced from `page.liker` (the authoritative
76
- * ObjectId set). `likedAt` is a best-effort enrichment: we look up
77
- * the `ACTION_LIKE` Activity rows for the page in one query and
78
- * join them in. Entries without an Activity row keep `likedAt:
79
- * null` (e.g. likes recorded before activity logging existed).
80
- *
81
- * Sorted newest-liked first; entries with an unknown `likedAt`
82
- * sort last so the list order stays stable.
83
- */
84
- getLikers: async ({ params, query, req }) => {
85
- const user = req.user;
86
- const { id: pageId } = params;
87
- const { limit } = query;
88
- const Page = crowi.model('Page');
89
- const User = crowi.model('User');
90
- const Activity = crowi.model('Activity');
91
- debug('getLikers called', { pageId, limit, userId: user._id.toString() });
92
- const loaded = await (0, ts_rest_helpers_1.loadGrantedPage)(Page, pageId, user);
93
- if ('error' in loaded)
94
- return loaded.error;
95
- try {
96
- const likerIds = (loaded.page.liker ?? []).filter((id) => id != null);
97
- const totalCount = likerIds.length;
98
- if (totalCount === 0) {
99
- return { status: 200, body: { users: [], totalCount } };
100
- }
101
- // Best-effort `likedAt` join: map userId -> most recent LIKE
102
- // activity. The two reads are independent, so run them together.
103
- const [activities, populated] = await Promise.all([
104
- Activity.find({
105
- target: loaded.page._id,
106
- targetModel: activityDefine_1.default.MODEL_PAGE,
107
- action: activityDefine_1.default.ACTION_LIKE,
108
- })
109
- .select('user createdAt')
110
- .lean(),
111
- User.findUsersByIds(likerIds),
112
- ]);
113
- const likedAtByUser = new Map();
114
- for (const activity of activities) {
115
- const uid = String(activity.user);
116
- const at = activity.createdAt;
117
- if (!at)
118
- continue;
119
- const existing = likedAtByUser.get(uid);
120
- if (!existing || at.getTime() > existing.getTime())
121
- likedAtByUser.set(uid, at);
122
- }
123
- const likers = populated.map((u) => {
124
- const likedAt = likedAtByUser.get(u._id.toString());
125
- return {
126
- id: u._id.toString(),
127
- username: u.username ?? '',
128
- displayName: u.name ?? u.username ?? '',
129
- avatarUrl: u.image ?? null,
130
- likedAt: likedAt ? likedAt.toISOString() : null,
131
- };
132
- });
133
- // Newest-liked first; unknown `likedAt` sorts last.
134
- likers.sort((a, b) => {
135
- if (a.likedAt && b.likedAt)
136
- return b.likedAt.localeCompare(a.likedAt);
137
- if (a.likedAt)
138
- return -1;
139
- if (b.likedAt)
140
- return 1;
141
- return 0;
142
- });
143
- const users = limit !== undefined ? likers.slice(0, limit) : likers;
144
- return { status: 200, body: { users, totalCount } };
145
- }
146
- catch (err) {
147
- debug('getLikers failed:', err.message);
148
- return ts_rest_helpers_1.internalServerErrorResponse;
149
- }
150
- },
151
- });
152
- (0, express_1.createExpressEndpoints)(api_contract_1.apiContract.presence, presenceRouter, router);
153
- return router;
154
- };
155
- //# sourceMappingURL=presence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"presence.js","sourceRoot":"","sources":["../../../src/routes/ts-rest/presence.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import Crowi from '../../crowi';
2
- import { Express } from 'express';
3
- declare const _default: (crowi: Crowi, _app: Express) => import("express-serve-static-core").Router;
4
- export default _default;
@@ -1,240 +0,0 @@
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 express_1 = require("@ts-rest/express");
7
- const api_contract_1 = require("@crowi/api-contract");
8
- const page_response_1 = require("../../util/page-response");
9
- const express_2 = require("express");
10
- const mongoose_1 = require("mongoose");
11
- const ts_rest_helpers_1 = require("../../util/ts-rest-helpers");
12
- const debug_1 = __importDefault(require("debug"));
13
- const debug = (0, debug_1.default)('crowi:routes:ts-rest:revision');
14
- const MAX_REVISION_IDS = 10;
15
- const invalidRequest = (message) => ({
16
- status: 400,
17
- body: { error: { code: 'INVALID_REQUEST', message } },
18
- });
19
- /**
20
- * Convert a revision document (with optionally populated author) to the
21
- * full RevisionSchema shape (body included). Sync path — for legacy
22
- * revisions missing `meta` / `renderedAst`, callers compose with
23
- * `computeRevisionMetaAsync` / `computeRevisionRenderedAstAsync` on the
24
- * side to attach the on-the-fly fallback.
25
- */
26
- const revisionToFullResponse = (revision, options = {}) => {
27
- const obj = revision.toObject();
28
- return {
29
- _id: revision._id.toString(),
30
- path: revision.path,
31
- body: revision.body,
32
- format: revision.format || 'markdown',
33
- author: (0, ts_rest_helpers_1.isPopulatedUser)(obj.author) ? (0, ts_rest_helpers_1.toPageUser)(obj.author) : null,
34
- createdAt: (0, ts_rest_helpers_1.toISOStringOrNull)(revision.createdAt) ?? new Date(0).toISOString(),
35
- meta: (0, page_response_1.resolveRevisionMeta)(obj.meta, options.withMeta),
36
- renderedAst: options.withRenderedAst ? obj.renderedAst : undefined,
37
- };
38
- };
39
- /**
40
- * Convert to the lightweight RevisionMetaSchema shape (no body, no format).
41
- *
42
- * Phase 8 (RFC-0003) addition: when the underlying Revision has the
43
- * collab-flow `savedBy` / `contributors` populated (i.e. it was
44
- * created by a `crowi:save` checkpoint), surface both in the meta
45
- * response so the page-history view can render
46
- * "Saved by Alice (with Bob, Carol)"
47
- *
48
- * v1.x revisions (and any Revision predating RFC-0003) are left with
49
- * `savedBy: undefined` / `contributors: undefined` so the consumer
50
- * falls back to the existing `author`-only display — no schema break.
51
- */
52
- const revisionToMetaResponse = (revision) => {
53
- const obj = revision.toObject();
54
- const savedBy = (0, ts_rest_helpers_1.isPopulatedUser)(obj.savedBy) ? (0, ts_rest_helpers_1.toPageUser)(obj.savedBy) : undefined;
55
- const contributors = Array.isArray(obj.contributors) ? obj.contributors.filter(ts_rest_helpers_1.isPopulatedUser).map(ts_rest_helpers_1.toPageUser) : undefined;
56
- return {
57
- _id: revision._id.toString(),
58
- path: revision.path,
59
- author: (0, ts_rest_helpers_1.isPopulatedUser)(obj.author) ? (0, ts_rest_helpers_1.toPageUser)(obj.author) : null,
60
- savedBy,
61
- // Omit the field entirely (not `[]`) when undefined so v1.x
62
- // responses match the pre-RFC-0003 shape byte-for-byte; the
63
- // optional `.contributors` on `RevisionMetaSchema` covers both
64
- // shapes.
65
- ...(contributors !== undefined ? { contributors } : {}),
66
- createdAt: (0, ts_rest_helpers_1.toISOStringOrNull)(revision.createdAt) ?? new Date(0).toISOString(),
67
- };
68
- };
69
- exports.default = (crowi, _app) => {
70
- const s = (0, express_1.initServer)();
71
- const router = (0, express_2.Router)();
72
- const Page = crowi.model('Page');
73
- const Revision = crowi.model('Revision');
74
- const revisionRouter = s.router(api_contract_1.apiContract.revision, {
75
- /**
76
- * GET /api/v2/pages/:page_id/revisions
77
- * List the revisions of a page (meta only, newest first).
78
- * - Grant is verified via Page.findPageByIdAndGrantedUser; not-granted
79
- * surfaces as 404 to avoid leaking page existence.
80
- */
81
- listRevisions: async ({ params, query, req }) => {
82
- const user = req.user;
83
- const { page_id } = params;
84
- const { limit, offset } = query;
85
- debug('listRevisions called with:', { page_id, limit, offset, userId: user._id });
86
- if (!(0, ts_rest_helpers_1.isValidObjectId)(page_id)) {
87
- return invalidRequest('Invalid page_id');
88
- }
89
- try {
90
- const page = (await Page.findPageByIdAndGrantedUser(page_id, user));
91
- if (!page) {
92
- return ts_rest_helpers_1.pageNotFoundResponse;
93
- }
94
- // findRevisionIdList returns _id, author, createdAt only and sorts desc.
95
- // We populate author for response shaping; path is filled from the page
96
- // because findRevisionIdList omits it (it's redundant for a single page).
97
- //
98
- // Phase 8 (RFC-0003): also pull savedBy + contributors so the
99
- // history view can render checkpoint authors + the awareness-
100
- // confirmed peer list. Populating in one round-trip (chained
101
- // `.populate()` calls collapse to a single `$lookup`) keeps the
102
- // list endpoint at O(1) DB queries irrespective of contributor
103
- // count.
104
- const allRevisions = await Revision.find({ path: page.path })
105
- .select('_id path author savedBy contributors createdAt')
106
- .sort({ createdAt: -1 })
107
- .skip(offset)
108
- .limit(limit + 1) // fetch +1 to know if there's a next page
109
- .populate('author')
110
- .populate('savedBy')
111
- .populate('contributors')
112
- .exec();
113
- const hasNext = allRevisions.length > limit;
114
- const sliced = hasNext ? allRevisions.slice(0, limit) : allRevisions;
115
- return {
116
- status: 200,
117
- body: {
118
- revisions: sliced.map(revisionToMetaResponse),
119
- pager: {
120
- prev: offset > 0 ? Math.max(0, offset - limit) : null,
121
- next: hasNext ? offset + limit : null,
122
- offset,
123
- },
124
- },
125
- };
126
- }
127
- catch (err) {
128
- const error = err;
129
- debug('Error listing revisions:', error.message);
130
- if (error.message === 'Page not found' || error.message === 'Page is not granted for the user') {
131
- return ts_rest_helpers_1.pageNotFoundResponse;
132
- }
133
- return invalidRequest(error.message || 'Failed to list revisions');
134
- }
135
- },
136
- /**
137
- * GET /api/v2/pages/revisions/:id
138
- * Fetch a single revision (with body) by id.
139
- * - Verifies grant via the revision's path: legacy /_api/revisions.get
140
- * skipped this check, which we strengthen here.
141
- */
142
- getRevision: async ({ params, req }) => {
143
- const user = req.user;
144
- const { id } = params;
145
- debug('getRevision called with:', { id, userId: user._id });
146
- if (!(0, ts_rest_helpers_1.isValidObjectId)(id)) {
147
- return invalidRequest('Invalid revision id');
148
- }
149
- try {
150
- const revision = (await Revision.findRevision(new mongoose_1.Types.ObjectId(id)));
151
- if (!revision) {
152
- return ts_rest_helpers_1.pageNotFoundResponse;
153
- }
154
- // Verify grant via the page that owns this revision's path. Hide
155
- // existence from non-granted callers (404 not 403).
156
- const page = await Page.findOne({ path: revision.path });
157
- if (!page) {
158
- return ts_rest_helpers_1.pageNotFoundResponse;
159
- }
160
- if (!page.isGrantedFor(user)) {
161
- return ts_rest_helpers_1.pageNotFoundResponse;
162
- }
163
- const response = revisionToFullResponse(revision, { withMeta: false, withRenderedAst: false });
164
- // On-the-fly fallback for legacy revisions: one pipeline run
165
- // produces both meta + renderedAst, so use the combined helper
166
- // to avoid running parse+transform+shiki twice.
167
- const obj = revision.toObject();
168
- const { meta, renderedAst } = await (0, page_response_1.computeRevisionRenderArtifactsAsync)(crowi, obj.meta, obj.renderedAst, revision.body, obj.rendererVersion, page._id?.toString());
169
- response.meta = meta;
170
- response.renderedAst = renderedAst;
171
- return {
172
- status: 200,
173
- body: { revision: response },
174
- };
175
- }
176
- catch (err) {
177
- const error = err;
178
- debug('Error fetching revision:', error.message);
179
- return invalidRequest(error.message || 'Failed to fetch revision');
180
- }
181
- },
182
- /**
183
- * GET /api/v2/pages/revisions?ids=a,b,...
184
- * Fetch multiple revisions in one call (intended for diff-viewer pairs).
185
- * - All requested revisions must share the same path so that a single
186
- * grant check is sufficient. Mixed paths are rejected as 400 to
187
- * simplify authorization semantics.
188
- */
189
- getRevisions: async ({ query, req }) => {
190
- const user = req.user;
191
- const { ids } = query;
192
- debug('getRevisions called with:', { ids, userId: user._id });
193
- const idList = ids
194
- .split(',')
195
- .map((s) => s.trim())
196
- .filter((s) => s.length > 0);
197
- if (idList.length === 0) {
198
- return invalidRequest('ids is required');
199
- }
200
- if (idList.length > MAX_REVISION_IDS) {
201
- return invalidRequest(`ids must contain at most ${MAX_REVISION_IDS} entries`);
202
- }
203
- if (!idList.every(ts_rest_helpers_1.isValidObjectId)) {
204
- return invalidRequest('ids contains an invalid revision id');
205
- }
206
- try {
207
- const objectIds = idList.map((id) => new mongoose_1.Types.ObjectId(id));
208
- const revisions = (await Revision.findRevisions(objectIds));
209
- if (revisions.length === 0) {
210
- return ts_rest_helpers_1.pageNotFoundResponse;
211
- }
212
- // All revisions must share the same path (mixed paths are rejected).
213
- const paths = new Set(revisions.map((r) => r.path));
214
- if (paths.size > 1) {
215
- return invalidRequest('All revisions must share the same path');
216
- }
217
- const sharedPath = revisions[0].path;
218
- const page = await Page.findOne({ path: sharedPath });
219
- if (!page) {
220
- return ts_rest_helpers_1.pageNotFoundResponse;
221
- }
222
- if (!page.isGrantedFor(user)) {
223
- return ts_rest_helpers_1.pageNotFoundResponse;
224
- }
225
- return {
226
- status: 200,
227
- body: { revisions: revisions.map((r) => revisionToFullResponse(r)) },
228
- };
229
- }
230
- catch (err) {
231
- const error = err;
232
- debug('Error fetching revisions:', error.message);
233
- return invalidRequest(error.message || 'Failed to fetch revisions');
234
- }
235
- },
236
- });
237
- (0, express_1.createExpressEndpoints)(api_contract_1.apiContract.revision, revisionRouter, router);
238
- return router;
239
- };
240
- //# sourceMappingURL=revision.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"revision.js","sourceRoot":"","sources":["../../../src/routes/ts-rest/revision.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import Crowi from '../../crowi';
2
- import { Express } from 'express';
3
- declare const _default: (crowi: Crowi, _app: Express) => import("express-serve-static-core").Router;
4
- export default _default;
@@ -1,121 +0,0 @@
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 express_1 = require("@ts-rest/express");
7
- const api_contract_1 = require("@crowi/api-contract");
8
- const express_2 = require("express");
9
- const mongoose_1 = require("mongoose");
10
- const ts_rest_helpers_1 = require("../../util/ts-rest-helpers");
11
- const page_response_1 = require("../../util/page-response");
12
- const debug_1 = __importDefault(require("debug"));
13
- const debug = (0, debug_1.default)('crowi:routes:ts-rest:search');
14
- exports.default = (crowi, _app) => {
15
- const s = (0, express_1.initServer)();
16
- const router = (0, express_2.Router)();
17
- const Page = crowi.model('Page');
18
- const Bookmark = crowi.model('Bookmark');
19
- const searchRouter = s.router(api_contract_1.apiContract.search, {
20
- searchPages: async ({ query, req }) => {
21
- const user = req.user;
22
- const { q, tree, type, page, limit } = query;
23
- debug('searchPages called with:', { q, tree, type, page, limit, userId: user._id });
24
- const search = crowi.getSearcher();
25
- if (!search) {
26
- return {
27
- status: 503,
28
- body: {
29
- error: {
30
- code: 'SERVICE_UNAVAILABLE',
31
- feature: 'search',
32
- message: 'No search driver registered. Install a @crowi/plugin-search-* package in the runner project to enable search.',
33
- },
34
- },
35
- };
36
- }
37
- const searchQuery = {
38
- q,
39
- page,
40
- limit,
41
- ...(tree ? { pathPrefix: tree } : {}),
42
- viewer: {
43
- id: user._id.toString(),
44
- username: user.username,
45
- isAdmin: user.admin === true,
46
- },
47
- ...(type ? { grants: { types: [type] } } : {}),
48
- };
49
- try {
50
- const driverResult = await search.query(searchQuery);
51
- const { total, hits, took } = driverResult;
52
- // Fast path: nothing to populate. Skipping the Mongo round-trip
53
- // matters for "no hits" queries which are the common case for
54
- // typo'd / mid-typing search input.
55
- if (hits.length === 0) {
56
- return {
57
- status: 200,
58
- body: {
59
- meta: {
60
- ...(took !== undefined ? { took } : {}),
61
- total,
62
- results: 0,
63
- },
64
- data: [],
65
- },
66
- };
67
- }
68
- const objectIds = hits.map((hit) => new mongoose_1.Types.ObjectId(hit.id));
69
- // Run the two Mongo joins in parallel: Page populate (creator +
70
- // revision.author) and bulk bookmark counts. Both are bounded by
71
- // `limit` (max 100) so the parallel work is small.
72
- const [pages, bookmarkCounts] = await Promise.all([
73
- Page.findListByPageIds(objectIds, { limit: hits.length }),
74
- Bookmark.getCountsByPageIds(objectIds),
75
- ]);
76
- const pageById = new Map();
77
- for (const p of pages) {
78
- pageById.set(p._id.toString(), p);
79
- }
80
- const data = [];
81
- for (const hit of hits) {
82
- const populated = pageById.get(hit.id);
83
- // Drop hits whose Page document is missing (e.g. concurrently
84
- // deleted between the index hit and the populate query). The
85
- // driver should also have filtered by grant, but a stale
86
- // index can outrun the filter — keeping `data` consistent
87
- // with `meta.results` lets clients trust the count.
88
- if (!populated)
89
- continue;
90
- data.push({
91
- pageId: hit.id,
92
- path: hit.path,
93
- score: hit.score,
94
- snippet: hit.snippet,
95
- bookmarkCount: bookmarkCounts.get(hit.id) ?? 0,
96
- page: (0, page_response_1.pageToResponse)(populated),
97
- });
98
- }
99
- return {
100
- status: 200,
101
- body: {
102
- meta: {
103
- ...(took !== undefined ? { took } : {}),
104
- total,
105
- results: data.length,
106
- },
107
- data,
108
- },
109
- };
110
- }
111
- catch (err) {
112
- const error = err;
113
- debug('Search request failed:', error.message);
114
- return ts_rest_helpers_1.internalServerErrorResponse;
115
- }
116
- },
117
- });
118
- (0, express_1.createExpressEndpoints)(api_contract_1.apiContract.search, searchRouter, router);
119
- return router;
120
- };
121
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/routes/ts-rest/search.ts"],"names":[],"mappings":"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"}