@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,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeUrlInlineExpandDispatch = void 0;
4
+ const cache_1 = require("../cache");
5
+ const registry_1 = require("../registry");
6
+ const _mdast_walk_1 = require("./_mdast-walk");
7
+ /**
8
+ * Phase 4 plugin-dispatch transform — async post-processor that finds
9
+ * bare URLs in paragraph-level content and, for each registered
10
+ * `UrlInlineExpansionRule`, tries to expand them inline.
11
+ *
12
+ * Bare URL identification: GFM autolink (`https://example.com`) is
13
+ * parsed by remark-gfm into a `link` node whose single text child has
14
+ * the same URL as the `link.url`. That shape — a link whose href ===
15
+ * its visible label — is what this transform targets. Inline-link
16
+ * targets with a different label (`[label](url)`) are NOT expanded
17
+ * (the author chose a label and we respect it).
18
+ *
19
+ * Expansion order: registered expanders are tried in registration
20
+ * order; the first `'replaced'` wins. All `'unchanged'` means no
21
+ * change.
22
+ *
23
+ * The expansion itself is routed through `cachedRender` so SWR + size
24
+ * limits + error caching all apply uniformly. We wrap each
25
+ * `UrlInlineExpansionRule` in an ephemeral `EmbedRenderer` shape so
26
+ * the same code path handles both `@[tag](url)` and bare-URL embeds.
27
+ */
28
+ const URL_EXPAND_PSEUDO_TAG = '__url-inline-expand__';
29
+ const makeUrlInlineExpandDispatch = (registry, ctx, deps) => async (tree) => {
30
+ const expanders = registry.getUrlInlineExpanders();
31
+ if (expanders.length === 0)
32
+ return;
33
+ const candidates = collectAutolinks(tree);
34
+ if (candidates.length === 0)
35
+ return;
36
+ await Promise.all(candidates.map(async (candidate) => {
37
+ for (let idx = 0; idx < expanders.length; idx++) {
38
+ const { plugin, rule } = expanders[idx];
39
+ if (!matchesRule(rule, candidate.url))
40
+ continue;
41
+ const adaptor = ruleAsRenderer(rule);
42
+ const scopedCtx = {
43
+ ...ctx,
44
+ cache: (0, cache_1.scopeForPlugin)(deps.cache, plugin),
45
+ auth: (0, registry_1.createAuthContextStub)(),
46
+ };
47
+ // Encode the expander index into the synthetic `tag` so two
48
+ // expanders from the same plugin (same cacheVersion + same
49
+ // pluginName) do NOT share a cache slot. Without this they
50
+ // would collide on `(pluginName, pluginCacheVersion, pageId,
51
+ // sha256({tag, url}))` and the second expander's call would
52
+ // be served from the first's cached output.
53
+ const input = {
54
+ tag: `${URL_EXPAND_PSEUDO_TAG}#${idx}`,
55
+ url: candidate.url,
56
+ pageId: deps.pageId,
57
+ };
58
+ // `cachedRender` resolves expand() through SWR + error
59
+ // cache. The returned html is empty when expand() said
60
+ // 'unchanged'; we fall through to the next expander in that
61
+ // case.
62
+ const rendered = await (0, cache_1.cachedRender)(deps.cache, plugin, adaptor, input, scopedCtx);
63
+ if (rendered.html && rendered.html.length > 0) {
64
+ candidate.replacementHtml = rendered.html;
65
+ return;
66
+ }
67
+ }
68
+ }));
69
+ for (const parent of (0, _mdast_walk_1.groupByParent)(candidates, (c) => c.linkIndex)) {
70
+ parent.parent.children = spliceLinks(parent.parent.children, parent.matches);
71
+ }
72
+ };
73
+ exports.makeUrlInlineExpandDispatch = makeUrlInlineExpandDispatch;
74
+ function collectAutolinks(tree) {
75
+ const out = [];
76
+ (0, _mdast_walk_1.walkPhrasingTree)(tree, (node, insideLink) => {
77
+ if (insideLink)
78
+ return;
79
+ const children = node.children;
80
+ for (let i = 0; i < children.length; i++) {
81
+ const child = children[i];
82
+ if (child.type !== 'link')
83
+ continue;
84
+ const link = child;
85
+ if (!isAutolinkShape(link))
86
+ continue;
87
+ out.push({
88
+ parent: node,
89
+ linkIndex: i,
90
+ url: link.url,
91
+ });
92
+ }
93
+ });
94
+ return out;
95
+ }
96
+ /**
97
+ * A "bare URL" link is one where the visible label equals the href.
98
+ * GFM autolink produces exactly this shape (`https://example.com` →
99
+ * `link(url='https://example.com', children=[text('https://example.com')])`).
100
+ * Inline links with custom labels (`[label](url)`) have a different
101
+ * shape and are intentionally not expanded.
102
+ */
103
+ function isAutolinkShape(link) {
104
+ if (!link.url)
105
+ return false;
106
+ const children = link.children ?? [];
107
+ if (children.length !== 1)
108
+ return false;
109
+ const only = children[0];
110
+ if (only.type !== 'text')
111
+ return false;
112
+ return only.value === link.url;
113
+ }
114
+ function matchesRule(rule, url) {
115
+ if (typeof rule.match === 'function')
116
+ return rule.match(url);
117
+ return rule.match.test(url);
118
+ }
119
+ /**
120
+ * Adapt a `UrlInlineExpansionRule` to the `EmbedRenderer` shape that
121
+ * `cachedRender` expects. The `RenderResult.html` is empty when
122
+ * `expand` returned `'unchanged'` — the caller falls through to the
123
+ * next expander in that case.
124
+ */
125
+ function ruleAsRenderer(rule) {
126
+ return {
127
+ cacheVersion: rule.cacheVersion,
128
+ async render(input, ctx) {
129
+ const result = await rule.expand(input.url, ctx);
130
+ if (result.kind === 'unchanged') {
131
+ // Use a short fresh-TTL so a registered expander re-evaluates
132
+ // soon (its match function might depend on dynamic config).
133
+ return { html: '', ttlSec: 60 };
134
+ }
135
+ // `result` is RenderResult shape (minus `kind`).
136
+ const { kind: _ignored, ...renderResult } = result;
137
+ return renderResult;
138
+ },
139
+ };
140
+ }
141
+ function spliceLinks(children, matches) {
142
+ // Replace each matched link node with an html node containing the
143
+ // expanded html. Other children pass through untouched.
144
+ const byIndex = new Map(matches.map((m) => [m.linkIndex, m]));
145
+ const out = [];
146
+ for (let i = 0; i < children.length; i++) {
147
+ const match = byIndex.get(i);
148
+ if (!match) {
149
+ out.push(children[i]);
150
+ continue;
151
+ }
152
+ const html = { type: 'html', value: match.replacementHtml ?? '' };
153
+ out.push(html);
154
+ }
155
+ return out;
156
+ }
157
+ //# sourceMappingURL=url-inline-expand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-inline-expand.js","sourceRoot":"","sources":["../../../src/renderer/core/url-inline-expand.ts"],"names":[],"mappings":";;;AAEA,oCAAgF;AAChF,0CAA+E;AAC/E,+CAAqF;AAErF;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;AAO/C,MAAM,2BAA2B,GACtC,CAAC,QAA8B,EAAE,GAAkB,EAAE,IAA2B,EAAE,EAAE,CACpF,KAAK,EAAE,IAAU,EAAiB,EAAE;IAClC,MAAM,SAAS,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEpC,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACjC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;gBAAE,SAAS;YAChD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,SAAS,GAAkB;gBAC/B,GAAG,GAAG;gBACN,KAAK,EAAE,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;gBACzC,IAAI,EAAE,IAAA,gCAAqB,GAAE;aAC9B,CAAC;YACF,4DAA4D;YAC5D,2DAA2D;YAC3D,2DAA2D;YAC3D,6DAA6D;YAC7D,4DAA4D;YAC5D,4CAA4C;YAC5C,MAAM,KAAK,GAAe;gBACxB,GAAG,EAAE,GAAG,qBAAqB,IAAI,GAAG,EAAE;gBACtC,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YACF,uDAAuD;YACvD,uDAAuD;YACvD,4DAA4D;YAC5D,QAAQ;YACR,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACnF,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,SAAS,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC1C,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,IAAA,2BAAa,EAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC,CAAC;AA/CS,QAAA,2BAA2B,+BA+CpC;AAWJ,SAAS,gBAAgB,CAAC,IAAU;IAClC,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,IAAA,8BAAgB,EAAC,IAAsB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;QAC5D,IAAI,UAAU;YAAE,OAAO;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA6B,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YACpC,MAAM,IAAI,GAAG,KAAa,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrC,GAAG,CAAC,IAAI,CAAC;gBACP,MAAM,EAAE,IAAsB;gBAC9B,SAAS,EAAE,CAAC;gBACZ,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,IAAU;IACjC,IAAI,CAAC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC;AACjC,CAAC;AAED,SAAS,WAAW,CAAC,IAA4B,EAAE,GAAW;IAC5D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAA4B;IAClD,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG;YACrB,MAAM,MAAM,GAAoB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClE,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,8DAA8D;gBAC9D,4DAA4D;gBAC5D,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAClC,CAAC;YACD,iDAAiD;YACjD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;YACnD,OAAO,YAAY,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,QAA2B,EAAE,OAA4B;IAC5E,kEAAkE;IAClE,wDAAwD;IACxD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACtB,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,IAAkC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { UnifiedTransformPlugin } from './headings';
2
+ export declare const remarkWikiLinks: UnifiedTransformPlugin;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.remarkWikiLinks = void 0;
4
+ /**
5
+ * Core renderer transform — detect `[[…]]` inside text nodes, replace
6
+ * them with link nodes (so downstream renderers see proper links),
7
+ * and push canonical entries into `metadata.wikiLinks`.
8
+ *
9
+ * Supported shapes:
10
+ * - `[[Page]]` → link to `Page`, display `Page`
11
+ * - `[[/path/to/page]]` → link to `/path/to/page`, display same
12
+ * - `[[Page|Display]]` → link to `Page`, display `Display`
13
+ * - `[[Page#section]]` → link to `Page#section`, display `Page#section`
14
+ *
15
+ * Targets that don't start with `/` are kept as-is (Phase 3 will add
16
+ * resolved-wikilink endpoint to map names to paths). The link node
17
+ * carries `data.hProperties.className = 'wikilink-broken'` for
18
+ * non-absolute targets so the web renderer can dim them. `javascript:`
19
+ * and external `http(s)://` targets are stripped to broken-link too —
20
+ * they are never valid wikilink targets.
21
+ *
22
+ * The walker only descends into text nodes; code blocks and inline
23
+ * code (`code`, `inlineCode`) are skipped, matching the spec.
24
+ */
25
+ // `[[…]]` capture. Disallow newlines and unbalanced brackets inside.
26
+ // Greedy on the body but bounded to a reasonable length so a stray
27
+ // `[[` doesn't eat the rest of the document.
28
+ const WIKILINK_RE = /\[\[([^[\]\n]{1,256})\]\]/g;
29
+ const remarkWikiLinks = (metadata) => (tree) => {
30
+ walk(tree);
31
+ function walk(node) {
32
+ if (node.type === 'code' || node.type === 'inlineCode')
33
+ return;
34
+ if (Array.isArray(node.children)) {
35
+ const replaced = transformChildren(node.children, metadata);
36
+ node.children = replaced;
37
+ for (const child of replaced)
38
+ walk(child);
39
+ }
40
+ }
41
+ };
42
+ exports.remarkWikiLinks = remarkWikiLinks;
43
+ function transformChildren(children, metadata) {
44
+ const out = [];
45
+ for (const child of children) {
46
+ if (child.type !== 'text') {
47
+ out.push(child);
48
+ continue;
49
+ }
50
+ const expanded = expandText(child, metadata);
51
+ out.push(...expanded);
52
+ }
53
+ return out;
54
+ }
55
+ function expandText(textNode, metadata) {
56
+ const value = textNode.value;
57
+ if (!value || !value.includes('[['))
58
+ return [textNode];
59
+ const out = [];
60
+ let lastIndex = 0;
61
+ WIKILINK_RE.lastIndex = 0;
62
+ for (let m; (m = WIKILINK_RE.exec(value));) {
63
+ const [matched, raw] = m;
64
+ const start = m.index;
65
+ if (start > lastIndex) {
66
+ out.push({ type: 'text', value: value.slice(lastIndex, start) });
67
+ }
68
+ const parsed = parseWikiLink(raw);
69
+ metadata.wikiLinks.push(parsed);
70
+ out.push(toLinkNode(parsed));
71
+ lastIndex = start + matched.length;
72
+ }
73
+ if (lastIndex === 0)
74
+ return [textNode];
75
+ if (lastIndex < value.length) {
76
+ out.push({ type: 'text', value: value.slice(lastIndex) });
77
+ }
78
+ return out;
79
+ }
80
+ function parseWikiLink(raw) {
81
+ const trimmed = raw.trim();
82
+ const pipeAt = trimmed.indexOf('|');
83
+ if (pipeAt >= 0) {
84
+ return {
85
+ raw,
86
+ target: trimmed.slice(0, pipeAt).trim(),
87
+ displayText: trimmed.slice(pipeAt + 1).trim(),
88
+ };
89
+ }
90
+ return { raw, target: trimmed };
91
+ }
92
+ function toLinkNode(entry) {
93
+ const display = entry.displayText ?? entry.target;
94
+ const isValid = isValidTarget(entry.target);
95
+ const data = {};
96
+ if (!isValid) {
97
+ data.hProperties = { className: 'wikilink-broken' };
98
+ }
99
+ return {
100
+ type: 'link',
101
+ url: isValid ? entry.target : '#',
102
+ title: null,
103
+ children: [{ type: 'text', value: display }],
104
+ data,
105
+ };
106
+ }
107
+ /**
108
+ * Phase 2 valid-target rule: target must start with `/` (absolute
109
+ * path). Anything else (bare name, external URL, `javascript:`) gets
110
+ * `wikilink-broken` and a `#` href so it's visually distinct without
111
+ * leaving the page.
112
+ */
113
+ function isValidTarget(target) {
114
+ if (!target)
115
+ return false;
116
+ return target.startsWith('/');
117
+ }
118
+ //# sourceMappingURL=wikilinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wikilinks.js","sourceRoot":"","sources":["../../../src/renderer/core/wikilinks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { RenderContext } from '@crowi/plugin-api';
2
+ import type Crowi from '../crowi';
3
+ import { type MongoCacheStorage } from './cache';
4
+ import { type PipelineMetadata, type PipelineResult } from './pipeline';
5
+ import { RendererRegistryImpl } from './registry';
6
+ export type { PipelineMetadata, PipelineResult, PipelineEsmDeps, ShikiHighlighter } from './pipeline';
7
+ export { RendererRegistryImpl, makeRendererScope, createAuthContextStub } from './registry';
8
+ export { serializeMdast } from './serialize';
9
+ /**
10
+ * The renderer surface attached to `Crowi.renderer` after
11
+ * `setupRenderer()` runs. The registry holds **external plugin
12
+ * additions** only — the bundled core 5 transforms are baked into
13
+ * `runPipeline` and prepended on every run. Plugins layer on top via
14
+ * `PluginManager.activate()`'s `registerRenderer` callback.
15
+ */
16
+ export interface Renderer {
17
+ registry: RendererRegistryImpl;
18
+ /**
19
+ * Plugin cache storage. Phase 4 — MongoDB-backed. Plugins receive a
20
+ * per-plugin scoped view through `RenderContext.cache`; the raw
21
+ * storage is exposed here for admin-side `invalidateAll` /
22
+ * `invalidatePlugin` calls + pageEvent listeners.
23
+ */
24
+ cache: MongoCacheStorage;
25
+ /** Run the parse + transform pipeline against `body`. */
26
+ run(body: string, options?: {
27
+ mode?: RenderContext['mode'];
28
+ pageId?: string;
29
+ }): Promise<PipelineResult>;
30
+ /** Convenience: just the metadata (used by `prepareRevision` + on-the-fly fallback). */
31
+ runMetadata(body: string, options?: {
32
+ mode?: RenderContext['mode'];
33
+ pageId?: string;
34
+ }): Promise<PipelineMetadata>;
35
+ /**
36
+ * Convenience: run the pipeline and return both metadata and the
37
+ * JSON-serialisable rendered AST. Used by `prepareRevision` (save
38
+ * path) and by `computeRevisionRenderedAstAsync` (read-path on-the-
39
+ * fly fallback for legacy revisions).
40
+ */
41
+ runRender(body: string, options?: {
42
+ mode?: RenderContext['mode'];
43
+ pageId?: string;
44
+ }): Promise<{
45
+ metadata: PipelineMetadata;
46
+ renderedAst: unknown;
47
+ }>;
48
+ /**
49
+ * Eagerly initialise heavy ESM-only deps (shiki + unified). Fired
50
+ * fire-and-forget from `Crowi.init`'s `setupRenderer` so the first
51
+ * pipeline run doesn't pay the cold-load cost. Failures are logged
52
+ * but never rethrown — boot must not block on optional warmup.
53
+ */
54
+ warmup(): Promise<void>;
55
+ }
56
+ /**
57
+ * Build the renderer. Called once during `Crowi.init()` AFTER
58
+ * `setupModels` and BEFORE `setupPlugins` so PluginManager can call
59
+ * `registerRenderer(scope, ctx)` on every plugin against the same
60
+ * registry instance the pipeline uses.
61
+ *
62
+ * Takes the Crowi instance so the cache storage (which depends on the
63
+ * `PluginRenderCache` mongoose model) and per-plugin scopes can be
64
+ * built. Tests that don't need cache I/O can pass a stub object
65
+ * exposing a `PluginRenderCache` model.
66
+ */
67
+ export declare function createRenderer(crowi: Crowi): Renderer;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.serializeMdast = exports.createAuthContextStub = exports.makeRendererScope = exports.RendererRegistryImpl = void 0;
7
+ exports.createRenderer = createRenderer;
8
+ const debug_1 = __importDefault(require("debug"));
9
+ const cache_1 = require("./cache");
10
+ const pipeline_1 = require("./pipeline");
11
+ const registry_1 = require("./registry");
12
+ const serialize_1 = require("./serialize");
13
+ var registry_2 = require("./registry");
14
+ Object.defineProperty(exports, "RendererRegistryImpl", { enumerable: true, get: function () { return registry_2.RendererRegistryImpl; } });
15
+ Object.defineProperty(exports, "makeRendererScope", { enumerable: true, get: function () { return registry_2.makeRendererScope; } });
16
+ Object.defineProperty(exports, "createAuthContextStub", { enumerable: true, get: function () { return registry_2.createAuthContextStub; } });
17
+ var serialize_2 = require("./serialize");
18
+ Object.defineProperty(exports, "serializeMdast", { enumerable: true, get: function () { return serialize_2.serializeMdast; } });
19
+ const debug = (0, debug_1.default)('crowi:renderer');
20
+ const coreLogger = {
21
+ debug: (msg, ...args) => debug(msg, ...args),
22
+ info: (msg, ...args) => debug(`[info] ${msg}`, ...args),
23
+ warn: (msg, ...args) => console.warn(`[crowi:renderer] ${msg}`, ...args),
24
+ error: (msg, ...args) => console.error(`[crowi:renderer] ${msg}`, ...args),
25
+ };
26
+ /**
27
+ * Build the renderer. Called once during `Crowi.init()` AFTER
28
+ * `setupModels` and BEFORE `setupPlugins` so PluginManager can call
29
+ * `registerRenderer(scope, ctx)` on every plugin against the same
30
+ * registry instance the pipeline uses.
31
+ *
32
+ * Takes the Crowi instance so the cache storage (which depends on the
33
+ * `PluginRenderCache` mongoose model) and per-plugin scopes can be
34
+ * built. Tests that don't need cache I/O can pass a stub object
35
+ * exposing a `PluginRenderCache` model.
36
+ */
37
+ function createRenderer(crowi) {
38
+ const registry = new registry_1.RendererRegistryImpl();
39
+ // Per-instance ESM-deps loader. Sharing a module-level cache breaks
40
+ // under jest where each test file boots a fresh `Crowi` and a torn
41
+ // down test environment leaves cached ESM modules pointing at a
42
+ // dead VM realm.
43
+ const loadDeps = (0, pipeline_1.createPipelineEsmDepsLoader)();
44
+ const cache = (0, cache_1.createMongoCacheStorage)(crowi);
45
+ // Phase 2 mention existence resolver — batch-checks `@username`
46
+ // mentions against the `User` collection in a single `$in` query (no
47
+ // per-mention N+1). `runPipeline` only invokes this in `mode: 'save'`,
48
+ // so the resolved AST is persisted once and reused on read / view.
49
+ // The `User` model is looked up lazily per call: `createRenderer` runs
50
+ // during `Crowi.init` before all models are guaranteed registered.
51
+ const resolveMentionUsernames = async (usernames) => {
52
+ if (usernames.length === 0)
53
+ return new Set();
54
+ const User = crowi.model('User');
55
+ const found = await User.find({ username: { $in: usernames } })
56
+ .select('username')
57
+ .exec();
58
+ return new Set(found.map((u) => u.username));
59
+ };
60
+ // RenderContext for the core pipeline (not for plugins). `cache` and
61
+ // `auth` are intentionally absent — the bundled core transforms
62
+ // (headings / wikilinks / mentions / code-blocks / syntax-highlight)
63
+ // never consult either. The dispatch layer (embed-tags /
64
+ // url-inline-expand) attaches a per-plugin `cache` + `auth` before
65
+ // calling into plugin code.
66
+ const buildCtx = (options = {}) => ({
67
+ mode: options.mode ?? 'save',
68
+ log: coreLogger,
69
+ });
70
+ return {
71
+ registry,
72
+ cache,
73
+ async run(body, options = {}) {
74
+ const ctx = buildCtx(options);
75
+ return (0, pipeline_1.runPipeline)(body, registry, ctx, loadDeps, { cache, pageId: options.pageId ?? null, resolveMentionUsernames });
76
+ },
77
+ async runMetadata(body, options = {}) {
78
+ const result = await this.run(body, options);
79
+ return result.metadata;
80
+ },
81
+ async runRender(body, options = {}) {
82
+ const result = await this.run(body, options);
83
+ return {
84
+ metadata: result.metadata,
85
+ renderedAst: (0, serialize_1.serializeMdast)(result.tree),
86
+ };
87
+ },
88
+ async warmup() {
89
+ try {
90
+ await loadDeps();
91
+ }
92
+ catch (err) {
93
+ const message = err instanceof Error ? err.message : String(err);
94
+ console.warn(`[crowi:renderer] warmup failed (will retry on first run): ${message}`);
95
+ }
96
+ },
97
+ };
98
+ }
99
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ import type { RenderContext } from '@crowi/plugin-api';
2
+ import type { Root } from 'mdast';
3
+ import type { TocEntryResponse, WikiLinkResponse, MentionResponse } from '@crowi/api-contract';
4
+ import type { MongoCacheStorage } from './cache';
5
+ import { type MentionUsernameResolver } from './core/mention-resolve';
6
+ import { RendererRegistryImpl } from './registry';
7
+ /**
8
+ * Output of a single pipeline run. The mdast tree itself is currently
9
+ * only consumed by the pipeline (and discarded after metadata
10
+ * extraction); Phase 3 will start using it for SSR HTML generation.
11
+ */
12
+ export interface PipelineResult {
13
+ tree: Root;
14
+ metadata: PipelineMetadata;
15
+ }
16
+ /** Metadata collected during the transform phase. */
17
+ export interface PipelineMetadata {
18
+ toc: TocEntryResponse[];
19
+ wikiLinks: WikiLinkResponse[];
20
+ mentions: MentionResponse[];
21
+ codeBlockLanguages: string[];
22
+ }
23
+ /**
24
+ * Lazily-resolved ESM-only handles needed by the pipeline + core
25
+ * plugins. unified, remark-parse, remark-gfm, github-slugger,
26
+ * mdast-util-to-string, and shiki are all ESM-only; they are loaded
27
+ * from CJS Express via a wrapped `Function('return import(...)')` call
28
+ * so TypeScript with `module: commonjs` doesn't downlevel the import
29
+ * to `require()` (which fails on ESM packages with `ERR_REQUIRE_ESM`).
30
+ *
31
+ * Loaded once and cached process-wide for the lifetime of the
32
+ * Crowi instance.
33
+ */
34
+ export interface PipelineEsmDeps {
35
+ unified: () => UnifiedProcessor;
36
+ remarkParse: unknown;
37
+ remarkGfm: unknown;
38
+ /**
39
+ * GFM-compatible single-newline → `<br>` conversion. Crowi default;
40
+ * matches GitHub's rendering. Plugged in between the core 4 and the
41
+ * registry transforms so heading slugs (computed via `mdastToString`
42
+ * in the headings transform) are unaffected by injected `break`
43
+ * nodes — anchors stay byte-identical to the GFM-only build.
44
+ */
45
+ remarkBreaks: unknown;
46
+ GithubSlugger: new () => {
47
+ slug(text: string): string;
48
+ };
49
+ mdastToString: (node: unknown) => string;
50
+ /**
51
+ * Pre-warmed shiki highlighter bound to a **dual theme** (`github-light`
52
+ * + `github-dark`) and the bundled language set. Lazily initialised on
53
+ * first pipeline run; subsequent runs share the same instance.
54
+ *
55
+ * Emitted markup uses shiki's `defaultColor: false` mode, so each token
56
+ * carries `--shiki-light` / `--shiki-dark` CSS variables (and the `<pre>`
57
+ * carries `--shiki-light-bg` / `--shiki-dark-bg`) instead of a single
58
+ * inlined colour. The web side (`globals.css` `.shiki` rules) then picks
59
+ * the light or dark variable per `.dark` class — see the dark-mode
60
+ * feature. Dynamic language loading is deferred to a later phase.
61
+ */
62
+ shikiHighlighter: ShikiHighlighter;
63
+ }
64
+ /**
65
+ * Subset of shiki's `Highlighter` we actually use. Bound to a
66
+ * single theme so callers don't have to re-pass it at every call.
67
+ */
68
+ export interface ShikiHighlighter {
69
+ /** Synchronously render `code` to themed `<pre><code>...</code></pre>` HTML. */
70
+ codeToHtml(code: string, lang: string): string;
71
+ /** Best-effort check; cheap, does NOT throw on unknown langs. */
72
+ hasLang(lang: string): boolean;
73
+ }
74
+ interface UnifiedProcessor {
75
+ use(plugin: unknown, options?: unknown): UnifiedProcessor;
76
+ parse(input: string): Root;
77
+ runSync(tree: Root): Root;
78
+ }
79
+ /**
80
+ * Loader for the ESM-only pipeline deps. Node 22 supports synchronous
81
+ * `require()` of ESM modules natively (`--experimental-require-module`
82
+ * default-on since 22.12), so from a CJS module we can just `require`
83
+ * unified, remark-parse, remark-gfm, github-slugger, and
84
+ * mdast-util-to-string. The `Function('return require(...)')` wrapper
85
+ * dodges the `transformIgnorePatterns` jest cache that sometimes
86
+ * routes plain require() into ts-jest's resolver.
87
+ *
88
+ * Each `Renderer` instance owns its own cache (via
89
+ * `createPipelineEsmDepsLoader()` in renderer/index.ts); sharing a
90
+ * module-level cache across Crowi instances breaks under jest where
91
+ * each test file boots a fresh `Crowi`.
92
+ */
93
+ export type LoadPipelineEsmDeps = () => Promise<PipelineEsmDeps>;
94
+ export declare function createPipelineEsmDepsLoader(): LoadPipelineEsmDeps;
95
+ /**
96
+ * Run the parse → transform pipeline against `body` and return the
97
+ * mdast tree plus the collected metadata. The transform order is
98
+ * fixed: registry-stored plugins run AFTER core registrations, in
99
+ * registration order; node renderers fire after each transformer-driven
100
+ * plugin completes.
101
+ *
102
+ * Phase 2 does NOT render to HTML — callers receive `metadata` and
103
+ * (optionally) the tree. The body's HTML is still generated by
104
+ * react-markdown on the web client.
105
+ */
106
+ /**
107
+ * Phase 4 plugin-dispatch options. Threaded through `runPipeline` so
108
+ * the embed-tag + url-inline-expand transforms can reach the cache
109
+ * storage and know which page they are rendering for.
110
+ *
111
+ * - `cache`: MongoDB-backed `CacheStorage`. The dispatch transforms
112
+ * per-plugin scope this internally.
113
+ * - `pageId`: the embed cache key is `(pluginName, pluginCacheVersion,
114
+ * pageId, embedKey)`. When unknown (e.g. on-the-fly fallback for an
115
+ * orphan revision body or unit tests bypassing Mongo), the dispatch
116
+ * transforms degrade to no-op — `@[tag](url)` stays as plain text.
117
+ */
118
+ export interface PipelinePluginDispatch {
119
+ cache: MongoCacheStorage;
120
+ pageId: string | null;
121
+ /**
122
+ * Phase 2 mention existence resolver — batch-checks which `@username`
123
+ * mentions belong to real users. Built from the `User` model by
124
+ * `createRenderer`'s `crowi` closure. When supplied AND the render is
125
+ * in `mode: 'save'`, the mention-resolve transform demotes unknown-user
126
+ * mention link nodes to plain text. Absent (unit tests, non-save runs)
127
+ * → every `@username` keeps its link node, matching pre-Phase-2
128
+ * behaviour. This is `pageId`-independent (orphan revision bodies are
129
+ * still resolved).
130
+ */
131
+ resolveMentionUsernames?: MentionUsernameResolver;
132
+ }
133
+ export declare function runPipeline(body: string, registry: RendererRegistryImpl, ctx: RenderContext, loadDeps: LoadPipelineEsmDeps, dispatch?: PipelinePluginDispatch): Promise<PipelineResult>;
134
+ export {};