@geekity/cms 0.25.0 → 0.27.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 (82) hide show
  1. package/README.md +2 -1
  2. package/admin/pages/documents/editor.njk +3 -0
  3. package/admin/pages/plugins/confirm.njk +42 -0
  4. package/admin/pages/plugins/installed.njk +85 -3
  5. package/admin/static/admin.css +15 -0
  6. package/admin/static/editor-actions.js +13 -3
  7. package/dist/admin/documents.d.ts +3 -0
  8. package/dist/admin/documents.d.ts.map +1 -1
  9. package/dist/admin/documents.js +12 -3
  10. package/dist/admin/documents.js.map +1 -1
  11. package/dist/admin/editor-actions.d.ts.map +1 -1
  12. package/dist/admin/editor-actions.js +20 -1
  13. package/dist/admin/editor-actions.js.map +1 -1
  14. package/dist/admin/plugins.d.ts +6 -0
  15. package/dist/admin/plugins.d.ts.map +1 -1
  16. package/dist/admin/plugins.js +274 -3
  17. package/dist/admin/plugins.js.map +1 -1
  18. package/dist/admin/taxonomy.d.ts +4 -1
  19. package/dist/admin/taxonomy.d.ts.map +1 -1
  20. package/dist/admin/taxonomy.js +11 -7
  21. package/dist/admin/taxonomy.js.map +1 -1
  22. package/dist/admin/templates.d.ts +1 -0
  23. package/dist/admin/templates.d.ts.map +1 -1
  24. package/dist/admin/templates.js +1 -0
  25. package/dist/admin/templates.js.map +1 -1
  26. package/dist/cli.d.ts.map +1 -1
  27. package/dist/cli.js +55 -19
  28. package/dist/cli.js.map +1 -1
  29. package/dist/config.d.ts +8 -0
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +1 -0
  32. package/dist/config.js.map +1 -1
  33. package/dist/content/parser.d.ts.map +1 -1
  34. package/dist/content/parser.js +2 -1
  35. package/dist/content/parser.js.map +1 -1
  36. package/dist/content/store.d.ts +21 -3
  37. package/dist/content/store.d.ts.map +1 -1
  38. package/dist/content/store.js +169 -42
  39. package/dist/content/store.js.map +1 -1
  40. package/dist/content/tags.d.ts +26 -0
  41. package/dist/content/tags.d.ts.map +1 -0
  42. package/dist/content/tags.js +41 -0
  43. package/dist/content/tags.js.map +1 -0
  44. package/dist/federation/article.d.ts.map +1 -1
  45. package/dist/federation/article.js +3 -1
  46. package/dist/federation/article.js.map +1 -1
  47. package/dist/notify.js +2 -2
  48. package/dist/notify.js.map +1 -1
  49. package/dist/plugin.d.ts +19 -0
  50. package/dist/plugin.d.ts.map +1 -1
  51. package/dist/plugin.js +8 -0
  52. package/dist/plugin.js.map +1 -1
  53. package/dist/plugins/changes.d.ts +31 -0
  54. package/dist/plugins/changes.d.ts.map +1 -0
  55. package/dist/plugins/changes.js +40 -0
  56. package/dist/plugins/changes.js.map +1 -0
  57. package/dist/plugins/install.d.ts +30 -3
  58. package/dist/plugins/install.d.ts.map +1 -1
  59. package/dist/plugins/install.js +43 -15
  60. package/dist/plugins/install.js.map +1 -1
  61. package/dist/plugins/manage.d.ts +32 -0
  62. package/dist/plugins/manage.d.ts.map +1 -0
  63. package/dist/plugins/manage.js +101 -0
  64. package/dist/plugins/manage.js.map +1 -0
  65. package/dist/plugins/registry.js +1 -1
  66. package/dist/plugins/registry.js.map +1 -1
  67. package/dist/plugins/upgrade.d.ts +54 -0
  68. package/dist/plugins/upgrade.d.ts.map +1 -0
  69. package/dist/plugins/upgrade.js +240 -0
  70. package/dist/plugins/upgrade.js.map +1 -0
  71. package/dist/web/routes.d.ts.map +1 -1
  72. package/dist/web/routes.js +25 -12
  73. package/dist/web/routes.js.map +1 -1
  74. package/dist/web/taxonomy.d.ts +7 -1
  75. package/dist/web/taxonomy.d.ts.map +1 -1
  76. package/dist/web/taxonomy.js +24 -8
  77. package/dist/web/taxonomy.js.map +1 -1
  78. package/package.json +4 -1
  79. package/themes/default/README.md +2 -2
  80. package/themes/default/layouts/base.njk +1 -1
  81. package/themes/default/layouts/tag.njk +1 -1
  82. package/themes/default/partials/tags.njk +1 -1
