@geekity/cms 0.23.0 → 0.25.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 (192) hide show
  1. package/README.md +96 -160
  2. package/admin/pages/documents/editor.njk +45 -0
  3. package/admin/pages/federation/settings.njk +1 -59
  4. package/admin/pages/plugins/installed.njk +113 -0
  5. package/admin/pages/plugins/screen.njk +129 -0
  6. package/admin/static/admin.css +136 -4
  7. package/admin/static/editor-actions.js +192 -0
  8. package/admin/static/editor.js +1 -1
  9. package/dist/admin/accounts.d.ts +18 -39
  10. package/dist/admin/accounts.d.ts.map +1 -1
  11. package/dist/admin/accounts.js +19 -48
  12. package/dist/admin/accounts.js.map +1 -1
  13. package/dist/admin/documents.d.ts +5 -0
  14. package/dist/admin/documents.d.ts.map +1 -1
  15. package/dist/admin/documents.js +17 -8
  16. package/dist/admin/documents.js.map +1 -1
  17. package/dist/admin/editor-actions.d.ts +35 -0
  18. package/dist/admin/editor-actions.d.ts.map +1 -0
  19. package/dist/admin/editor-actions.js +168 -0
  20. package/dist/admin/editor-actions.js.map +1 -0
  21. package/dist/admin/federation.d.ts +4 -5
  22. package/dist/admin/federation.d.ts.map +1 -1
  23. package/dist/admin/federation.js +4 -5
  24. package/dist/admin/federation.js.map +1 -1
  25. package/dist/admin/index.d.ts +1 -1
  26. package/dist/admin/index.d.ts.map +1 -1
  27. package/dist/admin/index.js +1 -1
  28. package/dist/admin/index.js.map +1 -1
  29. package/dist/admin/menu.d.ts +1 -1
  30. package/dist/admin/menu.d.ts.map +1 -1
  31. package/dist/admin/menu.js +10 -3
  32. package/dist/admin/menu.js.map +1 -1
  33. package/dist/admin/plugins.d.ts +24 -0
  34. package/dist/admin/plugins.d.ts.map +1 -0
  35. package/dist/admin/plugins.js +312 -0
  36. package/dist/admin/plugins.js.map +1 -0
  37. package/dist/admin/routes.d.ts.map +1 -1
  38. package/dist/admin/routes.js +5 -1
  39. package/dist/admin/routes.js.map +1 -1
  40. package/dist/admin/settings-federation.d.ts +0 -25
  41. package/dist/admin/settings-federation.d.ts.map +1 -1
  42. package/dist/admin/settings-federation.js +1 -54
  43. package/dist/admin/settings-federation.js.map +1 -1
  44. package/dist/admin/settings.d.ts +2 -14
  45. package/dist/admin/settings.d.ts.map +1 -1
  46. package/dist/admin/settings.js +1 -21
  47. package/dist/admin/settings.js.map +1 -1
  48. package/dist/admin/store.d.ts +8 -1
  49. package/dist/admin/store.d.ts.map +1 -1
  50. package/dist/admin/store.js +7 -3
  51. package/dist/admin/store.js.map +1 -1
  52. package/dist/admin/templates.d.ts +2 -0
  53. package/dist/admin/templates.d.ts.map +1 -1
  54. package/dist/admin/templates.js +2 -0
  55. package/dist/admin/templates.js.map +1 -1
  56. package/dist/cli.d.ts +2 -3
  57. package/dist/cli.d.ts.map +1 -1
  58. package/dist/cli.js +278 -212
  59. package/dist/cli.js.map +1 -1
  60. package/dist/config.d.ts +20 -0
  61. package/dist/config.d.ts.map +1 -1
  62. package/dist/config.js +6 -0
  63. package/dist/config.js.map +1 -1
  64. package/dist/content/store.d.ts +6 -0
  65. package/dist/content/store.d.ts.map +1 -1
  66. package/dist/content/store.js +3 -0
  67. package/dist/content/store.js.map +1 -1
  68. package/dist/drain.d.ts +28 -0
  69. package/dist/drain.d.ts.map +1 -0
  70. package/dist/drain.js +106 -0
  71. package/dist/drain.js.map +1 -0
  72. package/dist/env.d.ts +11 -0
  73. package/dist/env.d.ts.map +1 -1
  74. package/dist/federation/federation.d.ts +4 -2
  75. package/dist/federation/federation.d.ts.map +1 -1
  76. package/dist/federation/federation.js +16 -21
  77. package/dist/federation/federation.js.map +1 -1
  78. package/dist/federation/inbox.d.ts +23 -3
  79. package/dist/federation/inbox.d.ts.map +1 -1
  80. package/dist/federation/inbox.js +63 -1
  81. package/dist/federation/inbox.js.map +1 -1
  82. package/dist/federation/index.d.ts +0 -4
  83. package/dist/federation/index.d.ts.map +1 -1
  84. package/dist/federation/index.js +0 -2
  85. package/dist/federation/index.js.map +1 -1
  86. package/dist/federation/mount.d.ts +6 -12
  87. package/dist/federation/mount.d.ts.map +1 -1
  88. package/dist/federation/mount.js +3 -50
  89. package/dist/federation/mount.js.map +1 -1
  90. package/dist/federation/queue.d.ts +22 -0
  91. package/dist/federation/queue.d.ts.map +1 -0
  92. package/dist/federation/queue.js +58 -0
  93. package/dist/federation/queue.js.map +1 -0
  94. package/dist/files/atomic.d.ts +13 -0
  95. package/dist/files/atomic.d.ts.map +1 -1
  96. package/dist/files/atomic.js +45 -0
  97. package/dist/files/atomic.js.map +1 -1
  98. package/dist/index.d.ts +30 -3
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +156 -79
  101. package/dist/index.js.map +1 -1
  102. package/dist/plugin.d.ts +513 -0
  103. package/dist/plugin.d.ts.map +1 -0
  104. package/dist/plugin.js +23 -0
  105. package/dist/plugin.js.map +1 -0
  106. package/dist/plugins/enabled.d.ts +23 -0
  107. package/dist/plugins/enabled.d.ts.map +1 -0
  108. package/dist/plugins/enabled.js +49 -0
  109. package/dist/plugins/enabled.js.map +1 -0
  110. package/dist/plugins/federation.d.ts +26 -0
  111. package/dist/plugins/federation.d.ts.map +1 -0
  112. package/dist/plugins/federation.js +114 -0
  113. package/dist/plugins/federation.js.map +1 -0
  114. package/dist/plugins/fetch.d.ts +15 -0
  115. package/dist/plugins/fetch.d.ts.map +1 -0
  116. package/dist/plugins/fetch.js +33 -0
  117. package/dist/plugins/fetch.js.map +1 -0
  118. package/dist/plugins/folder.d.ts +50 -0
  119. package/dist/plugins/folder.d.ts.map +1 -0
  120. package/dist/plugins/folder.js +171 -0
  121. package/dist/plugins/folder.js.map +1 -0
  122. package/dist/plugins/install.d.ts +45 -0
  123. package/dist/plugins/install.d.ts.map +1 -0
  124. package/dist/plugins/install.js +275 -0
  125. package/dist/plugins/install.js.map +1 -0
  126. package/dist/plugins/mount.d.ts +17 -0
  127. package/dist/plugins/mount.d.ts.map +1 -0
  128. package/dist/plugins/mount.js +44 -0
  129. package/dist/plugins/mount.js.map +1 -0
  130. package/dist/plugins/registry.d.ts +110 -0
  131. package/dist/plugins/registry.d.ts.map +1 -0
  132. package/dist/plugins/registry.js +447 -0
  133. package/dist/plugins/registry.js.map +1 -0
  134. package/dist/plugins/settings.d.ts +64 -0
  135. package/dist/plugins/settings.d.ts.map +1 -0
  136. package/dist/plugins/settings.js +219 -0
  137. package/dist/plugins/settings.js.map +1 -0
  138. package/dist/plugins/site.d.ts +17 -0
  139. package/dist/plugins/site.d.ts.map +1 -0
  140. package/dist/plugins/site.js +67 -0
  141. package/dist/plugins/site.js.map +1 -0
  142. package/dist/supervisor/primary.d.ts +47 -0
  143. package/dist/supervisor/primary.d.ts.map +1 -0
  144. package/dist/supervisor/primary.js +208 -0
  145. package/dist/supervisor/primary.js.map +1 -0
  146. package/dist/supervisor/protocol.d.ts +37 -0
  147. package/dist/supervisor/protocol.d.ts.map +1 -0
  148. package/dist/supervisor/protocol.js +29 -0
  149. package/dist/supervisor/protocol.js.map +1 -0
  150. package/dist/supervisor/supervision.d.ts +25 -0
  151. package/dist/supervisor/supervision.d.ts.map +1 -0
  152. package/dist/supervisor/supervision.js +7 -0
  153. package/dist/supervisor/supervision.js.map +1 -0
  154. package/dist/supervisor/worker.d.ts +29 -0
  155. package/dist/supervisor/worker.d.ts.map +1 -0
  156. package/dist/supervisor/worker.js +97 -0
  157. package/dist/supervisor/worker.js.map +1 -0
  158. package/dist/web/errors.d.ts.map +1 -1
  159. package/dist/web/errors.js +5 -3
  160. package/dist/web/errors.js.map +1 -1
  161. package/dist/web/llms.d.ts +8 -0
  162. package/dist/web/llms.d.ts.map +1 -1
  163. package/dist/web/llms.js +25 -7
  164. package/dist/web/llms.js.map +1 -1
  165. package/dist/web/maintenance.d.ts +2 -2
  166. package/dist/web/maintenance.d.ts.map +1 -1
  167. package/dist/web/maintenance.js +7 -4
  168. package/dist/web/maintenance.js.map +1 -1
  169. package/dist/web/negotiate.d.ts +8 -5
  170. package/dist/web/negotiate.d.ts.map +1 -1
  171. package/dist/web/negotiate.js +21 -10
  172. package/dist/web/negotiate.js.map +1 -1
  173. package/dist/web/routes.d.ts.map +1 -1
  174. package/dist/web/routes.js +84 -36
  175. package/dist/web/routes.js.map +1 -1
  176. package/package.json +11 -5
  177. package/dist/comments/conversation.d.ts +0 -29
  178. package/dist/comments/conversation.d.ts.map +0 -1
  179. package/dist/comments/conversation.js +0 -60
  180. package/dist/comments/conversation.js.map +0 -1
  181. package/dist/federation/import-wordpress.d.ts +0 -128
  182. package/dist/federation/import-wordpress.d.ts.map +0 -1
  183. package/dist/federation/import-wordpress.js +0 -426
  184. package/dist/federation/import-wordpress.js.map +0 -1
  185. package/dist/federation/wordpress.d.ts +0 -131
  186. package/dist/federation/wordpress.d.ts.map +0 -1
  187. package/dist/federation/wordpress.js +0 -342
  188. package/dist/federation/wordpress.js.map +0 -1
  189. package/dist/web/comments.d.ts +0 -60
  190. package/dist/web/comments.d.ts.map +0 -1
  191. package/dist/web/comments.js +0 -207
  192. package/dist/web/comments.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  export { ADMIN_ASSET_MAX_AGE, ADMIN_ASSET_PREFIX, ADMIN_STATIC_DIR, adminAssetResponse, findAdminAsset, } from './assets.ts';
