@geekity/cms 0.26.0 → 0.28.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 (232) hide show
  1. package/README.md +169 -33
  2. package/admin/layouts/shell.njk +6 -0
  3. package/admin/pages/documents/editor.njk +4 -0
  4. package/admin/pages/plugins/confirm.njk +42 -0
  5. package/admin/pages/plugins/installed.njk +86 -4
  6. package/admin/pages/tools/dev-mode.njk +47 -0
  7. package/admin/static/admin.css +15 -0
  8. package/admin/static/editor-actions.js +13 -9
  9. package/admin/static/editor.js +31 -17
  10. package/dist/admin/dev-mode.d.ts +9 -0
  11. package/dist/admin/dev-mode.d.ts.map +1 -0
  12. package/dist/admin/dev-mode.js +42 -0
  13. package/dist/admin/dev-mode.js.map +1 -0
  14. package/dist/admin/documents.d.ts +3 -0
  15. package/dist/admin/documents.d.ts.map +1 -1
  16. package/dist/admin/documents.js +12 -3
  17. package/dist/admin/documents.js.map +1 -1
  18. package/dist/admin/editor-actions.js +3 -1
  19. package/dist/admin/editor-actions.js.map +1 -1
  20. package/dist/admin/federation.d.ts.map +1 -1
  21. package/dist/admin/federation.js +2 -0
  22. package/dist/admin/federation.js.map +1 -1
  23. package/dist/admin/menu.d.ts.map +1 -1
  24. package/dist/admin/menu.js +2 -0
  25. package/dist/admin/menu.js.map +1 -1
  26. package/dist/admin/own-paragraph.d.ts +7 -0
  27. package/dist/admin/own-paragraph.d.ts.map +1 -0
  28. package/dist/admin/own-paragraph.js +9 -0
  29. package/dist/admin/own-paragraph.js.map +1 -0
  30. package/dist/admin/plugins.d.ts +6 -0
  31. package/dist/admin/plugins.d.ts.map +1 -1
  32. package/dist/admin/plugins.js +287 -5
  33. package/dist/admin/plugins.js.map +1 -1
  34. package/dist/admin/preview.d.ts.map +1 -1
  35. package/dist/admin/preview.js +4 -1
  36. package/dist/admin/preview.js.map +1 -1
  37. package/dist/admin/routes.d.ts.map +1 -1
  38. package/dist/admin/routes.js +4 -0
  39. package/dist/admin/routes.js.map +1 -1
  40. package/dist/admin/settings-email.d.ts.map +1 -1
  41. package/dist/admin/settings-email.js +4 -0
  42. package/dist/admin/settings-email.js.map +1 -1
  43. package/dist/admin/store.d.ts +4 -2
  44. package/dist/admin/store.d.ts.map +1 -1
  45. package/dist/admin/store.js +1 -1
  46. package/dist/admin/store.js.map +1 -1
  47. package/dist/admin/taxonomy.d.ts +4 -1
  48. package/dist/admin/taxonomy.d.ts.map +1 -1
  49. package/dist/admin/taxonomy.js +11 -7
  50. package/dist/admin/taxonomy.js.map +1 -1
  51. package/dist/admin/templates.d.ts +2 -0
  52. package/dist/admin/templates.d.ts.map +1 -1
  53. package/dist/admin/templates.js +2 -0
  54. package/dist/admin/templates.js.map +1 -1
  55. package/dist/admin/uploads.d.ts +7 -1
  56. package/dist/admin/uploads.d.ts.map +1 -1
  57. package/dist/admin/uploads.js +33 -30
  58. package/dist/admin/uploads.js.map +1 -1
  59. package/dist/cli.d.ts +1 -1
  60. package/dist/cli.d.ts.map +1 -1
  61. package/dist/cli.js +127 -25
  62. package/dist/cli.js.map +1 -1
  63. package/dist/comments/index.d.ts +1 -1
  64. package/dist/comments/index.d.ts.map +1 -1
  65. package/dist/comments/index.js +1 -1
  66. package/dist/comments/index.js.map +1 -1
  67. package/dist/comments/records.d.ts +1 -0
  68. package/dist/comments/records.d.ts.map +1 -1
  69. package/dist/comments/records.js +39 -10
  70. package/dist/comments/records.js.map +1 -1
  71. package/dist/config.d.ts +29 -0
  72. package/dist/config.d.ts.map +1 -1
  73. package/dist/config.js +3 -0
  74. package/dist/config.js.map +1 -1
  75. package/dist/content/markdown.d.ts.map +1 -1
  76. package/dist/content/markdown.js +33 -1
  77. package/dist/content/markdown.js.map +1 -1
  78. package/dist/content/migrated.d.ts +6 -0
  79. package/dist/content/migrated.d.ts.map +1 -0
  80. package/dist/content/migrated.js +12 -0
  81. package/dist/content/migrated.js.map +1 -0
  82. package/dist/content/original.d.ts +3 -0
  83. package/dist/content/original.d.ts.map +1 -0
  84. package/dist/content/original.js +12 -0
  85. package/dist/content/original.js.map +1 -0
  86. package/dist/content/parser.d.ts +5 -0
  87. package/dist/content/parser.d.ts.map +1 -1
  88. package/dist/content/parser.js +3 -2
  89. package/dist/content/parser.js.map +1 -1
  90. package/dist/content/schedule.d.ts +7 -0
  91. package/dist/content/schedule.d.ts.map +1 -1
  92. package/dist/content/schedule.js +11 -2
  93. package/dist/content/schedule.js.map +1 -1
  94. package/dist/content/store.d.ts +21 -3
  95. package/dist/content/store.d.ts.map +1 -1
  96. package/dist/content/store.js +169 -42
  97. package/dist/content/store.js.map +1 -1
  98. package/dist/content/sync.d.ts.map +1 -1
  99. package/dist/content/sync.js +27 -5
  100. package/dist/content/sync.js.map +1 -1
  101. package/dist/content/tags.d.ts +26 -0
  102. package/dist/content/tags.d.ts.map +1 -0
  103. package/dist/content/tags.js +41 -0
  104. package/dist/content/tags.js.map +1 -0
  105. package/dist/content/video.d.ts +12 -0
  106. package/dist/content/video.d.ts.map +1 -0
  107. package/dist/content/video.js +91 -0
  108. package/dist/content/video.js.map +1 -0
  109. package/dist/dev-mode.d.ts +28 -0
  110. package/dist/dev-mode.d.ts.map +1 -0
  111. package/dist/dev-mode.js +64 -0
  112. package/dist/dev-mode.js.map +1 -0
  113. package/dist/drain.d.ts +9 -3
  114. package/dist/drain.d.ts.map +1 -1
  115. package/dist/drain.js +24 -3
  116. package/dist/drain.js.map +1 -1
  117. package/dist/federation/article.d.ts.map +1 -1
  118. package/dist/federation/article.js +3 -1
  119. package/dist/federation/article.js.map +1 -1
  120. package/dist/federation/delivery.d.ts +2 -0
  121. package/dist/federation/delivery.d.ts.map +1 -1
  122. package/dist/federation/delivery.js +46 -16
  123. package/dist/federation/delivery.js.map +1 -1
  124. package/dist/federation/inbox.d.ts.map +1 -1
  125. package/dist/federation/inbox.js +13 -3
  126. package/dist/federation/inbox.js.map +1 -1
  127. package/dist/federation/mount.d.ts.map +1 -1
  128. package/dist/federation/mount.js +8 -4
  129. package/dist/federation/mount.js.map +1 -1
  130. package/dist/federation/relays.d.ts.map +1 -1
  131. package/dist/federation/relays.js +16 -1
  132. package/dist/federation/relays.js.map +1 -1
  133. package/dist/index.d.ts +2 -0
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +16 -4
  136. package/dist/index.js.map +1 -1
  137. package/dist/indexnow.d.ts +1 -1
  138. package/dist/indexnow.d.ts.map +1 -1
  139. package/dist/indexnow.js +7 -0
  140. package/dist/indexnow.js.map +1 -1
  141. package/dist/mail/service.d.ts +3 -1
  142. package/dist/mail/service.d.ts.map +1 -1
  143. package/dist/mail/service.js +17 -0
  144. package/dist/mail/service.js.map +1 -1
  145. package/dist/notify.d.ts +1 -1
  146. package/dist/notify.d.ts.map +1 -1
  147. package/dist/notify.js +9 -2
  148. package/dist/notify.js.map +1 -1
  149. package/dist/plugin.d.ts +75 -4
  150. package/dist/plugin.d.ts.map +1 -1
  151. package/dist/plugin.js +8 -0
  152. package/dist/plugin.js.map +1 -1
  153. package/dist/plugins/changes.d.ts +31 -0
  154. package/dist/plugins/changes.d.ts.map +1 -0
  155. package/dist/plugins/changes.js +40 -0
  156. package/dist/plugins/changes.js.map +1 -0
  157. package/dist/plugins/folder.d.ts +2 -0
  158. package/dist/plugins/folder.d.ts.map +1 -1
  159. package/dist/plugins/folder.js +26 -5
  160. package/dist/plugins/folder.js.map +1 -1
  161. package/dist/plugins/install.d.ts +30 -3
  162. package/dist/plugins/install.d.ts.map +1 -1
  163. package/dist/plugins/install.js +43 -15
  164. package/dist/plugins/install.js.map +1 -1
  165. package/dist/plugins/manage.d.ts +34 -0
  166. package/dist/plugins/manage.d.ts.map +1 -0
  167. package/dist/plugins/manage.js +98 -0
  168. package/dist/plugins/manage.js.map +1 -0
  169. package/dist/plugins/registry.js +1 -1
  170. package/dist/plugins/registry.js.map +1 -1
  171. package/dist/plugins/site.d.ts.map +1 -1
  172. package/dist/plugins/site.js +56 -0
  173. package/dist/plugins/site.js.map +1 -1
  174. package/dist/plugins/upgrade.d.ts +54 -0
  175. package/dist/plugins/upgrade.d.ts.map +1 -0
  176. package/dist/plugins/upgrade.js +240 -0
  177. package/dist/plugins/upgrade.js.map +1 -0
  178. package/dist/supervisor/control.d.ts +15 -0
  179. package/dist/supervisor/control.d.ts.map +1 -0
  180. package/dist/supervisor/control.js +89 -0
  181. package/dist/supervisor/control.js.map +1 -0
  182. package/dist/supervisor/primary.d.ts +18 -4
  183. package/dist/supervisor/primary.d.ts.map +1 -1
  184. package/dist/supervisor/primary.js +128 -16
  185. package/dist/supervisor/primary.js.map +1 -1
  186. package/dist/supervisor/protocol.d.ts +12 -0
  187. package/dist/supervisor/protocol.d.ts.map +1 -1
  188. package/dist/supervisor/protocol.js +21 -2
  189. package/dist/supervisor/protocol.js.map +1 -1
  190. package/dist/supervisor/supervision.d.ts +1 -0
  191. package/dist/supervisor/supervision.d.ts.map +1 -1
  192. package/dist/supervisor/supervision.js +14 -1
  193. package/dist/supervisor/supervision.js.map +1 -1
  194. package/dist/supervisor/worker.d.ts.map +1 -1
  195. package/dist/supervisor/worker.js +31 -6
  196. package/dist/supervisor/worker.js.map +1 -1
  197. package/dist/web/context.d.ts +7 -0
  198. package/dist/web/context.d.ts.map +1 -1
  199. package/dist/web/context.js +7 -4
  200. package/dist/web/context.js.map +1 -1
  201. package/dist/web/feed-item.d.ts +7 -6
  202. package/dist/web/feed-item.d.ts.map +1 -1
  203. package/dist/web/feed-item.js +5 -4
  204. package/dist/web/feed-item.js.map +1 -1
  205. package/dist/web/feed-rss.d.ts +2 -2
  206. package/dist/web/feed-rss.js +2 -2
  207. package/dist/web/redirects.d.ts +17 -10
  208. package/dist/web/redirects.d.ts.map +1 -1
  209. package/dist/web/redirects.js +83 -49
  210. package/dist/web/redirects.js.map +1 -1
  211. package/dist/web/routes.d.ts.map +1 -1
  212. package/dist/web/routes.js +25 -12
  213. package/dist/web/routes.js.map +1 -1
  214. package/dist/web/taxonomy.d.ts +7 -1
  215. package/dist/web/taxonomy.d.ts.map +1 -1
  216. package/dist/web/taxonomy.js +24 -8
  217. package/dist/web/taxonomy.js.map +1 -1
  218. package/dist/webmention/service.d.ts +1 -1
  219. package/dist/webmention/service.d.ts.map +1 -1
  220. package/dist/webmention/service.js +12 -2
  221. package/dist/webmention/service.js.map +1 -1
  222. package/package.json +1 -1
  223. package/themes/default/README.md +154 -3
  224. package/themes/default/layouts/base.njk +12 -3
  225. package/themes/default/layouts/post.njk +8 -2
  226. package/themes/default/layouts/tag.njk +1 -1
  227. package/themes/default/partials/body-end.njk +1 -0
  228. package/themes/default/partials/conversation.njk +1 -1
  229. package/themes/default/partials/head-end.njk +1 -0
  230. package/themes/default/partials/tags.njk +1 -1
  231. package/themes/default/src/style.css +4 -0
  232. package/themes/default/static/style.css +8 -0
