@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,328 @@
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.PluginManager = void 0;
7
+ const debug_1 = __importDefault(require("debug"));
8
+ const runner_1 = require("@crowi/runner");
9
+ const config_sensitive_1 = require("../models/config-sensitive");
10
+ const plugin_context_1 = require("./plugin-context");
11
+ const plugin_namespace_1 = require("./plugin-namespace");
12
+ const renderer_1 = require("../renderer");
13
+ const registries_1 = require("./registries");
14
+ const topo_sort_1 = require("./topo-sort");
15
+ const debug = (0, debug_1.default)('crowi:plugin:manager');
16
+ /**
17
+ * Loads the plugins listed in `crowi.config.json`, resolves their
18
+ * dependency order, runs each plugin's `register*` callbacks, and
19
+ * exposes the resulting registries to the rest of the application.
20
+ *
21
+ * Lifecycle:
22
+ * 1. `loadCrowiConfigFile()` reads the JSON.
23
+ * 2. For each plugin name, `await import(name)` pulls the package's
24
+ * default export and validates it as a `CrowiPlugin`.
25
+ * 3. `topoSortPlugins()` orders by `requires`.
26
+ * 4. For each plugin in order:
27
+ * a) build a `PluginContext` for it
28
+ * b) if first time loaded, `await onInstall(ctx)` (idempotency
29
+ * is the plugin's responsibility — we re-call on every boot
30
+ * until the install-tracker is added in a follow-up step)
31
+ * c) call each provided `register*` callback with the matching
32
+ * registry scope
33
+ * 5. Resolve active drivers from `crowi.config.json:storage.driver`
34
+ * / `search.driver`. All registered auth and notifier drivers
35
+ * are active simultaneously.
36
+ *
37
+ * Errors at any step fail boot. The legacy boot path in `Crowi.init()`
38
+ * is unchanged when `crowi.config.json` is absent — defaults
39
+ * (`{ plugins: [], storage.driver: 'local', search.driver: 'mongo' }`)
40
+ * mean the manager runs with only the implicit-default plugins.
41
+ */
42
+ class PluginManager {
43
+ crowi;
44
+ storage = new registries_1.DriverRegistry('storage');
45
+ search = new registries_1.DriverRegistry('search');
46
+ auth = new registries_1.DriverRegistry('auth');
47
+ notifier = new registries_1.DriverRegistry('notifier');
48
+ mail = new registries_1.DriverRegistry('mail');
49
+ loadedPlugins = [];
50
+ /** plugin name → set of plugin names that `requires` it */
51
+ dependents = new Map();
52
+ constructor(crowi) {
53
+ this.crowi = crowi;
54
+ }
55
+ /**
56
+ * Run the full lifecycle and return the resolved registries +
57
+ * active drivers. Call once during `Crowi.init()`.
58
+ */
59
+ async bootstrap(projectDir = process.cwd()) {
60
+ // `@crowi/runner` reads `crowi.config.json` and resolves each
61
+ // plugin npm name (plus transitive `requires`) against the project
62
+ // dir's `node_modules/`. Topological ordering, activation, and
63
+ // registry wiring stay here in the manager — runner is a pure
64
+ // config/loader library with no Crowi-runtime coupling.
65
+ const { config, plugins } = await (0, runner_1.resolvePlugins)(projectDir);
66
+ debug('loaded crowi.config.json from %s: plugins=%o', projectDir, config.plugins);
67
+ const ordered = (0, topo_sort_1.topoSortPlugins)(plugins);
68
+ this.loadedPlugins = ordered;
69
+ // Register every plugin's `@sensitive`-marked configSchema fields
70
+ // with the core sensitive-config registry so values written
71
+ // through `configService.saveConfig('crowi', { 'plugin:…': … })`
72
+ // are encrypted at rest just like legacy keys.
73
+ (0, config_sensitive_1.registerSensitiveConfigKeys)(this.listSensitiveKeys().map((k) => `crowi:${k}`));
74
+ for (const plugin of ordered) {
75
+ await this.activate(plugin);
76
+ }
77
+ this.buildDependentsMap();
78
+ this.crowi.getConfigService().onConfigChange((changedNamespaces, source) => this.handleConfigChange(changedNamespaces, source));
79
+ return {
80
+ storage: this.storage,
81
+ search: this.search,
82
+ auth: this.auth,
83
+ notifier: this.notifier,
84
+ mail: this.mail,
85
+ active: this.resolveActiveDrivers(config),
86
+ };
87
+ }
88
+ /**
89
+ * Walk the loaded plugins' `requires` arrays and invert them into
90
+ * `dependents: name → set of plugins that require it`. Used to fan
91
+ * out `reconfigure` calls when a base plugin's config changes (e.g.
92
+ * `@crowi/plugin-aws` credentials changing should reconfigure
93
+ * `@crowi/plugin-storage-aws-s3`).
94
+ */
95
+ buildDependentsMap() {
96
+ this.dependents.clear();
97
+ for (const plugin of this.loadedPlugins) {
98
+ for (const dep of plugin.requires ?? []) {
99
+ const set = this.dependents.get(dep) ?? new Set();
100
+ set.add(plugin.name);
101
+ this.dependents.set(dep, set);
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * Listener bound to ConfigService.onConfigChange. We only auto-fire
107
+ * reconfigure for `'remote'` changes (= another instance saved via
108
+ * Redis pub/sub). For `'local'` changes the admin save handler calls
109
+ * `reconfigureAffected` itself so it can include the result in the
110
+ * response body — running it here too would double-fire.
111
+ */
112
+ async handleConfigChange(changedNamespaces, source) {
113
+ if (source !== 'remote')
114
+ return;
115
+ const affected = this.affectedPluginsFromNamespaces(changedNamespaces);
116
+ if (affected.size === 0)
117
+ return;
118
+ await this.runReconfigure(affected);
119
+ }
120
+ /**
121
+ * Resolve `changedNamespaces` (e.g. `['plugin:@crowi/plugin-aws']`)
122
+ * to the concrete set of plugin names that need their `reconfigure`
123
+ * called: the changed plugin itself plus every plugin that has it in
124
+ * `requires`. The `'*'` sentinel (used by older pub/sub publishers)
125
+ * fans out to every loaded plugin.
126
+ */
127
+ affectedPluginsFromNamespaces(changedNamespaces) {
128
+ const out = new Set();
129
+ const queue = [];
130
+ for (const ns of changedNamespaces) {
131
+ if (ns === '*') {
132
+ for (const plugin of this.loadedPlugins)
133
+ out.add(plugin.name);
134
+ continue;
135
+ }
136
+ const pluginName = (0, plugin_namespace_1.parsePluginNamespace)(ns);
137
+ if (pluginName)
138
+ queue.push(pluginName);
139
+ }
140
+ // BFS so transitive dependents are reached and a `requires` cycle
141
+ // (shouldn't happen, but isn't actively prevented) doesn't loop.
142
+ while (queue.length > 0) {
143
+ const name = queue.shift();
144
+ if (out.has(name))
145
+ continue;
146
+ out.add(name);
147
+ const dependents = this.dependents.get(name);
148
+ if (dependents)
149
+ for (const d of dependents)
150
+ queue.push(d);
151
+ }
152
+ return out;
153
+ }
154
+ /**
155
+ * Call `reconfigure(ctx)` on each plugin in `affected` that
156
+ * implements it. Errors are logged + reported via the plugin's debug
157
+ * logger but never propagated — a single misconfigured plugin must
158
+ * not lock operators out of the admin UI.
159
+ *
160
+ * Returns whether any plugin both (a) implements reconfigure and
161
+ * (b) completed without throwing — used by the admin save handler
162
+ * to pick the right toast.
163
+ */
164
+ async runReconfigure(affected) {
165
+ let attempted = 0;
166
+ let succeeded = 0;
167
+ for (const name of affected) {
168
+ const plugin = this.getLoadedPlugin(name);
169
+ if (!plugin?.reconfigure)
170
+ continue;
171
+ attempted++;
172
+ const ctx = (0, plugin_context_1.createPluginContext)(plugin, this.crowi, this);
173
+ try {
174
+ await plugin.reconfigure(ctx);
175
+ succeeded++;
176
+ debug('reconfigure %s OK', name);
177
+ }
178
+ catch (err) {
179
+ const message = err instanceof Error ? err.message : String(err);
180
+ console.warn(`[crowi:plugin:${name}] reconfigure failed: ${message}`);
181
+ debug('reconfigure %s failed: %s', name, message);
182
+ }
183
+ }
184
+ return { attempted, succeeded };
185
+ }
186
+ /**
187
+ * Public entry-point used by the admin "save plugin config" handler
188
+ * to await reconfigure completion in the same request and surface
189
+ * the result in the response body.
190
+ */
191
+ async reconfigureAffected(changedNamespaces) {
192
+ const affected = this.affectedPluginsFromNamespaces(changedNamespaces);
193
+ return this.runReconfigure(affected);
194
+ }
195
+ /**
196
+ * Look up a plugin by npm name from the loaded set. Used by
197
+ * `PluginContext.dependencyConfig` to resolve another plugin's
198
+ * configSchema. Returns undefined when the name isn't loaded.
199
+ */
200
+ getLoadedPlugin(name) {
201
+ return this.loadedPlugins.find((p) => p.name === name);
202
+ }
203
+ /**
204
+ * The list of plugins the manager loaded, in topological order.
205
+ * Surfaced for `crowi plugin list` and admin UI.
206
+ */
207
+ getLoadedPlugins() {
208
+ return this.loadedPlugins;
209
+ }
210
+ /**
211
+ * Walk every loaded plugin's `configSchema` and return the union of
212
+ * field paths marked `@sensitive`. The "re-encrypt all" admin
213
+ * routine consults this list. See RFC-0001 §5.
214
+ */
215
+ listSensitiveKeys() {
216
+ const out = [];
217
+ for (const plugin of this.loadedPlugins) {
218
+ const schema = plugin.configSchema;
219
+ if (!schema)
220
+ continue;
221
+ for (const [fieldName, field] of Object.entries(schema.shape)) {
222
+ const description = field.description;
223
+ if (typeof description === 'string' && description.trimStart().startsWith('@sensitive')) {
224
+ out.push((0, plugin_namespace_1.formatPluginConfigKey)(plugin.name, fieldName));
225
+ }
226
+ }
227
+ }
228
+ return out;
229
+ }
230
+ /**
231
+ * Deactivate a loaded plugin. Phase 4 only touches the render
232
+ * cache: every cached entry contributed by the named plugin is
233
+ * removed (`invalidatePlugin(name)`). Phase 5+ will broaden this
234
+ * to (a) drop the plugin from the loaded set + driver registries,
235
+ * (b) emit a deactivation event for dependents, (c) wire the
236
+ * `--purge` CLI path.
237
+ *
238
+ * Returns true when at least the render-cache invalidation ran
239
+ * (false when the plugin wasn't loaded). Failures are logged but
240
+ * never propagated — operators trigger deactivate from the admin
241
+ * UI or CLI and a partial cleanup is still better than no cleanup.
242
+ */
243
+ async deactivate(name) {
244
+ const plugin = this.getLoadedPlugin(name);
245
+ if (!plugin) {
246
+ debug('deactivate: plugin %s not loaded; nothing to do', name);
247
+ return false;
248
+ }
249
+ try {
250
+ const renderer = this.crowi.renderer;
251
+ if (renderer) {
252
+ await renderer.cache.invalidatePlugin(name);
253
+ debug('deactivate %s: render-cache invalidated', name);
254
+ }
255
+ }
256
+ catch (err) {
257
+ const message = err instanceof Error ? err.message : String(err);
258
+ console.warn(`[crowi:plugin:${name}] deactivate failed during render-cache invalidation: ${message}`);
259
+ }
260
+ return true;
261
+ }
262
+ async activate(plugin) {
263
+ debug('activating %s@%s', plugin.name, plugin.version);
264
+ const ctx = (0, plugin_context_1.createPluginContext)(plugin, this.crowi, this);
265
+ // onInstall runs unconditionally for now. A follow-up will track
266
+ // installed-once state in Mongo and skip on subsequent boots.
267
+ if (plugin.onInstall) {
268
+ await plugin.onInstall(ctx);
269
+ }
270
+ if (plugin.registerStorage)
271
+ plugin.registerStorage((0, registries_1.makeStorageScope)(this.storage, plugin.name), ctx);
272
+ if (plugin.registerSearch)
273
+ plugin.registerSearch((0, registries_1.makeSearchScope)(this.search, plugin.name), ctx);
274
+ if (plugin.registerAuth)
275
+ plugin.registerAuth((0, registries_1.makeAuthScope)(this.auth, plugin.name), ctx);
276
+ if (plugin.registerNotifier)
277
+ plugin.registerNotifier((0, registries_1.makeNotifierScope)(this.notifier, plugin.name), ctx);
278
+ if (plugin.registerMailSender)
279
+ plugin.registerMailSender((0, registries_1.makeMailScope)(this.mail, plugin.name), ctx);
280
+ if (plugin.registerRenderer) {
281
+ // Renderer is registered against `crowi.renderer.registry`; it
282
+ // already has the core 4 transforms in place when we get here
283
+ // (Crowi.init() runs setupRenderer before setupPlugins). External
284
+ // plugins append to the back — they cannot insert before core in
285
+ // v2.1 phase 2.
286
+ const renderer = this.crowi.getRenderer();
287
+ plugin.registerRenderer((0, renderer_1.makeRendererScope)(renderer.registry, plugin.name, ctx.log), ctx);
288
+ }
289
+ // registerHooks and registerRoutes are wired in a later step
290
+ // (the EventBus and PluginRouterScope instances are not yet
291
+ // constructed in v0.1).
292
+ }
293
+ resolveActiveDrivers(config) {
294
+ return {
295
+ storage: this.resolveOrWarn(this.storage, 'storage', config.storage.driver),
296
+ search: this.resolveOrWarn(this.search, 'search', config.search.driver),
297
+ auth: this.auth
298
+ .list()
299
+ .map(({ driverName }) => this.auth.get(driverName))
300
+ .filter((d) => !!d),
301
+ notifiers: this.notifier
302
+ .list()
303
+ .map(({ driverName }) => this.notifier.get(driverName))
304
+ .filter((d) => !!d),
305
+ mail: this.resolveOrWarn(this.mail, 'mail', config.mail.driver),
306
+ };
307
+ }
308
+ /**
309
+ * Look up `driverName` in `registry`. Returns null + logs a warning
310
+ * if absent. v2.0 transition behaviour: legacy in-core code keeps
311
+ * handling the concern when the active driver is null. After the
312
+ * Step 3+ plugin extractions land, missing-driver becomes a hard
313
+ * error.
314
+ */
315
+ resolveOrWarn(registry, kind, driverName) {
316
+ const driver = registry.get(driverName);
317
+ if (driver)
318
+ return driver;
319
+ const installed = registry
320
+ .list()
321
+ .map((d) => d.driverName)
322
+ .join(', ') || '(none)';
323
+ debug(`[warn] ${kind}.driver '${driverName}' not registered. Installed: ${installed}. Falling back to legacy in-core handling.`);
324
+ return null;
325
+ }
326
+ }
327
+ exports.PluginManager = PluginManager;
328
+ //# sourceMappingURL=plugin-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-manager.js","sourceRoot":"","sources":["../../src/plugin/plugin-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Single source of truth for the `plugin:<name>[:<field>]` key / namespace
3
+ * shape that's an inter-module contract between `service/config.ts` and
4
+ * `plugin/plugin-manager.ts` (and `plugin/plugin-context.ts`).
5
+ *
6
+ * Plugin names are npm package names (e.g. `@crowi/plugin-aws`) and may
7
+ * contain `/` but never `:` — npm package names allow `[a-z0-9-_./]`.
8
+ * Parse helpers therefore split on the first two `:` rather than greedy
9
+ * regex alternatives, so a future plugin name with extra characters
10
+ * doesn't silently break.
11
+ */
12
+ export declare function formatPluginConfigKey(pluginName: string, field: string): string;
13
+ export declare function formatPluginNamespace(pluginName: string): string;
14
+ export declare function pluginConfigKeyPrefix(pluginName: string): string;
15
+ /**
16
+ * Extract the plugin name from a `plugin:<name>` namespace string.
17
+ * Returns null when the namespace isn't plugin-shaped, so callers can
18
+ * `continue` cleanly on `crowi:*` / `notification:*` etc.
19
+ */
20
+ export declare function parsePluginNamespace(ns: string): string | null;
21
+ /**
22
+ * Extract the plugin name from a full `plugin:<name>:<field>` config
23
+ * key. Returns null when the key isn't plugin-shaped.
24
+ */
25
+ export declare function parsePluginConfigKey(key: string): {
26
+ pluginName: string;
27
+ field: string;
28
+ } | null;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * Single source of truth for the `plugin:<name>[:<field>]` key / namespace
4
+ * shape that's an inter-module contract between `service/config.ts` and
5
+ * `plugin/plugin-manager.ts` (and `plugin/plugin-context.ts`).
6
+ *
7
+ * Plugin names are npm package names (e.g. `@crowi/plugin-aws`) and may
8
+ * contain `/` but never `:` — npm package names allow `[a-z0-9-_./]`.
9
+ * Parse helpers therefore split on the first two `:` rather than greedy
10
+ * regex alternatives, so a future plugin name with extra characters
11
+ * doesn't silently break.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.formatPluginConfigKey = formatPluginConfigKey;
15
+ exports.formatPluginNamespace = formatPluginNamespace;
16
+ exports.pluginConfigKeyPrefix = pluginConfigKeyPrefix;
17
+ exports.parsePluginNamespace = parsePluginNamespace;
18
+ exports.parsePluginConfigKey = parsePluginConfigKey;
19
+ const PLUGIN_PREFIX = 'plugin:';
20
+ function formatPluginConfigKey(pluginName, field) {
21
+ return `${PLUGIN_PREFIX}${pluginName}:${field}`;
22
+ }
23
+ function formatPluginNamespace(pluginName) {
24
+ return `${PLUGIN_PREFIX}${pluginName}`;
25
+ }
26
+ function pluginConfigKeyPrefix(pluginName) {
27
+ return `${PLUGIN_PREFIX}${pluginName}:`;
28
+ }
29
+ /**
30
+ * Extract the plugin name from a `plugin:<name>` namespace string.
31
+ * Returns null when the namespace isn't plugin-shaped, so callers can
32
+ * `continue` cleanly on `crowi:*` / `notification:*` etc.
33
+ */
34
+ function parsePluginNamespace(ns) {
35
+ if (!ns.startsWith(PLUGIN_PREFIX))
36
+ return null;
37
+ const name = ns.slice(PLUGIN_PREFIX.length);
38
+ return name.length > 0 ? name : null;
39
+ }
40
+ /**
41
+ * Extract the plugin name from a full `plugin:<name>:<field>` config
42
+ * key. Returns null when the key isn't plugin-shaped.
43
+ */
44
+ function parsePluginConfigKey(key) {
45
+ if (!key.startsWith(PLUGIN_PREFIX))
46
+ return null;
47
+ const rest = key.slice(PLUGIN_PREFIX.length);
48
+ const sep = rest.lastIndexOf(':');
49
+ if (sep <= 0 || sep === rest.length - 1)
50
+ return null;
51
+ return { pluginName: rest.slice(0, sep), field: rest.slice(sep + 1) };
52
+ }
53
+ //# sourceMappingURL=plugin-namespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-namespace.js","sourceRoot":"","sources":["../../src/plugin/plugin-namespace.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAIH,sDAEC;AAED,sDAEC;AAED,sDAEC;AAOD,oDAIC;AAMD,oDAMC;AAnCD,MAAM,aAAa,GAAG,SAAS,CAAC;AAEhC,SAAgB,qBAAqB,CAAC,UAAkB,EAAE,KAAa;IACrE,OAAO,GAAG,aAAa,GAAG,UAAU,IAAI,KAAK,EAAE,CAAC;AAClD,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,OAAO,GAAG,aAAa,GAAG,UAAU,EAAE,CAAC;AACzC,CAAC;AAED,SAAgB,qBAAqB,CAAC,UAAkB;IACtD,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,EAAU;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { AuthDriver, AuthRegistry, MailSender, MailSenderRegistry, NotifierDriver, NotifierRegistry, SearchDriver, SearchRegistry, StorageDriver, StorageRegistry } from '@crowi/plugin-api';
2
+ /**
3
+ * Generic backing registry for all the typed registries below. Each
4
+ * registry stores `(driverName → driver)` and remembers which plugin
5
+ * registered each entry so the runtime can give clear error messages
6
+ * on collisions.
7
+ */
8
+ export declare class DriverRegistry<T> {
9
+ private readonly kind;
10
+ private drivers;
11
+ constructor(kind: string);
12
+ register(driverName: string, driver: T, registeringPlugin: string): void;
13
+ get(driverName: string): T | undefined;
14
+ has(driverName: string): boolean;
15
+ /**
16
+ * Reverse lookup: the registered `(driverName, plugin)` for a driver
17
+ * instance, or undefined. Lets handlers report the active driver's
18
+ * name without re-implementing the identity scan.
19
+ */
20
+ entryOf(driver: T): {
21
+ driverName: string;
22
+ plugin: string;
23
+ } | undefined;
24
+ list(): {
25
+ driverName: string;
26
+ plugin: string;
27
+ }[];
28
+ }
29
+ /**
30
+ * Per-plugin scope handed to `registerStorage(scope, ctx)`. Closes
31
+ * over the registering plugin's name so we don't have to make plugins
32
+ * pass it themselves on every call.
33
+ */
34
+ export declare const makeStorageScope: (registry: DriverRegistry<StorageDriver>, plugin: string) => StorageRegistry;
35
+ export declare const makeSearchScope: (registry: DriverRegistry<SearchDriver>, plugin: string) => SearchRegistry;
36
+ export declare const makeAuthScope: (registry: DriverRegistry<AuthDriver>, plugin: string) => AuthRegistry;
37
+ export declare const makeNotifierScope: (registry: DriverRegistry<NotifierDriver>, plugin: string) => NotifierRegistry;
38
+ export declare const makeMailScope: (registry: DriverRegistry<MailSender>, plugin: string) => MailSenderRegistry;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeMailScope = exports.makeNotifierScope = exports.makeAuthScope = exports.makeSearchScope = exports.makeStorageScope = exports.DriverRegistry = void 0;
4
+ /**
5
+ * Generic backing registry for all the typed registries below. Each
6
+ * registry stores `(driverName → driver)` and remembers which plugin
7
+ * registered each entry so the runtime can give clear error messages
8
+ * on collisions.
9
+ */
10
+ class DriverRegistry {
11
+ kind;
12
+ drivers = new Map();
13
+ constructor(kind) {
14
+ this.kind = kind;
15
+ }
16
+ register(driverName, driver, registeringPlugin) {
17
+ const existing = this.drivers.get(driverName);
18
+ if (existing) {
19
+ throw new Error(`Plugin '${registeringPlugin}' tried to register ${this.kind} driver '${driverName}', but '${existing.plugin}' already did.`);
20
+ }
21
+ this.drivers.set(driverName, { plugin: registeringPlugin, driver });
22
+ }
23
+ get(driverName) {
24
+ return this.drivers.get(driverName)?.driver;
25
+ }
26
+ has(driverName) {
27
+ return this.drivers.has(driverName);
28
+ }
29
+ /**
30
+ * Reverse lookup: the registered `(driverName, plugin)` for a driver
31
+ * instance, or undefined. Lets handlers report the active driver's
32
+ * name without re-implementing the identity scan.
33
+ */
34
+ entryOf(driver) {
35
+ for (const [driverName, entry] of this.drivers) {
36
+ if (entry.driver === driver)
37
+ return { driverName, plugin: entry.plugin };
38
+ }
39
+ return undefined;
40
+ }
41
+ list() {
42
+ return Array.from(this.drivers.entries()).map(([driverName, { plugin }]) => ({ driverName, plugin }));
43
+ }
44
+ }
45
+ exports.DriverRegistry = DriverRegistry;
46
+ /**
47
+ * Per-plugin scope handed to `registerStorage(scope, ctx)`. Closes
48
+ * over the registering plugin's name so we don't have to make plugins
49
+ * pass it themselves on every call.
50
+ */
51
+ const makeStorageScope = (registry, plugin) => ({
52
+ register: (driverName, driver) => registry.register(driverName, driver, plugin),
53
+ });
54
+ exports.makeStorageScope = makeStorageScope;
55
+ const makeSearchScope = (registry, plugin) => ({
56
+ register: (driverName, driver) => registry.register(driverName, driver, plugin),
57
+ });
58
+ exports.makeSearchScope = makeSearchScope;
59
+ const makeAuthScope = (registry, plugin) => ({
60
+ register: (driverName, driver) => registry.register(driverName, driver, plugin),
61
+ });
62
+ exports.makeAuthScope = makeAuthScope;
63
+ const makeNotifierScope = (registry, plugin) => ({
64
+ register: (driverName, driver) => registry.register(driverName, driver, plugin),
65
+ });
66
+ exports.makeNotifierScope = makeNotifierScope;
67
+ const makeMailScope = (registry, plugin) => ({
68
+ register: (driverName, driver) => registry.register(driverName, driver, plugin),
69
+ });
70
+ exports.makeMailScope = makeMailScope;
71
+ //# sourceMappingURL=registries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registries.js","sourceRoot":"","sources":["../../src/plugin/registries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { type ZodTypeAny, z } from 'zod/v3';
2
+ /**
3
+ * Serialised shape of a single plugin config field. The web admin
4
+ * form renders one input per field, picking the control by `kind`.
5
+ *
6
+ * Sensitive fields (`@sensitive` description marker) are NOT present
7
+ * in `defaultValue` even when the schema declares one — secrets are
8
+ * never echoed back from the server. Use the separate values payload
9
+ * with `{ hasValue: true }` to render the "currently saved" badge.
10
+ */
11
+ export interface SerializedPluginField {
12
+ name: string;
13
+ kind: 'string' | 'secret' | 'number' | 'boolean' | 'enum' | 'string-array';
14
+ description?: string;
15
+ defaultValue?: unknown;
16
+ /** Enum options when `kind === 'enum'`. */
17
+ options?: string[];
18
+ /** Action button annotation (parsed from `@action ...` description). */
19
+ action?: {
20
+ label: string;
21
+ method: string;
22
+ path: string;
23
+ };
24
+ /** True when the field was declared as optional (`z.…optional()`). */
25
+ optional: boolean;
26
+ }
27
+ /**
28
+ * Walk a plugin's `configSchema` (assumed to be a `z.object({...})`)
29
+ * and produce a flat list of fields the admin form can render. Only
30
+ * the field shapes the plugin RFC committed to are recognised:
31
+ * string / number / boolean / enum / string[]. Anything else falls
32
+ * back to `kind: 'string'` (with a descriptive log on the server).
33
+ */
34
+ export declare function serializeConfigSchema(schema: z.ZodObject<Record<string, ZodTypeAny>>): SerializedPluginField[];