2
- export { countUsers, createUser, deleteUser, DuplicateUsernameError, findUser, findUserById, findUserByIdentifier, listUsers, primaryUser, migrateUsersToFile, cleanProfile, setUserEmail, setUserPassword, setUserProfile, setUserWordPressActor, ConflictingActorIdError, UnknownUserError, USERS_FILE, USERS_FILE_MODE, usersFile, verifyUserPassword, } from './accounts.ts';
2
+ export { countUsers, createUser, deleteUser, DuplicateUsernameError, findUser, findUserById, findUserByIdentifier, listUsers, primaryUser, migrateUsersToFile, cleanProfile, setUserEmail, setUserPassword, setUserProfile, setUserActorId, ConflictingActorIdError, UnknownUserError, USERS_FILE, USERS_FILE_MODE, usersFile, verifyUserPassword, } from './accounts.ts';
3
3
  export type { CreateUserInput, ProfileLink, StoredUser, User, UserProfile } from './accounts.ts';
4
4
  export { credentialProblem, emailProblem, MAXIMUM_USERNAME_LENGTH, MINIMUM_PASSWORD_LENGTH, passwordProblem, USERNAME_PATTERN, usernameProblem, } from './credentials.ts';
5
5
  export { blankForm, DOCUMENT_FILTERS, DOCUMENTS_PER_PAGE, documentFilter, editorPath, EXCLUDE_KEY, findBySlug, formFor, listingUrl, listOptionsFor, mountDocumentScreens, newEditorPath, PAGE_KIND, POST_KIND, returnPath, splitTags, } from './documents.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,SAAS,EACT,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,4BAA4B,EAC5B,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,IAAI,cAAc,EACzB,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,IAAI,cAAc,EACzB,mBAAmB,EACnB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EACL,sBAAsB,EACtB,KAAK,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpG,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,EACd,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EACL,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,UAAU,EACV,cAAc,EACd,4BAA4B,EAC5B,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,wBAAwB,EACxB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,KAAK,EACL,UAAU,EACV,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,EACV,sBAAsB,EACtB,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,SAAS,EACT,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,UAAU,EACV,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,aAAa,EACb,UAAU,EACV,oBAAoB,EACpB,UAAU,EACV,aAAa,EACb,WAAW,EACX,QAAQ,EACR,eAAe,EACf,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,2BAA2B,EAC3B,YAAY,EACZ,iBAAiB,EACjB,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,4BAA4B,EAC5B,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,OAAO,IAAI,cAAc,EACzB,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,IAAI,cAAc,EACzB,mBAAmB,EACnB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,uBAAuB,EACvB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EACL,sBAAsB,EACtB,KAAK,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpG,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,EACd,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,SAAS,GACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,2BAA2B,EAC3B,yBAAyB,EACzB,UAAU,EACV,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC7F,OAAO,EACL,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,UAAU,EACV,cAAc,EACd,4BAA4B,EAC5B,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,wBAAwB,EACxB,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,KAAK,EACL,UAAU,EACV,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { ADMIN_ASSET_MAX_AGE, ADMIN_ASSET_PREFIX, ADMIN_STATIC_DIR, adminAssetResponse, findAdminAsset, } from './assets.js';