@@ -0,0 +1,34 @@
1
+ import type { FlashKind } from '../admin/store.ts';
2
+ import type { PluginRelease, PluginUpgrade, UpgradeReport } from './upgrade.ts';
3
+ export interface ManageOptions {
4
+ pluginsDir: string;
5
+ registry: string;
6
+ coreVersion: string;
7
+ /** The site config's plugins: never changed here, but their ranges count. */
8
+ configured: readonly PluginRelease[];
9
+ contentDir: string;
10
+ dataDir: string;
11
+ /** The admin making the change, for the record. */
12
+ user: string;
13
+ now: Date;
14
+ }
15
+ export interface ManageOutcome {
16
+ kind: FlashKind;
17
+ message: string;
18
+ }
19
+ export interface ManageResult {
20
+ changed: boolean;
21
+ outcomes: ManageOutcome[];
22
+ }
23
+ export interface UpdateCheck {
24
+ at: Date;
25
+ plugins: readonly PluginUpgrade[];
26
+ }
27
+ export declare function lastUpdateCheck(pluginsDir: string): UpdateCheck | undefined;
28
+ /** Look for newer versions of every folder plugin, and keep the answer for the screen. */
29
+ export declare function checkForUpdates(options: Omit<ManageOptions, 'user' | 'contentDir' | 'dataDir'>, only?: readonly string[]): Promise<UpgradeReport>;
30
+ export declare function installPlugin(options: ManageOptions, spec: string): Promise<ManageResult>;
31
+ /** Update the named folder plugins, or every one when `only` is `undefined`. */
32
+ export declare function updatePlugins(options: ManageOptions, only: readonly string[] | undefined): Promise<ManageResult>;
33
+ export declare function deletePlugin(options: ManageOptions, name: string): Promise<ManageResult>;
34
+ //# sourceMappingURL=manage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../src/plugins/manage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAanD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEhF,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAID,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;CACnC;AAID,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE3E;AAED,0FAA0F;AAC1F,wBAAsB,eAAe,CACnC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC,EAC/D,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,aAAa,CAAC,CASxB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAuB/F;AAED,gFAAgF;AAChF,wBAAsB,aAAa,CACjC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAClC,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAW9F"}
@@ -0,0 +1,98 @@
1
+ import path from 'node:path';
2
+ import { withFileLock } from '../files/atomic.js';
3
+ import { recordPluginChanges } from './changes.js';
4
+ import { addPlugin, installedFolders, parsePackageSpec, removePlugin, requirementNotes, } from './install.js';
5
+ import { describeUpgrade, upgradePlugins } from './upgrade.js';
6
+ const ADD_WITH_FORM = (name) => `Add ${name} with the Add plugin form.`;
7
+ const updateChecksByPluginsFolder = new Map();
8
+ export function lastUpdateCheck(pluginsDir) {
9
+ return updateChecksByPluginsFolder.get(path.resolve(pluginsDir));
10
+ }
11
+ /** Look for newer versions of every folder plugin, and keep the answer for the screen. */
12
+ export async function checkForUpdates(options, only) {
13
+ const report = await upgradePlugins({ ...options, only, check: true, addAdvice: ADD_WITH_FORM });
14
+ if (only === undefined) {
15
+ updateChecksByPluginsFolder.set(path.resolve(options.pluginsDir), {
16
+ at: options.now,
17
+ plugins: report.plugins,
18
+ });
19
+ }
20
+ return report;
21
+ }
22
+ export async function installPlugin(options, spec) {
23
+ const parsed = parsePackageSpec(spec);
24
+ return await serialized(options, async () => {
25
+ const { manifest, replaced } = await addPlugin(parsed, options);
26
+ const { name, version } = manifest;
27
+ const installed = new Map([
28
+ ...options.configured.map((plugin) => [plugin.name, plugin.version]),
29
+ ...installedFolders(options.pluginsDir),
30
+ ]);
31
+ const done = replaced === undefined || replaced === version
32
+ ? `Added ${name} ${version}.`
33
+ : `Replaced ${name} ${replaced} with ${version}.`;
34
+ return {
35
+ changes: [{ action: 'add', name, to: version, from: replaced }],
36
+ outcomes: [
37
+ notice(done),
38
+ ...requirementNotes(manifest, installed, options.coreVersion, ADD_WITH_FORM).map((note) => warning(`${name}: ${note}`)),
39
+ ],
40
+ };
41
+ });
42
+ }
43
+ /** Update the named folder plugins, or every one when `only` is `undefined`. */
44
+ export async function updatePlugins(options, only) {
45
+ return await serialized(options, async () => {
46
+ const report = await upgradePlugins({ ...options, only, addAdvice: ADD_WITH_FORM });
47
+ const changes = report.plugins.flatMap((plugin) => plugin.status === 'upgraded'
48
+ ? [{ action: 'update', name: plugin.name, from: plugin.from, to: plugin.to }]
49
+ : []);
50
+ return {
51
+ changes,
52
+ outcomes: [
53
+ ...report.plugins.map((plugin) => ({
54
+ kind: UPGRADE_KINDS[plugin.status],
55
+ message: `${plugin.name}: ${describeUpgrade(plugin)}`,
56
+ })),
57
+ ...report.unmet.flatMap(({ name, notes }) => notes.map((note) => warning(`${name}: ${note}`))),
58
+ ],
59
+ };
60
+ });
61
+ }
62
+ export async function deletePlugin(options, name) {
63
+ return await serialized(options, async () => {
64
+ const version = installedFolders(options.pluginsDir).get(name);
65
+ await removePlugin(name, options);
66
+ return {
67
+ changes: [{ action: 'remove', name, from: version }],
68
+ outcomes: [
69
+ notice(version === undefined ? `Removed ${name}.` : `Removed ${name} ${version}.`),
70
+ ],
71
+ };
72
+ });
73
+ }
74
+ const UPGRADE_KINDS = {
75
+ upgraded: 'notice',
76
+ available: 'notice',
77
+ newest: 'notice',
78
+ held: 'warning',
79
+ skipped: 'warning',
80
+ failed: 'error',
81
+ };
82
+ async function serialized(options, change) {
83
+ const folder = path.resolve(options.pluginsDir);
84
+ return await withFileLock(folder, async () => {
85
+ const { changes, outcomes } = await change();
86
+ if (changes.length > 0)
87
+ updateChecksByPluginsFolder.delete(folder);
88
+ await recordPluginChanges(options.dataDir, { user: options.user, at: options.now }, changes);
89
+ return { changed: changes.length > 0, outcomes };
90
+ });
91
+ }
92
+ function notice(message) {
93
+ return { kind: 'notice', message };
94
+ }
95
+ function warning(message) {
96
+ return { kind: 'warning', message };
97
+ }
98
+ //# sourceMappingURL=manage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manage.js","sourceRoot":"","sources":["../../src/plugins/manage.ts"],"names":[],"mappings":"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"}
@@ -222,7 +222,7 @@ function register(plugin, options, serviceFor) {
222
222
  declared: NOTHING_DECLARED,
223
223
  };