@@ -0,0 +1,101 @@
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
+ notice(options.next),
40
+ ],
41
+ };
42
+ });
43
+ }
44
+ /** Update the named folder plugins, or every one when `only` is `undefined`. */
45
+ export async function updatePlugins(options, only) {
46
+ return await serialized(options, async () => {
47
+ const report = await upgradePlugins({ ...options, only, addAdvice: ADD_WITH_FORM });
48
+ const changes = report.plugins.flatMap((plugin) => plugin.status === 'upgraded'
49
+ ? [{ action: 'update', name: plugin.name, from: plugin.from, to: plugin.to }]
50
+ : []);
51
+ return {
52
+ changes,
53
+ outcomes: [
54
+ ...report.plugins.map((plugin) => ({
55
+ kind: UPGRADE_KINDS[plugin.status],
56
+ message: `${plugin.name}: ${describeUpgrade(plugin)}`,
57
+ })),
58
+ ...report.unmet.flatMap(({ name, notes }) => notes.map((note) => warning(`${name}: ${note}`))),
59
+ ...(changes.length > 0 ? [notice(options.next)] : []),
60
+ ],
61
+ };
62
+ });
63
+ }
64
+ export async function deletePlugin(options, name) {
65
+ return await serialized(options, async () => {
66
+ const version = installedFolders(options.pluginsDir).get(name);
67
+ await removePlugin(name, options);
68
+ return {
69
+ changes: [{ action: 'remove', name, from: version }],
70
+ outcomes: [
71
+ notice(version === undefined ? `Removed ${name}.` : `Removed ${name} ${version}.`),
72
+ notice(options.next),
73
+ ],
74
+ };
75
+ });
76
+ }
77
+ const UPGRADE_KINDS = {
78
+ upgraded: 'notice',
79
+ available: 'notice',
80
+ newest: 'notice',
81
+ held: 'warning',
82
+ skipped: 'warning',
83
+ failed: 'error',
84
+ };
85
+ async function serialized(options, change) {
86
+ const folder = path.resolve(options.pluginsDir);
87
+ return await withFileLock(folder, async () => {
88
+ const { changes, outcomes } = await change();
89
+ if (changes.length > 0)
90
+ updateChecksByPluginsFolder.delete(folder);
91
+ await recordPluginChanges(options.dataDir, { user: options.user, at: options.now }, changes);
92
+ return outcomes;
93
+ });
94
+ }
95
+ function notice(message) {
96
+ return { kind: 'notice', message };
97
+ }
98
+ function warning(message) {
99
+ return { kind: 'warning', message };
100
+ }
101
+ //# 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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAgBhD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,GACd,MAAM,eAAe,CAAC;AA8FvB,2CAA2C;AAC3C,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,IAAY,EAAE,KAAa,EAAE,MAAc;QACrD,KAAK,CAAC,yBAAyB,IAAI,cAAc,KAAK,iBAAiB,MAAM,GAAG,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,YAAY,GAAI,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAAyB;KAC/F,OAAO,CAAC;AAEX,oDAAoD;AACpD,MAAM,CAAC,MAAM,YAAY,GAAG,0DAA0D,CAAC;AACvF,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAqC,EACrC,OAA8B;IAE9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAClF,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClD,MAAM,aAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC5C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,MAAM,UAAU,GAAG,CACjB,QAAgB,EAChB,UAAsB,EACK,EAAE;QAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,SAAS,UAAU,iCAAiC,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,CAAC,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,2GAA2G,CACrK,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,uBAAuB,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAU,CAA8B,CAAC;IAC/D,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAClC,KAAK,CAAC,OAAO,KAAK,SAAS;YACzB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC;YAC7C,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,OAAO,KAAK,SAAS;YAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,UAAU,GAAG,IAAI,CAAC;IAElB,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEvD,SAAS,OAAO,CAAC,IAAY;QAC3B,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,cAAc,CAAC,IAAY;QAClC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,sBAAsB,CAAC;QACvD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,yCAAyC,eAAe,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oDAAoD,CAAC;QACnK,CAAC;QACD,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,gCAAgC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACrF,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/E,MAAM,OAAO,GACX,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;YACxF,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;gBAAE,SAAS;YACxE,OAAO,UAAU,KAAK,YAAY;gBAChC,CAAC,CAAC,YAAY,YAAY,IAAI,KAAK,sBAAsB,OAAO,GAAG;gBACnE,CAAC,CAAC,YAAY,UAAU,IAAI,KAAK,SAAS,OAAO,gBAAgB,CAAC;QACtE,CAAC;QACD,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,OAAO,eAAe,UAAU,IAAI,KAAK,2BAA2B,CAAC;YACvE,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,eAAe,UAAU,IAAI,KAAK,yBAAyB,CAAC;YACrE,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAuB,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC;QAC1E,OAAO;YACL,GAAG,KAAK;YACR,GAAG,QAAQ;YACX,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YACnC,aAAa,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,EAAE;SAClF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC;IAEtF,SAAS,MAAM,CAAC,OAA4B;QAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACjC,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAClF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAK,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAE7C,SAAS,UAAU,CAAC,IAAyB;QAC3C,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,UAAqC;QAC3D,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YACtC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,MAAc;QACxC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,OAAO;QACP,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC;QACnE,OAAO;QACP,MAAM;QAEN,YAAY,CAAC,IAAI,EAAE,OAAO;YACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,IAAI,EAAE,UAAU;gBAChB,KAAK;gBACL,KAAK,EAAE,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;aACtD,CAAC,CAAC,CAAC;QACN,CAAC;QAED,iBAAiB,CAAC,IAAI,EAAE,OAAO;YAC7B,OAAO,OAAO;iBACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;iBACjD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;iBAC3F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,SAAS,CAAC,OAAO;YACf,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;gBAC3B,IAAI,MAAM;oBAAE,OAAO;gBACnB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7C,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;oBAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBACjE,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK;YACH,OAAO,UAAU,CAAC,KAAK,IAAI,EAAE;gBAC3B,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;IAEF,SAAS,gBAAgB,CACvB,UAAkB,EAClB,OAA4B,EAC5B,OAA4B;QAE5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAC;QAChD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS;YAAE,OAAO,aAAa,CAAC;QAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAwB;IAC5C,MAAM,EAAE,EAAE;IACV,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE;CAClB,CAAC;AAaF;;;;GAIG;AACH,SAAS,QAAQ,CACf,MAAc,EACd,OAA8B,EAC9B,UAG8B;IAE9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,CAAC,MAAM,GAAG,gBAAgB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/D,OAAO;YACL,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,0DAA0D;YAC1F,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,gBAAgB,EAAE,CAAC;QAC3E,OAAO;YACL,OAAO,EAAE,+BAA+B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,oCAAoC,MAAM,CAAC,gBAAgB,CAAC,GAAG;YAC7H,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,UAAU,GAAiC,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,aAAa,GAAyB,EAAE,CAAC;IAC/C,IAAI,MAAgC,CAAC;IACrC,IAAI,QAAmD,CAAC;IACxD,IAAI,OAAoC,CAAC;IACzC,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB,SAAS,SAAS,CAAC,IAAY;QAC7B,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,aAAa,IAAI,+BAA+B,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,IAAI,GAAe;QACvB,UAAU,EAAE,gBAAgB;QAC5B,IAAI;QACJ,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;QAC7C,GAAG,CAAC,IAAI,EAAE,OAAO;YACf,SAAS,CAAC,SAAS,CAAC,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,UAAU,CAAC,UAAU;YACnB,SAAS,CAAC,yBAAyB,CAAC,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,CAAC,QAAQ;YACb,SAAS,CAAC,UAAU,CAAC,CAAC;YACtB,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YAC9E,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,QAAQ;YACd,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QACD,YAAY,CAAC,QAAQ;YACnB,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,gEAAgE,CAC/F,CAAC;YACJ,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,4CAA4C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAClF,CAAC;YACJ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE;QAClC,KAAK,EAAE,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;QAC1D,OAAO,CAAC,KAAK;YACX,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,uFAAuF,CAC/F,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;QACnD,QAAQ,CACN,MAAc;YAEd,SAAS,CAAC,cAAc,CAAC,CAAC;YAC1B,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YACpD,QAAQ,GAAG,MAAM,CAAC;YAClB,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YAC3C,OAAO;gBACL,sEAAsE;gBACtE,iEAAiE;gBACjE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAgC;aAC1F,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,EAAE,aAAa,EAAE;YAC3F,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACzF,QAAQ,EAAE,gBAAgB;SAC3B,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,WAAW,GAAG,KAAK,CAAC;IACtB,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,cAAc,GAAG,gCAAgC,CAAC;AAExD,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,IAAY;IAC5D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE/C,SAAS,MAAM,CAAC,IAAY;QAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACrE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,MAAc,EAAE,IAAsB;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,OAAO,MAAM,CAAC,IAAI,aAAa,IAAI,YAAY,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,KAAwB;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACrC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,GAAG,CACZ,IAAI,EACJ,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,OAA0B;IAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC3C,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,SAAS,KAAK,CAAC,IAAY;QACzB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,SAAS;YACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,UAAU,CAAC,CAAC;gBAClB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxE,CAAC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QAC9C,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,MAA0B,CAAC;QAC/B,GAAG,CAAC;YACF,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,QAAQ,MAAM,KAAK,IAAI,EAAE;QAE1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,SAAsC;IAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,SAAS,KAAK,CAAC,KAAuB;QACpC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,QAAQ,KAAK,SAAS;gBAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,SAAS;QAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugins/registry.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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/plugins/upgrade.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/web/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AAK7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AA6D5C,OAAO,KAAK,EAAkC,UAAU,EAAc,MAAM,YAAY,CAAC;AAyDzF,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CA0K3D;AAi9CD,kEAAkE;AAClE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AA6BD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,YAAY,GAAG,SAAS,EAC9B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,aAAa,GACnB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAEvE;AAMD,4BAA4B;AAC5B,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAO1D"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/web/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AAK7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AA6D5C,OAAO,KAAK,EAAkC,UAAU,EAAc,MAAM,YAAY,CAAC;AAyDzF,OAAO,KAAK,EAAY,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE3E;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CA0K3D;AA4+CD,kEAAkE;AAClE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AA6BD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,YAAY,GAAG,SAAS,EAC9B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,aAAa,GACnB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAEvE;AAMD,4BAA4B;AAC5B,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAO1D"}
@@ -295,8 +295,11 @@ function resolveRequest(c) {
295
295
  const feedRequest = parseFeedPath(store, pathname, bases, authors);
296
296
  if (feedRequest !== undefined) {
297
297
  const { target, format } = feedRequest;
298
- if (!feedRequest.canonical)
299
- return c.redirect(feedTargetHref(target, format, bases), 301);
298
+ const canonical = feedTargetHref(target, format, bases);
299
+ if (!feedRequest.canonical ||
300
+ isCarriedTagFeedInAnotherCasing(store, target, canonical, pathname)) {
301
+ return c.redirect(canonical, 301);
302
+ }
300
303
  return target.kind === 'listing'
301
304
  ? feed(c, format, target.subject)
302
305
  : comments(c, target.document);
@@ -355,7 +358,7 @@ function resolveRequest(c) {
355
358
  // representations a listing has.
356
359
  if (LISTING_REPRESENTATIONS.includes(extension.representation)) {
357
360
  for (const candidate of extension.paths) {
358
- const request = listingRequestAt(pages, candidate, bases, authors);
361
+ const request = listingRequestAt(store, pages, candidate, bases, authors);
359
362
  if (request === undefined)
360
363
  continue;
361
364
  const canonical = canonicalRedirect(candidate);
@@ -415,7 +418,7 @@ function movedHref(store, pages, pathname, representation) {
415
418
  function taxonomyArchive(c, pathname, bases, authors) {
416
419
  if (!pathname.endsWith('/'))
417
420
  return undefined;
418
- const request = parseListingPath(pathname, bases, authors);
421
+ const request = parseListingPath(c.var.store, pathname, bases, authors);
419
422
  if (request?.term === undefined)
420
423
  return undefined;
421
424
  // An archive that answers is served; only once nothing carries the term is
@@ -459,7 +462,7 @@ function hiddenDocumentForSignedInHtml(c, pathname) {
459
462
  function authorArchive(c, pathname, bases, authors) {
460
463
  if (!pathname.endsWith('/'))
461
464
  return undefined;
462
- const request = parseListingPath(pathname, bases, authors);
465
+ const request = parseListingPath(c.var.store, pathname, bases, authors);
463
466
  if (request?.author === undefined)
464
467
  return undefined;
465
468
  const canonical = authorHref(request.author.user.username, request.pageNumber);
@@ -494,7 +497,7 @@ function parseFeedPath(store, pathname, bases, authors) {
494
497
  ? { target: { kind: 'comments', document: undefined }, format, canonical }
495
498
  : undefined;
496
499
  }
497
- const root = parseListingPath(split.root, bases, authors);
500
+ const root = parseListingPath(store, split.root, bases, authors);
498
501
  // Only a listing root has a feed, and only its first page: a feed is not
499
502
  // paginated, so `/{base}/x/page/2/feed/` names nothing.
500
503
  if (root !== undefined) {
@@ -710,7 +713,7 @@ function canonicalTarget(c, pathname, bases, authors) {
710
713
  const moved = movedHref(store, pages, pathname, undefined);
711
714
  if (moved !== undefined)
712
715
  return moved;
713
- const listing = listingRequestAt(pages, pathname, bases, authors);
716
+ const listing = listingRequestAt(store, pages, pathname, bases, authors);
714
717
  if (listing === undefined)
715
718
  return undefined;
716
719
  // The home listing and an author archive both exist with nothing on them; a
@@ -762,11 +765,11 @@ function frontPages(c) {
762
765
  * A site whose homepage is a page and which named no posts page has no home
763
766
  * listing at all, so nothing under the root is one either.
764
767
  */
765
- function listingRequestAt(pages, pathname, bases, authors) {
768
+ function listingRequestAt(store, pages, pathname, bases, authors) {
766
769
  const onPostsPage = pages.posts === undefined ? undefined : postsPageRequest(pages.posts, pathname);
767
770
  if (onPostsPage !== undefined)
768
771
  return onPostsPage;
769
- const request = parseListingPath(pathname, bases, authors);
772
+ const request = parseListingPath(store, pathname, bases, authors);
770
773
  if (request === undefined)
771
774
  return undefined;
772
775
  // Only the home listing can be homeless. A tag archive and a person's
@@ -828,7 +831,7 @@ function postsPageRequest(document, pathname) {
828
831
  * either taxonomy's `/{base}/x/` and `/{base}/x/page/N/`, as a listing to
829
832
  * check.
830
833
  */
831
- function parseListingPath(pathname, bases, authors) {
834
+ function parseListingPath(store, pathname, bases, authors) {
832
835
  const segments = pathname.split('/').filter((segment) => segment !== '');
833
836
  if (segments.length === 0)
834
837
  return { term: undefined, pageNumber: 0 };
@@ -845,9 +848,10 @@ function parseListingPath(pathname, bases, authors) {
845
848
  return found === undefined ? undefined : { author: found, pageNumber: byAuthor.pageNumber };
846
849
  }
847
850
  const taxonomy = taxonomyForSegment(segments[0], bases);
848
- if (taxonomy === undefined || segments[1] === undefined)
851
+ const named = segments[1];
852
+ if (taxonomy === undefined || named === undefined)
849
853
  return undefined;
850
- const term = { taxonomy, term: segments[1] };
854
+ const term = { taxonomy, term: asTheSiteSpellsIt(store, taxonomy, named) };
851
855
  if (segments.length === 2)
852
856
  return { term, pageNumber: 0 };
853
857
  if (segments.length === 4 && segments[2] === PAGE_SEGMENT) {
@@ -856,6 +860,15 @@ function parseListingPath(pathname, bases, authors) {
856
860
  }
857
861
  return undefined;
858
862
  }
863
+ function asTheSiteSpellsIt(store, taxonomy, term) {
864
+ return taxonomy === 'tag' ? (store.tagSpelling(term) ?? term) : term;
865
+ }
866
+ function isCarriedTagFeedInAnotherCasing(store, target, canonical, pathname) {
867
+ return (target.kind === 'listing' &&
868
+ target.subject.term?.taxonomy === 'tag' &&
869
+ canonical !== encodePath(pathname) &&
870
+ countListing(store, target.subject) > 0);
871
+ }
859
872
  /** How many published documents a listing holds. */
860
873
  function countListing(store, subject) {
861
874
  const { term, author } = subject;