2
- export { countUsers, createUser, deleteUser, DuplicateUsernameError, findUser, findUserById, findUserByIdentifier, listUsers, primaryUser, migrateUsersToFile, cleanProfile, setUserEmail, setUserPassword, setUserProfile, setUserWordPressActor, ConflictingActorIdError, UnknownUserError, USERS_FILE, USERS_FILE_MODE, usersFile, verifyUserPassword, } from './accounts.js';
2
+ export { countUsers, createUser, deleteUser, DuplicateUsernameError, findUser, findUserById, findUserByIdentifier, listUsers, primaryUser, migrateUsersToFile, cleanProfile, setUserEmail, setUserPassword, setUserProfile, setUserActorId, ConflictingActorIdError, UnknownUserError, USERS_FILE, USERS_FILE_MODE, usersFile, verifyUserPassword, } from './accounts.js';
3
3
  export { credentialProblem, emailProblem, MAXIMUM_USERNAME_LENGTH, MINIMUM_PASSWORD_LENGTH, passwordProblem, USERNAME_PATTERN, usernameProblem, } from './credentials.js';
4
4
  export { blankForm, DOCUMENT_FILTERS, DOCUMENTS_PER_PAGE, documentFilter, editorPath, EXCLUDE_KEY, findBySlug, formFor, listingUrl, listOptionsFor, mountDocumentScreens, newEditorPath, PAGE_KIND, POST_KIND, returnPath, splitTags, } from './documents.js';