224
224
  }
225
- if (!Number.isInteger(plugin.hostApi) || plugin.hostApi > HOST_API_VERSION) {
225
+ if (plugin.hostApi !== HOST_API_VERSION) {
226
226
  return {
227
227
  problem: `It targets host API version ${String(plugin.hostApi)}, and this core provides version ${String(HOST_API_VERSION)}.`,
228
228
  declared: NOTHING_DECLARED,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../src/plugins/site.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,aAAa,GAAE,SAAS,eAAe,EAAO,GAC7C,cAAc,CAqBhB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,UAAU,CA2C7F"}
1
+ {"version":3,"file":"site.d.ts","sourceRoot":"","sources":["../../src/plugins/site.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAInE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErE,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,aAAa,GAAE,SAAS,eAAe,EAAO,GAC7C,cAAc,CAqBhB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GAAG,UAAU,CAoE7F"}
@@ -4,8 +4,13 @@
4
4
  * installs. Shared by requests and the command line, so a plugin's command
5
5
  * and its federation read the same files the same way.
6
6
  */
7
+ import path from 'node:path';
7
8
  import { listUsers, setUserActorId } from '../admin/accounts.js';
8
9
  import { readSiteSettings } from '../admin/settings.js';
10
+ import { acceptUpload, refusedUpload } from '../admin/uploads.js';
11
+ import { renderCommentMarkdown } from '../comments/markdown.js';
12
+ import { commentsFile, putComments, readComments } from '../comments/records.js';
13
+ import { slugForPermalink } from '../content/parser.js';
9
14
  import { readFileIfPresentSync } from '../files/atomic.js';
10
15
  import { actorKeyFile, loadActorKeyPairs, writeActorKeyFile } from '../federation/keys.js';
11
16
  import { addFollower, readFollowers } from '../federation/records.js';
@@ -35,6 +40,7 @@ export function pluginSite(options) {
35
40
  const { contentDir, dataDir } = config;
36
41
  return {
37
42
  baseUrl: config.baseUrl,
43
+ contentDir,
38
44
  users: () => listUsers(dataDir).map((user) => ({
39
45
  username: user.username,
40
46
  ...(user.actorId === undefined ? {} : { actorId: user.actorId }),
@@ -62,6 +68,56 @@ export function pluginSite(options) {
62
68
  async addFollower(username, follower) {
63
69
  await addFollower({ admin, contentDir }, username, follower);
64
70
  },
71
+ checkUpload(name, bytes) {
72
+ const outcome = acceptUpload(name, '', bytes, config);
73
+ return refusedUpload(outcome)
74
+ ? { accepted: false, why: outcome.error }
75
+ : { accepted: true, bytes: outcome.bytes };
76
+ },
77
+ comments(permalink) {
78
+ const slug = postSlug(permalink);
79
+ return {
80
+ file: path.relative(contentDir, commentsFile(contentDir, slug)).split(path.sep).join('/'),
81
+ comments: readComments({ contentDir, dataDir }, slug).map(pluginCommentOf),
82
+ };
83
+ },
84
+ async putComments(permalink, comments) {
85
+ await putComments({ admin, contentDir, dataDir }, postSlug(permalink), permalink, comments.map(commentRecordOf));
86
+ },
87
+ };
88
+ }
89
+ function postSlug(permalink) {
90
+ const slug = slugForPermalink(permalink);
91
+ if (slug === undefined)
92
+ throw new Error(`${permalink} names no post a comment can be on.`);
93
+ return slug;
94
+ }
95
+ function pluginCommentOf(comment) {
96
+ return {
97
+ id: comment.id,
98
+ source: comment.source,
99
+ kind: comment.kind,
100
+ status: comment.status,
101
+ author: { ...comment.author },
102
+ markdown: comment.content.markdown,
103
+ submitted: comment.submitted,
104
+ inReplyTo: comment.inReplyTo,
105
+ url: comment.url,
106
+ };
107
+ }
108
+ function commentRecordOf(comment) {
109
+ return {
110
+ id: comment.id,
111
+ source: comment.source,
112
+ kind: comment.kind,
113
+ status: comment.status,
114
+ author: { ...comment.author },
115
+ content: { markdown: comment.markdown, html: renderCommentMarkdown(comment.markdown) },
116
+ submitted: comment.submitted,
117
+ addressHash: null,
118
+ inReplyTo: comment.inReplyTo,
119
+ url: comment.url,
120
+ notify: false,
65
121
  };
66
122
  }
67
123
  //# sourceMappingURL=site.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"site.js","sourceRoot":"","sources":["../../src/plugins/site.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"site.js","sourceRoot":"","sources":["../../src/plugins/site.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { AddAdvice } from './install.ts';
2
+ type Ranges = Readonly<Record<string, string>>;
3
+ export interface PluginRelease {
4
+ readonly name: string;
5
+ readonly version: string;
6
+ readonly peerDependencies: Ranges;
7
+ }
8
+ export type PluginUpgrade = {
9
+ readonly name: string;
10
+ readonly status: 'upgraded' | 'available';
11
+ readonly from: string;
12
+ readonly to: string;
13
+ readonly heldBack: string | undefined;
14
+ } | {
15
+ readonly name: string;
16
+ readonly status: 'newest';
17
+ readonly version: string;
18
+ } | {
19
+ readonly name: string;
20
+ readonly status: 'held';
21
+ readonly version: string;
22
+ readonly reason: string;
23
+ } | {
24
+ readonly name: string;
25
+ readonly status: 'skipped';
26
+ readonly reason: string;
27
+ } | {
28
+ readonly name: string;
29
+ readonly status: 'failed';
30
+ readonly from: string;
31
+ readonly to: string;
32
+ readonly reason: string;
33
+ };
34
+ export interface UpgradeReport {
35
+ readonly plugins: readonly PluginUpgrade[];
36
+ readonly unmet: readonly {
37
+ readonly name: string;
38
+ readonly notes: readonly string[];
39
+ }[];
40
+ }
41
+ export interface UpgradeOptions {
42
+ pluginsDir: string;
43
+ registry: string;
44
+ coreVersion: string;
45
+ configured?: readonly PluginRelease[];
46
+ only?: readonly string[] | undefined;
47
+ check?: boolean;
48
+ addAdvice: AddAdvice;
49
+ }
50
+ export declare function upgradePlugins(options: UpgradeOptions): Promise<UpgradeReport>;
51
+ /** What became of one plugin, as a clause after its name. */
52
+ export declare function describeUpgrade(plugin: PluginUpgrade): string;
53
+ export {};
54
+ //# sourceMappingURL=upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/plugins/upgrade.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,KAAK,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC9E;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC9E;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;CACzF;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACtC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA0GpF;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAmB7D"}
@@ -0,0 +1,240 @@
1
+ import semver from 'semver';
2
+ import { readPluginManifest, scanPluginFolders } from './folder.js';
3
+ import { addPlugin, CORE_PACKAGE, fetchPackument, requirementNotes } from './install.js';
4
+ export async function upgradePlugins(options) {
5
+ const { pluginsDir, registry, coreVersion } = options;
6
+ const installed = new Map();
7
+ for (const folder of scanPluginFolders(pluginsDir)) {
8
+ installed.set(folder.name, installedRelease(folder.directory));
9
+ }
10
+ const targets = [...new Set(options.only ?? installed.keys())];
11
+ const results = new Map();
12
+ const releases = new Map();
13
+ const newest = new Map();
14
+ for (const plugin of options.configured ?? [])
15
+ releases.set(plugin.name, [plugin]);
16
+ for (const [name, release] of installed) {
17
+ if (typeof release !== 'string')
18
+ releases.set(name, [release]);
19
+ }
20
+ await Promise.all(targets.map(async (name) => {
21
+ const current = installed.get(name);
22
+ if (current === undefined) {
23
+ results.set(name, skipped(name, `it is not in the plugins folder, ${pluginsDir}.`));
24
+ return;
25
+ }
26
+ if (typeof current === 'string') {
27
+ results.set(name, skipped(name, current));
28
+ return;
29
+ }
30
+ let document;
31
+ try {
32
+ document = await fetchPackument(name, registry);
33
+ }
34
+ catch (error) {
35
+ results.set(name, skipped(name, error instanceof Error ? error.message : String(error)));
36
+ return;
37
+ }
38
+ const newer = newerReleases(name, current.version, document);
39
+ const runnable = newer.filter((release) => coreAccepts(release, coreVersion));
40
+ releases.set(name, [...runnable, current]);
41
+ if (newer[0] !== undefined)
42
+ newest.set(name, newer[0]);
43
+ }));
44
+ const chosen = newestThatFit(releases);
45
+ const why = (release) => heldBackReason(release, chosen, coreVersion);
46
+ const upgrades = [];
47
+ for (const name of targets) {
48
+ if (results.has(name))
49
+ continue;
50
+ const from = (releases.get(name)?.at(-1)).version;
51
+ const to = chosen.get(name);
52
+ const best = newest.get(name);
53
+ if (to.version !== from) {
54
+ upgrades.push(to);
55
+ const heldBack = best !== undefined && best.version !== to.version ? why(best) : undefined;
56
+ results.set(name, { name, status: 'available', from, to: to.version, heldBack });
57
+ }
58
+ else if (best === undefined) {
59
+ results.set(name, { name, status: 'newest', version: from });
60
+ }
61
+ else {
62
+ results.set(name, { name, status: 'held', version: from, reason: why(best) });
63
+ }
64
+ }
65
+ const final = new Map([...releases].map(([name, list]) => [name, list.at(-1)]));
66
+ if (options.check === true) {
67
+ for (const release of upgrades)
68
+ final.set(release.name, release);
69
+ }
70
+ else {
71
+ for (const release of dependencyOrder(upgrades)) {
72
+ const result = results.get(release.name);
73
+ const missing = pluginRanges(release).find(([dependency, range]) => {
74
+ const provider = final.get(dependency);
75
+ return provider !== undefined && !semver.satisfies(provider.version, range);
76
+ });
77
+ if (missing !== undefined) {
78
+ const [dependency, range] = missing;
79
+ results.set(release.name, {
80
+ name: release.name,
81
+ status: 'held',
82
+ version: result.from,
83
+ reason: `${release.version} requires ${dependency} ${range}, and upgrading ${dependency} failed.`,
84
+ });
85
+ continue;
86
+ }
87
+ try {
88
+ await addPlugin({ name: release.name, wanted: release.version }, { pluginsDir, registry });
89
+ final.set(release.name, release);
90
+ results.set(release.name, { ...result, status: 'upgraded' });
91
+ }
92
+ catch (error) {
93
+ results.set(release.name, {
94
+ name: release.name,
95
+ status: 'failed',
96
+ from: result.from,
97
+ to: release.version,
98
+ reason: error instanceof Error ? error.message : String(error),
99
+ });
100
+ }
101
+ }
102
+ }
103
+ const versions = new Map([...final].map(([name, release]) => [name, release.version]));
104
+ const unmet = [...installed.keys()].flatMap((name) => {
105
+ const release = final.get(name);
106
+ if (release === undefined)
107
+ return [];
108
+ const notes = requirementNotes(release, versions, coreVersion, options.addAdvice);
109
+ return notes.length === 0 ? [] : [{ name, notes }];
110
+ });
111
+ return { plugins: targets.map((name) => results.get(name)), unmet };
112
+ }
113
+ /** What became of one plugin, as a clause after its name. */
114
+ export function describeUpgrade(plugin) {
115
+ switch (plugin.status) {
116
+ case 'upgraded':
117
+ case 'available': {
118
+ const done = plugin.status === 'upgraded'
119
+ ? `upgraded from ${plugin.from} to ${plugin.to}.`
120
+ : `${plugin.from} can be upgraded to ${plugin.to}.`;
121
+ return plugin.heldBack === undefined ? done : `${done} ${plugin.heldBack}`;
122
+ }
123
+ case 'newest':
124
+ return `${plugin.version} is the newest.`;
125
+ case 'held':
126
+ return `held back at ${plugin.version}: ${plugin.reason}`;
127
+ case 'skipped':
128
+ return `skipped: ${plugin.reason}`;
129
+ case 'failed':
130
+ return `upgrading from ${plugin.from} to ${plugin.to} failed: ${plugin.reason}`;
131
+ }
132
+ }
133
+ function skipped(name, reason) {
134
+ return { name, status: 'skipped', reason };
135
+ }
136
+ function installedRelease(directory) {
137
+ try {
138
+ const manifest = readPluginManifest(directory);
139
+ if (manifest === undefined)
140
+ return 'it has no plugin.json.';
141
+ if (semver.valid(manifest.version) === null) {
142
+ return `its plugin.json names version ${JSON.stringify(manifest.version)}, which is not a semver version.`;
143
+ }
144
+ return manifest;
145
+ }
146
+ catch (error) {
147
+ return error instanceof Error ? error.message : String(error);
148
+ }
149
+ }
150
+ function newerReleases(name, installed, document) {
151
+ const latest = document['dist-tags']?.['latest'];
152
+ return Object.entries(document.versions ?? {})
153
+ .filter(([version]) => semver.valid(version) !== null &&
154
+ semver.prerelease(version) === null &&
155
+ semver.gt(version, installed) &&
156
+ (latest === undefined || semver.valid(latest) === null || semver.lte(version, latest)))
157
+ .map(([version, entry]) => ({ name, version, peerDependencies: entry?.peerDependencies ?? {} }))
158
+ .sort((a, b) => semver.rcompare(a.version, b.version));
159
+ }
160
+ function coreAccepts(release, coreVersion) {
161
+ const range = release.peerDependencies[CORE_PACKAGE];
162
+ return range === undefined || semver.satisfies(coreVersion, range);
163
+ }
164
+ function pluginRanges(release) {
165
+ return Object.entries(release.peerDependencies).filter(([name]) => name !== CORE_PACKAGE);
166
+ }
167
+ function newestThatFit(newestFirstToInstalled) {
168
+ const index = new Map([...newestFirstToInstalled.keys()].map((name) => [name, 0]));
169
+ const at = (name) => newestFirstToInstalled.get(name)?.[index.get(name) ?? 0];
170
+ const stepDown = (name) => {
171
+ const position = index.get(name) ?? 0;
172
+ if (position >= (newestFirstToInstalled.get(name)?.length ?? 0) - 1)
173
+ return false;
174
+ index.set(name, position + 1);
175
+ return true;
176
+ };
177
+ const stepDownOneConflict = () => {
178
+ for (const name of newestFirstToInstalled.keys()) {
179
+ for (const [dependency, range] of pluginRanges(at(name))) {
180
+ const provider = at(dependency);
181
+ if (provider === undefined) {
182
+ if (stepDown(name))
183
+ return true;
184
+ }
185
+ else if (!semver.satisfies(provider.version, range)) {
186
+ const providerTooNew = semver.gtr(provider.version, range);
187
+ const [likelyFix, otherFix] = providerTooNew ? [dependency, name] : [name, dependency];
188
+ if (stepDown(likelyFix) || stepDown(otherFix))
189
+ return true;
190
+ }
191
+ }
192
+ }
193
+ return false;
194
+ };
195
+ while (stepDownOneConflict())
196
+ ;
197
+ return new Map([...newestFirstToInstalled.keys()].map((name) => [name, at(name)]));
198
+ }
199
+ function heldBackReason(release, chosen, coreVersion) {
200
+ const { name, version } = release;
201
+ const core = release.peerDependencies[CORE_PACKAGE];
202
+ if (core !== undefined && !semver.satisfies(coreVersion, core)) {
203
+ return `${version} needs ${CORE_PACKAGE} ${core}, and this core is ${coreVersion}.`;
204
+ }
205
+ for (const [dependency, range] of pluginRanges(release)) {
206
+ const provider = chosen.get(dependency);
207
+ if (provider === undefined) {
208
+ return `${version} requires ${dependency} ${range}, which is not installed.`;
209
+ }
210
+ if (!semver.satisfies(provider.version, range)) {
211
+ return `${version} requires ${dependency} ${range}, and ${dependency} is at ${provider.version}.`;
212
+ }
213
+ }
214
+ for (const consumer of chosen.values()) {
215
+ const range = consumer.peerDependencies[name];
216
+ if (range !== undefined && !semver.satisfies(version, range)) {
217
+ return `${consumer.name} ${consumer.version} requires ${name} ${range}.`;
218
+ }
219
+ }
220
+ return `${version} cannot be installed beside the other plugins.`;
221
+ }
222
+ function dependencyOrder(releases) {
223
+ const byName = new Map(releases.map((release) => [release.name, release]));
224
+ const ordered = [];
225
+ const visit = (release, seen) => {
226
+ if (ordered.includes(release) || seen.has(release.name))
227
+ return;
228
+ seen.add(release.name);
229
+ for (const [dependency] of pluginRanges(release)) {
230
+ const required = byName.get(dependency);
231
+ if (required !== undefined)
232
+ visit(required, seen);
233
+ }
234
+ ordered.push(release);
235
+ };
236
+ for (const release of releases)
237
+ visit(release, new Set());
238
+ return ordered;
239
+ }
240
+ //# sourceMappingURL=upgrade.js.map