5
5
  export { applyTermChange, CATEGORY_KIND, deletePath, mountTaxonomyScreens, renamePath, renameProblem, rewriteTerm, TAG_KIND, TAXONOMY_FIELDS, TAXONOMY_KINDS, } from './taxonomy.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"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"}
@@ -75,5 +75,5 @@ export declare const ADMIN_SECTIONS: readonly AdminSection[];
75
75
  * a section with no child is a screen that only knows half of where it is, and
76
76
  * would render a menu that expands around nothing.
77
77
  */
78
- export declare function adminMenu(location?: AdminScreenLocation): AdminMenuSection[];
78
+ export declare function adminMenu(location?: AdminScreenLocation, pluginScreens?: readonly AdminMenuChild[]): AdminMenuSection[];
79
79
  //# sourceMappingURL=menu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/admin/menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAwBH,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,yEAAyE;IACzE,IAAI,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC5C;AAED,sCAAsC;AACtC,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,uEAAuE;AACvE,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EA+DjD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,QAAQ,GAAE,mBAAwB,GAAG,gBAAgB,EAAE,CA4BhF"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/admin/menu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAyBH,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,yEAAyE;IACzE,IAAI,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAC5C;AAED,sCAAsC;AACtC,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,uEAAuE;AACvE,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAkEjD,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,QAAQ,GAAE,mBAAwB,EAClC,aAAa,GAAE,SAAS,cAAc,EAAO,GAC5C,gBAAgB,EAAE,CAiCpB"}
@@ -22,6 +22,7 @@ import { FEDERATION_PATH, FEDERATION_SETTINGS_PATH } from './federation.js';
22
22
  import { MEDIA_PATH } from './media.js';
23
23
  import { MESSAGES_PATH } from './messages.js';
24
24
  import { NAVIGATION_PATH } from './navigation.js';
25
+ import { PLUGINS_CHILD, PLUGINS_PATH, PLUGINS_SECTION } from './plugins.js';
25
26
  import { settingsPagePath } from './settings-page.js';
26
27
  import { ADMIN_PREFIX } from './session.js';
27
28
  import { SYNDICATION_TARGETS_CHILD, SYNDICATION_TARGETS_PATH } from './syndication-targets.js';
@@ -69,6 +70,9 @@ export const ADMIN_SECTIONS = [
69
70
  // One child, because the rule is uniform: a second kind of theme, or a menu
70
71
  // editor, slots in beside Themes without the menu changing shape.
71
72
  section('appearance', 'Appearance', [{ child: 'themes', label: 'Themes', url: THEMES_PATH }]),
73
+ section(PLUGINS_SECTION, 'Plugins', [
74
+ { child: PLUGINS_CHILD, label: 'Installed plugins', url: PLUGINS_PATH },
75
+ ]),
72
76
  section('users', 'Users', [
73
77
  { child: 'all', label: 'All users', url: USERS_PATH },
74
78
  { child: 'new', label: 'Add new', url: ADD_USER_PATH },
@@ -116,10 +120,13 @@ export const ADMIN_SECTIONS = [
116
120
  * a section with no child is a screen that only knows half of where it is, and
117
121
  * would render a menu that expands around nothing.
118
122
  */
119
- export function adminMenu(location = {}) {
123
+ export function adminMenu(location = {}, pluginScreens = []) {
120
124
  const { section: name, child } = location;
125
+ const sections = ADMIN_SECTIONS.map((entry) => entry.section === PLUGINS_SECTION && pluginScreens.length > 0
126
+ ? { ...entry, children: [...entry.children, ...pluginScreens] }
127
+ : entry);
121
128
  if (name !== undefined) {
122
- const found = ADMIN_SECTIONS.find((entry) => entry.section === name);
129
+ const found = sections.find((entry) => entry.section === name);
123
130
  if (found === undefined) {
124
131
  throw new UnknownAdminScreenError(`The admin menu has no section called ${quoted(name)}.`);
125
132
  }
@@ -130,7 +137,7 @@ export function adminMenu(location = {}) {
130
137
  throw new UnknownAdminScreenError(`The admin menu's ${quoted(name)} section has no child called ${quoted(child)}.`);
131
138
  }
132
139
  }
133
- return ADMIN_SECTIONS.map((entry) => ({
140
+ return sections.map((entry) => ({
134
141
  ...entry,
135
142
  open: entry.section === name,
136
143
  children: entry.children.map((item) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/admin/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/admin/menu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Admin > Plugins (decision-33): every installed plugin, where it stands, and
3
+ * the Enable and Disable buttons that write the `plugins` key of
4
+ * `content/_data/site.json`. The next request runs under the new set; there
5
+ * is nothing to restart.
6
+ */
7
+ import type { Context, Hono } from 'hono';
8
+ import type { GeekityEnv } from '../env.ts';
9
+ import type { AdminRender } from './documents.ts';
10
+ import type { AdminMenuChild } from './menu.ts';
11
+ export declare const PLUGINS_PATH = "/admin/plugins";
12
+ export declare const PLUGINS_RELOAD_PATH = "/admin/plugins/reload";
13
+ export declare const PLUGINS_SECTION = "plugins";
14
+ export declare const PLUGINS_CHILD = "installed";
15
+ /** The id of a plugin's row, which a requirement links to. */
16
+ export declare function pluginAnchor(name: string): string;
17
+ /** The screens of the plugins running for this request, as menu entries. */
18
+ export declare function pluginScreens(c: Context<GeekityEnv>): AdminMenuChild[];
19
+ /** Where a plugin's screen is: under Plugins, by package name. */
20
+ export declare function pluginScreenPath(name: string): string;
21
+ export declare function mountPluginsScreen(app: Hono<GeekityEnv>, options: {
22
+ render: AdminRender;
23
+ }): void;
24
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/admin/plugins.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAa5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAKhD,eAAO,MAAM,YAAY,mBAA4B,CAAC;AACtD,eAAO,MAAM,mBAAmB,0BAA2B,CAAC;AAU5D,eAAO,MAAM,eAAe,YAAY,CAAC;AACzC,eAAO,MAAM,aAAa,cAAc,CAAC;AAgCzC,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,cAAc,EAAE,CAQtE;AAkBD,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,IAAI,CAqMhG"}
@@ -0,0 +1,312 @@
1
+ /**
2
+ * Admin > Plugins (decision-33): every installed plugin, where it stands, and
3
+ * the Enable and Disable buttons that write the `plugins` key of
4
+ * `content/_data/site.json`. The next request runs under the new set; there
5
+ * is nothing to restart.
6
+ */
7
+ import { readEnabledPlugins, setPluginEnabled } from '../plugins/enabled.js';
8
+ import { pluginFolderChanges, scanPluginFolders } from '../plugins/folder.js';
9
+ import { PACKAGE_NAME } from '../plugins/registry.js';
10
+ import { resolvePluginSettings, savePluginSettings, SECRETS_FILE } from '../plugins/settings.js';
11
+ import { pluginSite } from '../plugins/site.js';
12
+ import { flash } from './flash.js';
13
+ import { ADMIN_PREFIX } from './session.js';
14
+ import { ADMIN_TEMPLATES } from './templates.js';
15
+ export const PLUGINS_PATH = `${ADMIN_PREFIX}/plugins`;
16
+ export const PLUGINS_RELOAD_PATH = `${PLUGINS_PATH}/reload`;
17
+ const PLUGINS_ENABLE_PATH = `${PLUGINS_PATH}/enable`;
18
+ const PLUGINS_DISABLE_PATH = `${PLUGINS_PATH}/disable`;
19
+ /** The screen's own paths, which no plugin's screen can take. */
20
+ const RESERVED_PATHS = new Set([
21
+ PLUGINS_RELOAD_PATH,
22
+ PLUGINS_ENABLE_PATH,
23
+ PLUGINS_DISABLE_PATH,
24
+ ]);
25
+ export const PLUGINS_SECTION = 'plugins';
26
+ export const PLUGINS_CHILD = 'installed';
27
+ const PLUGIN_FIELD = 'plugin';
28
+ /** The query the new worker's screen is reached with after a reload. */
29
+ const RELOADED_QUERY = 'reloaded';
30
+ /** The form fields of a plugin's screen: which button, each box, each forget switch. */
31
+ const ACTION_FIELD = 'action';
32
+ const SAVE_ACTION = 'save';
33
+ const SETTING_PREFIX = 'setting.';
34
+ const FORGET_PREFIX = 'forget.';
35
+ /** The badge each state draws, from `components/badge.njk`. */
36
+ const STATE_BADGES = {
37
+ enabled: { status: 'active', label: 'Enabled' },
38
+ blocked: { status: 'pending', label: 'Enabled, not running' },
39
+ disabled: { status: 'hidden', label: 'Disabled' },
40
+ unavailable: { status: 'failed', label: 'Unavailable' },
41
+ };
42
+ /** How a requirement reads after "which is". */
43
+ const REQUIREMENT_WORDS = {
44
+ enabled: 'enabled',
45
+ blocked: 'enabled but not running',
46
+ disabled: 'disabled',
47
+ unavailable: 'unavailable',
48
+ missing: 'not installed',
49
+ };
50
+ /** The id of a plugin's row, which a requirement links to. */
51
+ export function pluginAnchor(name) {
52
+ return `plugin-${name.replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '')}`;
53
+ }
54
+ /** The screens of the plugins running for this request, as menu entries. */
55
+ export function pluginScreens(c) {
56
+ return c.var.plugins.plugins
57
+ .filter((entry) => hasScreen(entry) && c.var.activePlugins.has(entry.plugin.name))
58
+ .map((entry) => ({
59
+ child: entry.plugin.name,
60
+ label: entry.screen?.title ?? entry.plugin.label,
61
+ url: pluginScreenPath(entry.plugin.name),
62
+ }));
63
+ }
64
+ /**
65
+ * The package name a path under Plugins names a screen of, or `undefined` for
66
+ * the screen's own paths and anything deeper, such as an editor action's.
67
+ */
68
+ function screenName(c) {
69
+ const { pathname } = new URL(c.req.url);
70
+ if (RESERVED_PATHS.has(pathname))
71
+ return undefined;
72
+ const name = decodeURIComponent(pathname.slice(PLUGINS_PATH.length + 1));
73
+ return PACKAGE_NAME.test(name) ? name : undefined;
74
+ }
75
+ /** A plugin has a screen when it draws one or has settings to draw on one. */
76
+ function hasScreen(entry) {
77
+ return entry.screen !== undefined || entry.settings.length > 0;
78
+ }
79
+ /** Where a plugin's screen is: under Plugins, by package name. */
80
+ export function pluginScreenPath(name) {
81
+ return `${PLUGINS_PATH}/${name}`;
82
+ }
83
+ export function mountPluginsScreen(app, options) {
84
+ const { render } = options;
85
+ app.get(PLUGINS_PATH, (c) => {
86
+ const registry = c.var.plugins;
87
+ const enabled = readEnabledPlugins(c.var.config.contentDir);
88
+ const running = registry.active(enabled);
89
+ const supervision = c.var.supervision;
90
+ const changes = supervision === undefined
91
+ ? undefined
92
+ : pluginFolderChanges(supervision.loaded, scanPluginFolders(c.var.config.pluginsDir));
93
+ return render(c, ADMIN_TEMPLATES.plugins, {
94
+ section: PLUGINS_SECTION,
95
+ child: PLUGINS_CHILD,
96
+ reload: changes === undefined ? undefined : { url: PLUGINS_RELOAD_PATH, changes },
97
+ reloaded: c.req.query(RELOADED_QUERY) !== undefined,
98
+ reloadFailure: supervision?.lastFailure,
99
+ enableUrl: PLUGINS_ENABLE_PATH,
100
+ disableUrl: PLUGINS_DISABLE_PATH,
101
+ field: PLUGIN_FIELD,
102
+ plugins: registry.plugins.map(({ plugin, source, problem }) => {
103
+ const requirements = registry.requirements(plugin.name, enabled);
104
+ const state = problem !== undefined
105
+ ? 'unavailable'
106
+ : running.has(plugin.name)
107
+ ? 'enabled'
108
+ : enabled.has(plugin.name)
109
+ ? 'blocked'
110
+ : 'disabled';
111
+ return {
112
+ anchor: pluginAnchor(plugin.name),
113
+ name: plugin.name,
114
+ label: plugin.label,
115
+ description: plugin.description,
116
+ version: plugin.version,
117
+ source,
118
+ problem,
119
+ badge: STATE_BADGES[state],
120
+ requirements: requirements.map((requirement) => ({
121
+ ...requirement,
122
+ words: REQUIREMENT_WORDS[requirement.state],
123
+ satisfied: requirement.state === 'enabled',
124
+ anchor: requirement.state === 'missing' ? undefined : pluginAnchor(requirement.name),
125
+ })),
126
+ canEnable: state === 'disabled' && requirements.every((entry) => entry.state === 'enabled'),
127
+ canDisable: state === 'enabled' || state === 'blocked',
128
+ };
129
+ }),
130
+ });
131
+ });
132
+ app.post(PLUGINS_RELOAD_PATH, async (c) => {
133
+ const supervision = c.var.supervision;
134
+ if (supervision === undefined) {
135
+ return refuse(c, 'This server is not supervised by geekity serve, so it cannot reload.');
136
+ }
137
+ const outcome = await supervision.reload();
138
+ if (!outcome.ok)
139
+ return c.redirect(PLUGINS_PATH, 303);
140
+ c.header('Connection', 'close');
141
+ return c.redirect(`${PLUGINS_PATH}?${RELOADED_QUERY}=1`, 303);
142
+ });
143
+ app.post(PLUGINS_ENABLE_PATH, async (c) => {
144
+ const registry = c.var.plugins;
145
+ const found = registry.find(await submittedName(c));
146
+ if (found === undefined)
147
+ return refuse(c, 'No plugin by that name is installed.');
148
+ const { label, name } = found.plugin;
149
+ const contentDir = c.var.config.contentDir;
150
+ const enabled = readEnabledPlugins(contentDir);
151
+ const reason = found.problem ?? unmet(registry.requirements(name, enabled));
152
+ if (reason !== undefined)
153
+ return refuse(c, `${label} was not enabled. ${reason}`);
154
+ await setPluginEnabled({ contentDir, name, enabled: true });
155
+ await registry.reconcile(readEnabledPlugins(contentDir));
156
+ flash(c, 'notice', `${label} is enabled.`);
157
+ return c.redirect(PLUGINS_PATH, 303);
158
+ });
159
+ app.post(PLUGINS_DISABLE_PATH, async (c) => {
160
+ const registry = c.var.plugins;
161
+ const found = registry.find(await submittedName(c));
162
+ if (found === undefined)
163
+ return refuse(c, 'No plugin by that name is installed.');
164
+ const { label, name } = found.plugin;
165
+ const contentDir = c.var.config.contentDir;
166
+ const dependents = registry.enabledDependents(name, readEnabledPlugins(contentDir));
167
+ if (dependents.length > 0) {
168
+ const named = dependents.map((dependent) => described(registry, dependent));
169
+ const those = dependents.length === 1 ? 'that' : 'those';
170
+ const verb = dependents.length === 1 ? 'requires' : 'require';
171
+ return refuse(c, `${label} was not disabled. ${list(named)} ${verb} it; disable ${those} first.`);
172
+ }
173
+ await setPluginEnabled({ contentDir, name, enabled: false });
174
+ await registry.reconcile(readEnabledPlugins(contentDir));
175
+ flash(c, 'notice', `${label} is disabled.`);
176
+ return c.redirect(PLUGINS_PATH, 303);
177
+ });
178
+ app.get(`${PLUGINS_PATH}/*`, async (c, next) => {
179
+ const name = screenName(c);
180
+ if (name === undefined)
181
+ return next();
182
+ const found = screenedPlugin(c, name);
183
+ if (found === undefined)
184
+ return c.notFound();
185
+ return drawScreen(c, found, {});
186
+ });
187
+ app.post(`${PLUGINS_PATH}/*`, async (c, next) => {
188
+ const name = screenName(c);
189
+ if (name === undefined)
190
+ return next();
191
+ const found = screenedPlugin(c, name);
192
+ if (found === undefined)
193
+ return c.notFound();
194
+ const back = pluginScreenPath(found.plugin.name);
195
+ const body = await c.req.parseBody();
196
+ const pressed = body[ACTION_FIELD];
197
+ if (pressed === SAVE_ACTION && found.settings.length > 0) {
198
+ const values = {};
199
+ const forget = new Set();
200
+ for (const [field, value] of Object.entries(body)) {
201
+ if (typeof value !== 'string')
202
+ continue;
203
+ if (field.startsWith(SETTING_PREFIX))
204
+ values[field.slice(SETTING_PREFIX.length)] = value;
205
+ if (field.startsWith(FORGET_PREFIX))
206
+ forget.add(field.slice(FORGET_PREFIX.length));
207
+ }
208
+ const { problems } = await savePluginSettings({ ...found.settingsPlace, values, forget });
209
+ if (Object.keys(problems).length > 0) {
210
+ return drawScreen(c, found, { problems, submitted: values }, 400);
211
+ }
212
+ flash(c, 'notice', 'Settings saved.');
213
+ return c.redirect(back, 303);
214
+ }
215
+ const action = found.screen?.actions?.find((entry) => entry.id === pressed);
216
+ if (action === undefined) {
217
+ flash(c, 'error', 'That button is not on this screen.');
218
+ return c.redirect(back, 303);
219
+ }
220
+ try {
221
+ const outcome = await action.run({
222
+ site: pluginSite({ admin: c.var.admin, config: c.var.config }),
223
+ });
224
+ flash(c, outcome.ok ? 'notice' : 'error', outcome.message);
225
+ }
226
+ catch (error) {
227
+ const message = error instanceof Error ? error.message : String(error);
228
+ flash(c, 'error', `${action.label} failed: ${message}`);
229
+ }
230
+ return c.redirect(back, 303);
231
+ });
232
+ function screenedPlugin(c, name) {
233
+ const found = c.var.plugins.find(name);
234
+ return found !== undefined && hasScreen(found) && c.var.activePlugins.has(name)
235
+ ? found
236
+ : undefined;
237
+ }
238
+ function drawScreen(c, found, refused, status = 200) {
239
+ const { plugin, screen } = found;
240
+ const problems = refused.problems ?? {};
241
+ const settings = resolvePluginSettings(found.settingsPlace).map((entry) => settingView(entry, refused.submitted, problems[entry.field.key]));
242
+ c.status(status);
243
+ return render(c, ADMIN_TEMPLATES.pluginScreen, {
244
+ section: PLUGINS_SECTION,
245
+ child: plugin.name,
246
+ title: screen?.title ?? plugin.label,
247
+ cards: screen?.render({ site: pluginSite({ admin: c.var.admin, config: c.var.config }) }) ?? [],
248
+ postUrl: pluginScreenPath(plugin.name),
249
+ actionField: ACTION_FIELD,
250
+ saveAction: SAVE_ACTION,
251
+ actions: screen?.actions ?? [],
252
+ settings,
253
+ problems: settings.filter((entry) => entry.error !== undefined),
254
+ secretsFile: `data/plugins/${plugin.name}/${SECRETS_FILE}`,
255
+ });
256
+ }
257
+ function refuse(c, message) {
258
+ flash(c, 'error', message);
259
+ return c.redirect(PLUGINS_PATH, 303);
260
+ }
261
+ }
262
+ /**
263
+ * One field as the form draws it. A secret carries where it is set and never
264
+ * its value; a refused form shows what was typed in the public boxes.
265
+ */
266
+ function settingView(entry, submitted, error) {
267
+ const { field } = entry;
268
+ const shown = submitted === undefined
269
+ ? entry.value
270
+ : field.type === 'checkbox'
271
+ ? submitted[field.key] !== undefined
272
+ : (submitted[field.key] ?? '');
273
+ return {
274
+ key: field.key,
275
+ type: field.type,
276
+ id: `plugin-setting-${field.key}`,
277
+ name: `${SETTING_PREFIX}${field.key}`,
278
+ forgetName: `${FORGET_PREFIX}${field.key}`,
279
+ label: field.label,
280
+ hint: field.hint,
281
+ value: field.type !== 'secret' && typeof shown === 'string' ? shown : '',
282
+ checked: shown === true,
283
+ options: field.type === 'select'
284
+ ? field.options.map((option) => ({ ...option, selected: option.value === shown }))
285
+ : [],
286
+ error,
287
+ stored: entry.problem,
288
+ source: entry.source,
289
+ variable: entry.variable,
290
+ };
291
+ }
292
+ /** Why the requirements stop an enable, one sentence each, or `undefined`. */
293
+ function unmet(requirements) {
294
+ const sentences = requirements
295
+ .filter((requirement) => requirement.state !== 'enabled')
296
+ .map((requirement) => `It requires ${requirement.name} ${requirement.range}, which is ${REQUIREMENT_WORDS[requirement.state]}.`);
297
+ return sentences.length === 0 ? undefined : sentences.join(' ');
298
+ }
299
+ function described(registry, name) {
300
+ const label = registry.find(name)?.plugin.label;
301
+ return label === undefined ? name : `${label} (${name})`;
302
+ }
303
+ function list(items) {
304
+ if (items.length <= 1)
305
+ return items.join('');
306
+ return `${items.slice(0, -1).join(', ')} and ${items.at(-1) ?? ''}`;
307
+ }
308
+ async function submittedName(c) {
309
+ const value = (await c.req.parseBody())[PLUGIN_FIELD];
310
+ return typeof value === 'string' ? value : '';
311
+ }
312
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/admin/plugins.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/admin/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAwD5C,kCAAkC;AAClC,eAAO,MAAM,UAAU,iBAA0B,CAAC;AAClD,sCAAsC;AACtC,eAAO,MAAM,UAAU,iBAA0B,CAAC;AAClD,mCAAmC;AACnC,eAAO,MAAM,WAAW,kBAA2B,CAAC;AAEpD,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,yCAAyC;AACzC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CA0WtD;AA8CD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAsD/C,CAAC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/admin/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAK7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AA0D5C,kCAAkC;AAClC,eAAO,MAAM,UAAU,iBAA0B,CAAC;AAClD,sCAAsC;AACtC,eAAO,MAAM,UAAU,iBAA0B,CAAC;AAClD,mCAAmC;AACnC,eAAO,MAAM,WAAW,kBAA2B,CAAC;AAEpD,iDAAiD;AACjD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,yCAAyC;AACzC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAgXtD;AA8CD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,iBAAiB,CAAC,UAAU,CAsD/C,CAAC"}
@@ -26,6 +26,8 @@ import { ADMIN_TEMPLATES, createAdminTemplateEnvironment } from './templates.js'
26
26
  import { clientAddress, createLoginThrottle, describeWait, loginKeys } from './throttle.js';
27
27
  import { mountToolsScreen } from './tools.js';
28
28
  import { mountPersonalDataScreen } from './personal-data.js';
29
+ import { mountEditorActions } from './editor-actions.js';
30
+ import { mountPluginsScreen, pluginScreens } from './plugins.js';
29
31
  import { mountUploads, refuseOversizedUpload, UPLOADS_PATH } from './uploads.js';
30
32
  import { editUserPath, mountUsers } from './users.js';
31
33
  /** Where the login form lives. */
@@ -110,7 +112,7 @@ export function mountAdmin(app) {
110
112
  siteUrl: '/',
111
113
  newPostUrl: newEditorPath(POST_KIND),
112
114
  assetPrefix: ADMIN_ASSET_PREFIX,
113
- navigation: adminMenu({ section: name(context['section']), child: name(context['child']) }),
115
+ navigation: adminMenu({ section: name(context['section']), child: name(context['child']) }, pluginScreens(c)),
114
116
  logoutUrl: LOGOUT_PATH,
115
117
  csrfToken: session?.csrfToken ?? '',
116
118
  cspNonce: c.var.cspNonce ?? '',
@@ -301,6 +303,8 @@ export function mountAdmin(app) {
301
303
  // What the site is wearing: the themes on disk, and the one setting that
302
304
  // says which of them (decision-15).
303
305
  mountAppearanceScreen(app, { render });
306
+ mountEditorActions(app);
307
+ mountPluginsScreen(app, { render });
304
308
  // The jobs a site runs rather than the things it sets: reading every file
305
309
  // back into the index, on a site that is serving.
306
310
  mountToolsScreen(app, { render });