@geekity/cms 0.27.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.
- package/README.md +168 -33
- package/admin/layouts/shell.njk +6 -0
- package/admin/pages/documents/editor.njk +4 -0
- package/admin/pages/plugins/installed.njk +1 -1
- package/admin/pages/tools/dev-mode.njk +47 -0
- package/admin/static/admin.css +8 -0
- package/admin/static/editor-actions.js +13 -9
- package/admin/static/editor.js +31 -17
- package/dist/admin/dev-mode.d.ts +9 -0
- package/dist/admin/dev-mode.d.ts.map +1 -0
- package/dist/admin/dev-mode.js +42 -0
- package/dist/admin/dev-mode.js.map +1 -0
- package/dist/admin/editor-actions.js +3 -1
- package/dist/admin/editor-actions.js.map +1 -1
- package/dist/admin/federation.d.ts.map +1 -1
- package/dist/admin/federation.js +2 -0
- package/dist/admin/federation.js.map +1 -1
- package/dist/admin/menu.d.ts.map +1 -1
- package/dist/admin/menu.js +2 -0
- package/dist/admin/menu.js.map +1 -1
- package/dist/admin/own-paragraph.d.ts +7 -0
- package/dist/admin/own-paragraph.d.ts.map +1 -0
- package/dist/admin/own-paragraph.js +9 -0
- package/dist/admin/own-paragraph.js.map +1 -0
- package/dist/admin/plugins.d.ts.map +1 -1
- package/dist/admin/plugins.js +19 -8
- package/dist/admin/plugins.js.map +1 -1
- package/dist/admin/preview.d.ts.map +1 -1
- package/dist/admin/preview.js +4 -1
- package/dist/admin/preview.js.map +1 -1
- package/dist/admin/routes.d.ts.map +1 -1
- package/dist/admin/routes.js +4 -0
- package/dist/admin/routes.js.map +1 -1
- package/dist/admin/settings-email.d.ts.map +1 -1
- package/dist/admin/settings-email.js +4 -0
- package/dist/admin/settings-email.js.map +1 -1
- package/dist/admin/store.d.ts +4 -2
- package/dist/admin/store.d.ts.map +1 -1
- package/dist/admin/store.js +1 -1
- package/dist/admin/store.js.map +1 -1
- package/dist/admin/templates.d.ts +1 -0
- package/dist/admin/templates.d.ts.map +1 -1
- package/dist/admin/templates.js +1 -0
- package/dist/admin/templates.js.map +1 -1
- package/dist/admin/uploads.d.ts +7 -1
- package/dist/admin/uploads.d.ts.map +1 -1
- package/dist/admin/uploads.js +33 -30
- package/dist/admin/uploads.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +76 -10
- package/dist/cli.js.map +1 -1
- package/dist/comments/index.d.ts +1 -1
- package/dist/comments/index.d.ts.map +1 -1
- package/dist/comments/index.js +1 -1
- package/dist/comments/index.js.map +1 -1
- package/dist/comments/records.d.ts +1 -0
- package/dist/comments/records.d.ts.map +1 -1
- package/dist/comments/records.js +39 -10
- package/dist/comments/records.js.map +1 -1
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +33 -1
- package/dist/content/markdown.js.map +1 -1
- package/dist/content/migrated.d.ts +6 -0
- package/dist/content/migrated.d.ts.map +1 -0
- package/dist/content/migrated.js +12 -0
- package/dist/content/migrated.js.map +1 -0
- package/dist/content/original.d.ts +3 -0
- package/dist/content/original.d.ts.map +1 -0
- package/dist/content/original.js +12 -0
- package/dist/content/original.js.map +1 -0
- package/dist/content/parser.d.ts +5 -0
- package/dist/content/parser.d.ts.map +1 -1
- package/dist/content/parser.js +1 -1
- package/dist/content/parser.js.map +1 -1
- package/dist/content/schedule.d.ts +7 -0
- package/dist/content/schedule.d.ts.map +1 -1
- package/dist/content/schedule.js +11 -2
- package/dist/content/schedule.js.map +1 -1
- package/dist/content/sync.d.ts.map +1 -1
- package/dist/content/sync.js +27 -5
- package/dist/content/sync.js.map +1 -1
- package/dist/content/video.d.ts +12 -0
- package/dist/content/video.d.ts.map +1 -0
- package/dist/content/video.js +91 -0
- package/dist/content/video.js.map +1 -0
- package/dist/dev-mode.d.ts +28 -0
- package/dist/dev-mode.d.ts.map +1 -0
- package/dist/dev-mode.js +64 -0
- package/dist/dev-mode.js.map +1 -0
- package/dist/drain.d.ts +9 -3
- package/dist/drain.d.ts.map +1 -1
- package/dist/drain.js +24 -3
- package/dist/drain.js.map +1 -1
- package/dist/federation/delivery.d.ts +2 -0
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +46 -16
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/inbox.d.ts.map +1 -1
- package/dist/federation/inbox.js +13 -3
- package/dist/federation/inbox.js.map +1 -1
- package/dist/federation/mount.d.ts.map +1 -1
- package/dist/federation/mount.js +8 -4
- package/dist/federation/mount.js.map +1 -1
- package/dist/federation/relays.d.ts.map +1 -1
- package/dist/federation/relays.js +16 -1
- package/dist/federation/relays.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -4
- package/dist/index.js.map +1 -1
- package/dist/indexnow.d.ts +1 -1
- package/dist/indexnow.d.ts.map +1 -1
- package/dist/indexnow.js +7 -0
- package/dist/indexnow.js.map +1 -1
- package/dist/mail/service.d.ts +3 -1
- package/dist/mail/service.d.ts.map +1 -1
- package/dist/mail/service.js +17 -0
- package/dist/mail/service.js.map +1 -1
- package/dist/notify.d.ts +1 -1
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +7 -0
- package/dist/notify.js.map +1 -1
- package/dist/plugin.d.ts +67 -4
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/dist/plugins/folder.d.ts +2 -0
- package/dist/plugins/folder.d.ts.map +1 -1
- package/dist/plugins/folder.js +26 -5
- package/dist/plugins/folder.js.map +1 -1
- package/dist/plugins/manage.d.ts +8 -6
- package/dist/plugins/manage.d.ts.map +1 -1
- package/dist/plugins/manage.js +1 -4
- package/dist/plugins/manage.js.map +1 -1
- package/dist/plugins/site.d.ts.map +1 -1
- package/dist/plugins/site.js +56 -0
- package/dist/plugins/site.js.map +1 -1
- package/dist/supervisor/control.d.ts +15 -0
- package/dist/supervisor/control.d.ts.map +1 -0
- package/dist/supervisor/control.js +89 -0
- package/dist/supervisor/control.js.map +1 -0
- package/dist/supervisor/primary.d.ts +18 -4
- package/dist/supervisor/primary.d.ts.map +1 -1
- package/dist/supervisor/primary.js +128 -16
- package/dist/supervisor/primary.js.map +1 -1
- package/dist/supervisor/protocol.d.ts +12 -0
- package/dist/supervisor/protocol.d.ts.map +1 -1
- package/dist/supervisor/protocol.js +21 -2
- package/dist/supervisor/protocol.js.map +1 -1
- package/dist/supervisor/supervision.d.ts +1 -0
- package/dist/supervisor/supervision.d.ts.map +1 -1
- package/dist/supervisor/supervision.js +14 -1
- package/dist/supervisor/supervision.js.map +1 -1
- package/dist/supervisor/worker.d.ts.map +1 -1
- package/dist/supervisor/worker.js +31 -6
- package/dist/supervisor/worker.js.map +1 -1
- package/dist/web/context.d.ts +7 -0
- package/dist/web/context.d.ts.map +1 -1
- package/dist/web/context.js +7 -4
- package/dist/web/context.js.map +1 -1
- package/dist/web/feed-item.d.ts +7 -6
- package/dist/web/feed-item.d.ts.map +1 -1
- package/dist/web/feed-item.js +5 -4
- package/dist/web/feed-item.js.map +1 -1
- package/dist/web/feed-rss.d.ts +2 -2
- package/dist/web/feed-rss.js +2 -2
- package/dist/web/redirects.d.ts +17 -10
- package/dist/web/redirects.d.ts.map +1 -1
- package/dist/web/redirects.js +83 -49
- package/dist/web/redirects.js.map +1 -1
- package/dist/webmention/service.d.ts +1 -1
- package/dist/webmention/service.d.ts.map +1 -1
- package/dist/webmention/service.js +12 -2
- package/dist/webmention/service.js.map +1 -1
- package/package.json +1 -1
- package/themes/default/README.md +152 -1
- package/themes/default/layouts/base.njk +11 -2
- package/themes/default/layouts/post.njk +8 -2
- package/themes/default/partials/body-end.njk +1 -0
- package/themes/default/partials/conversation.njk +1 -1
- package/themes/default/partials/head-end.njk +1 -0
- package/themes/default/src/style.css +4 -0
- package/themes/default/static/style.css +8 -0
|
@@ -9,12 +9,16 @@
|
|
|
9
9
|
* empties its queues, goes read-only) before the new one is forked, so the
|
|
10
10
|
* new worker's boot migrations run alone.
|
|
11
11
|
*
|
|
12
|
-
* This module is the state machine alone. The workers, the clock
|
|
13
|
-
* process are handed in, so the order of a reload is tested without
|
|
12
|
+
* This module is the state machine alone. The workers, the clock, the folder
|
|
13
|
+
* and the process are handed in, so the order of a reload is tested without
|
|
14
14
|
* starting a process; {@link superviseCluster} binds it to `node:cluster`.
|
|
15
15
|
*/
|
|
16
16
|
import cluster from 'node:cluster';
|
|
17
|
+
import { pluginFolderSignature, pluginsFingerprint, scanPluginFolders } from '../plugins/folder.js';
|
|
18
|
+
import { listenForControl } from './control.js';
|
|
17
19
|
import { isWorkerMessage } from './protocol.js';
|
|
20
|
+
export const PLUGIN_POLL_MS = 1_000;
|
|
21
|
+
export const PLUGIN_SETTLE_MS = 5_000;
|
|
18
22
|
/** The first respawn waits this long, doubling with each crash after it. */
|
|
19
23
|
const RESPAWN_BASE_MS = 500;
|
|
20
24
|
const RESPAWN_MAX_MS = 30_000;
|
|
@@ -30,6 +34,14 @@ export function createSupervisor(options) {
|
|
|
30
34
|
let state = { phase: 'stopping' };
|
|
31
35
|
let everServed = false;
|
|
32
36
|
let crashes = 0;
|
|
37
|
+
let loaded;
|
|
38
|
+
let reloading;
|
|
39
|
+
let failed;
|
|
40
|
+
let waiting = [];
|
|
41
|
+
let queued = [];
|
|
42
|
+
let seen = { signature: undefined, since: 0 };
|
|
43
|
+
let compared;
|
|
44
|
+
let polling;
|
|
33
45
|
function fork() {
|
|
34
46
|
const worker = options.fork();
|
|
35
47
|
live.add(worker);
|
|
@@ -46,6 +58,26 @@ export function createSupervisor(options) {
|
|
|
46
58
|
}, delay),
|
|
47
59
|
};
|
|
48
60
|
}
|
|
61
|
+
function beginReload(worker, folder = fingerprint()) {
|
|
62
|
+
options.log('Reloading: the running server is draining.');
|
|
63
|
+
worker.send({ type: 'drain' });
|
|
64
|
+
state = { phase: 'draining', old: worker };
|
|
65
|
+
reloading = folder;
|
|
66
|
+
waiting = [...waiting, ...queued];
|
|
67
|
+
queued = [];
|
|
68
|
+
}
|
|
69
|
+
function settle(outcome) {
|
|
70
|
+
for (const done of waiting)
|
|
71
|
+
done(outcome);
|
|
72
|
+
waiting = [];
|
|
73
|
+
}
|
|
74
|
+
function serve(worker, plugins) {
|
|
75
|
+
state = { phase: 'serving', worker, since: options.now() };
|
|
76
|
+
if (plugins !== undefined)
|
|
77
|
+
loaded = plugins;
|
|
78
|
+
if (queued.length > 0)
|
|
79
|
+
beginReload(worker);
|
|
80
|
+
}
|
|
49
81
|
/** The new worker did not boot: the old one carries on, and is told why. */
|
|
50
82
|
function keepOld(old, next, error) {
|
|
51
83
|
if (state.phase === 'replacing')
|
|
@@ -54,7 +86,39 @@ export function createSupervisor(options) {
|
|
|
54
86
|
old.send({ type: 'resume', error });
|
|
55
87
|
if (live.has(next))
|
|
56
88
|
next.kill();
|
|
57
|
-
|
|
89
|
+
failed = reloading;
|
|
90
|
+
settle({ ok: false, error });
|
|
91
|
+
serve(old, undefined);
|
|
92
|
+
}
|
|
93
|
+
function fingerprint() {
|
|
94
|
+
const { watch } = options;
|
|
95
|
+
return watch === undefined ? undefined : attempt(() => watch.fingerprint());
|
|
96
|
+
}
|
|
97
|
+
function poll(watch) {
|
|
98
|
+
polling = options.schedule(() => {
|
|
99
|
+
look(watch);
|
|
100
|
+
poll(watch);
|
|
101
|
+
}, PLUGIN_POLL_MS);
|
|
102
|
+
}
|
|
103
|
+
function look(watch) {
|
|
104
|
+
const signature = attempt(() => watch.signature());
|
|
105
|
+
const now = options.now();
|
|
106
|
+
if (signature === undefined || signature !== seen.signature) {
|
|
107
|
+
seen = { signature, since: now };
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (state.phase !== 'serving' || signature === compared)
|
|
111
|
+
return;
|
|
112
|
+
if (now - seen.since < PLUGIN_SETTLE_MS)
|
|
113
|
+
return;
|
|
114
|
+
const folder = fingerprint();
|
|
115
|
+
if (folder === undefined)
|
|
116
|
+
return;
|
|
117
|
+
compared = signature;
|
|
118
|
+
if (folder === loaded || folder === failed)
|
|
119
|
+
return;
|
|
120
|
+
options.log('The plugins folder changed and has settled.');
|
|
121
|
+
beginReload(state.worker, folder);
|
|
58
122
|
}
|
|
59
123
|
function bootError(worker, code) {
|
|
60
124
|
return (bootErrors.get(worker) ??
|
|
@@ -63,19 +127,23 @@ export function createSupervisor(options) {
|
|
|
63
127
|
return {
|
|
64
128
|
start() {
|
|
65
129
|
state = { phase: 'booting', worker: fork() };
|
|
130
|
+
if (options.watch !== undefined)
|
|
131
|
+
poll(options.watch);
|
|
66
132
|
},
|
|
67
133
|
message(worker, message) {
|
|
68
134
|
switch (message.type) {
|
|
69
135
|
case 'ready':
|
|
70
136
|
if (state.phase === 'booting' && state.worker === worker) {
|
|
71
137
|
everServed = true;
|
|
72
|
-
|
|
138
|
+
settle({ ok: true });
|
|
139
|
+
serve(worker, message.pluginsFingerprint);
|
|
73
140
|
}
|
|
74
141
|
else if (state.phase === 'replacing' && state.next === worker) {
|
|
75
142
|
state.deadline.cancel();
|
|
76
143
|
state.old.send({ type: 'retire' });
|
|
77
144
|
options.log('Reloaded: the new server is serving and the old one is retiring.');
|
|
78
|
-
|
|
145
|
+
settle({ ok: true });
|
|
146
|
+
serve(worker, message.pluginsFingerprint);
|
|
79
147
|
}
|
|
80
148
|
return;
|
|
81
149
|
case 'boot-failed':
|
|
@@ -85,11 +153,11 @@ export function createSupervisor(options) {
|
|
|
85
153
|
}
|
|
86
154
|
return;
|
|
87
155
|
case 'reload':
|
|
88
|
-
if (state.phase === 'serving' && state.worker === worker)
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
156
|
+
if (state.phase === 'serving' && state.worker === worker)
|
|
157
|
+
beginReload(worker);
|
|
158
|
+
return;
|
|
159
|
+
case 'closed':
|
|
160
|
+
worker.send({ type: 'exit' });
|
|
93
161
|
return;
|
|
94
162
|
case 'drained':
|
|
95
163
|
if (state.phase === 'draining' && state.old === worker) {
|
|
@@ -129,8 +197,10 @@ export function createSupervisor(options) {
|
|
|
129
197
|
respawnLater(`The server exited${code === null ? '' : ` with code ${String(code)}`}`);
|
|
130
198
|
return;
|
|
131
199
|
case 'draining':
|
|
132
|
-
if (state.old
|
|
133
|
-
|
|
200
|
+
if (state.old !== worker)
|
|
201
|
+
return;
|
|
202
|
+
respawnLater('The server exited while it drained');
|
|
203
|
+
settle({ ok: false, error: 'The server exited while it drained.' });
|
|
134
204
|
return;
|
|
135
205
|
case 'replacing':
|
|
136
206
|
if (state.next === worker) {
|
|
@@ -145,12 +215,26 @@ export function createSupervisor(options) {
|
|
|
145
215
|
return;
|
|
146
216
|
}
|
|
147
217
|
},
|
|
218
|
+
reload() {
|
|
219
|
+
if (state.phase === 'stopping') {
|
|
220
|
+
return Promise.resolve({ ok: false, error: 'The server is shutting down.' });
|
|
221
|
+
}
|
|
222
|
+
return new Promise((resolve) => {
|
|
223
|
+
queued.push(resolve);
|
|
224
|
+
if (state.phase === 'serving')
|
|
225
|
+
beginReload(state.worker);
|
|
226
|
+
});
|
|
227
|
+
},
|
|
148
228
|
stop() {
|
|
149
229
|
if (state.phase === 'waiting')
|
|
150
230
|
state.timer.cancel();
|
|
151
231
|
if (state.phase === 'replacing')
|
|
152
232
|
state.deadline.cancel();
|
|
233
|
+
polling?.cancel();
|
|
153
234
|
state = { phase: 'stopping' };
|
|
235
|
+
waiting = [...waiting, ...queued];
|
|
236
|
+
queued = [];
|
|
237
|
+
settle({ ok: false, error: 'The server is shutting down.' });
|
|
154
238
|
if (live.size === 0) {
|
|
155
239
|
options.exit(0);
|
|
156
240
|
return;
|
|
@@ -164,12 +248,23 @@ export function createSupervisor(options) {
|
|
|
164
248
|
},
|
|
165
249
|
};
|
|
166
250
|
}
|
|
251
|
+
function attempt(read) {
|
|
252
|
+
try {
|
|
253
|
+
return read();
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
167
259
|
/**
|
|
168
260
|
* Run the supervisor over `node:cluster` workers, each of which runs this
|
|
169
261
|
* same command. SIGTERM and SIGINT reach the supervisor, which is the process
|
|
170
|
-
* an image's init signals.
|
|
262
|
+
* an image's init signals. `geekity plugin` reaches it over the control
|
|
263
|
+
* socket for `dataDir`.
|
|
171
264
|
*/
|
|
172
|
-
export function superviseCluster() {
|
|
265
|
+
export function superviseCluster(options) {
|
|
266
|
+
const { pluginsDir } = options;
|
|
267
|
+
const log = (line) => process.stderr.write(`${line}\n`);
|
|
173
268
|
const supervisor = createSupervisor({
|
|
174
269
|
fork() {
|
|
175
270
|
const worker = cluster.fork();
|
|
@@ -190,6 +285,9 @@ export function superviseCluster() {
|
|
|
190
285
|
worker.on('exit', (code) => {
|
|
191
286
|
supervisor.exited(handle, code);
|
|
192
287
|
});
|
|
288
|
+
// A message to a worker that is exiting fails with EPIPE; its exit
|
|
289
|
+
// event follows and is what the supervisor acts on.
|
|
290
|
+
worker.on('error', () => undefined);
|
|
193
291
|
return handle;
|
|
194
292
|
},
|
|
195
293
|
schedule(task, ms) {
|
|
@@ -197,8 +295,22 @@ export function superviseCluster() {
|
|
|
197
295
|
return { cancel: () => clearTimeout(timer) };
|
|
198
296
|
},
|
|
199
297
|
now: () => Date.now(),
|
|
200
|
-
log
|
|
201
|
-
exit
|
|
298
|
+
log,
|
|
299
|
+
exit(code) {
|
|
300
|
+
control.close();
|
|
301
|
+
process.exit(code);
|
|
302
|
+
},
|
|
303
|
+
watch: pluginsDir === undefined || !options.pluginWatch
|
|
304
|
+
? undefined
|
|
305
|
+
: {
|
|
306
|
+
signature: () => pluginFolderSignature(pluginsDir),
|
|
307
|
+
fingerprint: () => pluginsFingerprint(scanPluginFolders(pluginsDir)),
|
|
308
|
+
},
|
|
309
|
+
});
|
|
310
|
+
const control = listenForControl({
|
|
311
|
+
dataDir: options.dataDir,
|
|
312
|
+
reload: () => supervisor.reload(),
|
|
313
|
+
log,
|
|
202
314
|
});
|
|
203
315
|
for (const signal of ['SIGINT', 'SIGTERM']) {
|
|
204
316
|
process.on(signal, () => supervisor.stop());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primary.js","sourceRoot":"","sources":["../../src/supervisor/primary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primary.js","sourceRoot":"","sources":["../../src/supervisor/primary.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
* nothing more; a new worker boots and says `ready`; the old one is told to
|
|
6
6
|
* `retire`. A new worker that does not boot says `boot-failed`, and the old
|
|
7
7
|
* one is told to `resume`, with the reason.
|
|
8
|
+
*
|
|
9
|
+
* A worker that has closed says `closed` and exits only when told `exit`.
|
|
10
|
+
* Under `node:cluster`'s round-robin the supervisor may have handed this
|
|
11
|
+
* worker a connection just before it stopped listening; the worker sends
|
|
12
|
+
* such a connection back, but only while it runs. The `exit` comes down the
|
|
13
|
+
* same channel as those connections, after them, so none is lost with the
|
|
14
|
+
* process and left unanswered.
|
|
8
15
|
*/
|
|
9
16
|
/**
|
|
10
17
|
* How a worker that cannot carry on gives up: it exits with this code, and the
|
|
@@ -14,6 +21,7 @@
|
|
|
14
21
|
export declare const EXIT_FOR_REPLACEMENT = 1;
|
|
15
22
|
export type WorkerMessage = {
|
|
16
23
|
readonly type: 'ready';
|
|
24
|
+
readonly pluginsFingerprint: string;
|
|
17
25
|
} | {
|
|
18
26
|
readonly type: 'boot-failed';
|
|
19
27
|
readonly error: string;
|
|
@@ -21,6 +29,8 @@ export type WorkerMessage = {
|
|
|
21
29
|
readonly type: 'reload';
|
|
22
30
|
} | {
|
|
23
31
|
readonly type: 'drained';
|
|
32
|
+
} | {
|
|
33
|
+
readonly type: 'closed';
|
|
24
34
|
};
|
|
25
35
|
export type SupervisorMessage = {
|
|
26
36
|
readonly type: 'drain';
|
|
@@ -31,6 +41,8 @@ export type SupervisorMessage = {
|
|
|
31
41
|
readonly type: 'retire';
|
|
32
42
|
} | {
|
|
33
43
|
readonly type: 'shutdown';
|
|
44
|
+
} | {
|
|
45
|
+
readonly type: 'exit';
|
|
34
46
|
};
|
|
35
47
|
export declare function isWorkerMessage(value: unknown): value is WorkerMessage;
|
|
36
48
|
export declare function isSupervisorMessage(value: unknown): value is SupervisorMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/supervisor/protocol.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/supervisor/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEhC,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAiB9B,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E"}
|
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
* nothing more; a new worker boots and says `ready`; the old one is told to
|
|
6
6
|
* `retire`. A new worker that does not boot says `boot-failed`, and the old
|
|
7
7
|
* one is told to `resume`, with the reason.
|
|
8
|
+
*
|
|
9
|
+
* A worker that has closed says `closed` and exits only when told `exit`.
|
|
10
|
+
* Under `node:cluster`'s round-robin the supervisor may have handed this
|
|
11
|
+
* worker a connection just before it stopped listening; the worker sends
|
|
12
|
+
* such a connection back, but only while it runs. The `exit` comes down the
|
|
13
|
+
* same channel as those connections, after them, so none is lost with the
|
|
14
|
+
* process and left unanswered.
|
|
8
15
|
*/
|
|
9
16
|
/**
|
|
10
17
|
* How a worker that cannot carry on gives up: it exits with this code, and the
|
|
@@ -12,8 +19,20 @@
|
|
|
12
19
|
* worker that exits without being told to.
|
|
13
20
|
*/
|
|
14
21
|
export const EXIT_FOR_REPLACEMENT = 1;
|
|
15
|
-
const WORKER_TYPES = new Set([
|
|
16
|
-
|
|
22
|
+
const WORKER_TYPES = new Set([
|
|
23
|
+
'ready',
|
|
24
|
+
'boot-failed',
|
|
25
|
+
'reload',
|
|
26
|
+
'drained',
|
|
27
|
+
'closed',
|
|
28
|
+
]);
|
|
29
|
+
const SUPERVISOR_TYPES = new Set([
|
|
30
|
+
'drain',
|
|
31
|
+
'resume',
|
|
32
|
+
'retire',
|
|
33
|
+
'shutdown',
|
|
34
|
+
'exit',
|
|
35
|
+
]);
|
|
17
36
|
export function isWorkerMessage(value) {
|
|
18
37
|
return hasType(value, WORKER_TYPES);
|
|
19
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/supervisor/protocol.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/supervisor/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAgBtC,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC;IAChD,OAAO;IACP,aAAa;IACb,QAAQ;IACR,SAAS;IACT,QAAQ;CACT,CAAC,CAAC;AACH,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC;IACpD,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,KAA0B;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -22,4 +22,5 @@ export interface Supervision {
|
|
|
22
22
|
/** Why this worker's last reload failed, or `undefined`. */
|
|
23
23
|
readonly lastFailure: string | undefined;
|
|
24
24
|
}
|
|
25
|
+
export declare function leavingWriteGate(supervision: Supervision | undefined, leave: () => void): Supervision | undefined;
|
|
25
26
|
//# sourceMappingURL=supervision.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervision.d.ts","sourceRoot":"","sources":["../../src/supervisor/supervision.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnG,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C"}
|
|
1
|
+
{"version":3,"file":"supervision.d.ts","sourceRoot":"","sources":["../../src/supervisor/supervision.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnG,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,KAAK,EAAE,MAAM,IAAI,GAChB,WAAW,GAAG,SAAS,CAYzB"}
|
|
@@ -3,5 +3,18 @@
|
|
|
3
3
|
* (TASK-288): which plugin folders it loaded, how to ask for a reload, and
|
|
4
4
|
* why the last one failed.
|
|
5
5
|
*/
|
|
6
|
-
export {
|
|
6
|
+
export function leavingWriteGate(supervision, leave) {
|
|
7
|
+
if (supervision === undefined)
|
|
8
|
+
return undefined;
|
|
9
|
+
return {
|
|
10
|
+
loaded: supervision.loaded,
|
|
11
|
+
get lastFailure() {
|
|
12
|
+
return supervision.lastFailure;
|
|
13
|
+
},
|
|
14
|
+
reload() {
|
|
15
|
+
leave();
|
|
16
|
+
return supervision.reload();
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
7
20
|
//# sourceMappingURL=supervision.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervision.js","sourceRoot":"","sources":["../../src/supervisor/supervision.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
1
|
+
{"version":3,"file":"supervision.js","sourceRoot":"","sources":["../../src/supervisor/supervision.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH,MAAM,UAAU,gBAAgB,CAC9B,WAAoC,EACpC,KAAiB;IAEjB,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,IAAI,WAAW;YACb,OAAO,WAAW,CAAC,WAAW,CAAC;QACjC,CAAC;QACD,MAAM;YACJ,KAAK,EAAE,CAAC;YACR,OAAO,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/supervisor/worker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/supervisor/worker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACtD,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/D,kDAAkD;IAClD,YAAY,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,8EAA8E;IAC9E,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC;IAChC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,GAAG,gBAAgB,CAiGnB;AAED,mEAAmE;AACnE,wBAAgB,cAAc,IAAI,aAAa,CAc9C"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* {@link Supervision} the Plugins screen asks for a reload, and the answers
|
|
4
4
|
* to what the supervisor tells this worker to do.
|
|
5
5
|
*/
|
|
6
|
+
import { pluginsFingerprint } from '../plugins/folder.js';
|
|
6
7
|
import { EXIT_FOR_REPLACEMENT, isSupervisorMessage } from './protocol.js';
|
|
7
8
|
export function superviseWorker(options) {
|
|
8
9
|
const { channel, exit, log } = options;
|
|
@@ -33,10 +34,21 @@ export function superviseWorker(options) {
|
|
|
33
34
|
supervision,
|
|
34
35
|
serving(cms) {
|
|
35
36
|
let closing;
|
|
37
|
+
let exitCode;
|
|
38
|
+
let disconnected = false;
|
|
36
39
|
const close = () => {
|
|
37
|
-
closing ??= cms
|
|
40
|
+
closing ??= cms
|
|
41
|
+
.close()
|
|
42
|
+
.then(() => 0, (error) => {
|
|
38
43
|
log(`The server did not close cleanly: ${messageOf(error)}`);
|
|
39
|
-
|
|
44
|
+
return 1;
|
|
45
|
+
})
|
|
46
|
+
.then((code) => {
|
|
47
|
+
exitCode = code;
|
|
48
|
+
if (disconnected)
|
|
49
|
+
exit(code);
|
|
50
|
+
else
|
|
51
|
+
channel.send({ type: 'closed' });
|
|
40
52
|
});
|
|
41
53
|
return closing;
|
|
42
54
|
};
|
|
@@ -59,18 +71,31 @@ export function superviseWorker(options) {
|
|
|
59
71
|
await cms.resume();
|
|
60
72
|
settle({ ok: false, error: message.error });
|
|
61
73
|
return;
|
|
62
|
-
case 'retire':
|
|
74
|
+
case 'retire': {
|
|
75
|
+
// Close before answering the request that asked for the reload,
|
|
76
|
+
// so the page it redirects to is asked of the new worker.
|
|
77
|
+
const closing = close();
|
|
63
78
|
settle({ ok: true });
|
|
64
|
-
await
|
|
79
|
+
await closing;
|
|
65
80
|
return;
|
|
81
|
+
}
|
|
66
82
|
case 'shutdown':
|
|
67
83
|
await close();
|
|
68
84
|
return;
|
|
85
|
+
case 'exit':
|
|
86
|
+
exit(exitCode ?? 0);
|
|
87
|
+
return;
|
|
69
88
|
}
|
|
70
89
|
})();
|
|
71
90
|
});
|
|
72
|
-
channel.onDisconnect(() =>
|
|
73
|
-
|
|
91
|
+
channel.onDisconnect(() => {
|
|
92
|
+
disconnected = true;
|
|
93
|
+
if (exitCode === undefined)
|
|
94
|
+
void close();
|
|
95
|
+
else
|
|
96
|
+
exit(exitCode);
|
|
97
|
+
});
|
|
98
|
+
channel.send({ type: 'ready', pluginsFingerprint: pluginsFingerprint(options.loaded) });
|
|
74
99
|
},
|
|
75
100
|
};
|
|
76
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/supervisor/worker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/supervisor/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/web/context.d.ts
CHANGED
|
@@ -247,6 +247,13 @@ export interface DocumentContext {
|
|
|
247
247
|
* matter value, so a theme always reads this shape. Empty when there are none.
|
|
248
248
|
*/
|
|
249
249
|
syndication: SyndicationLink[];
|
|
250
|
+
/**
|
|
251
|
+
* Where the post was first published, when that is elsewhere (TASK-293):
|
|
252
|
+
* its `canonical_href` when that is an absolute http or https URL, and the
|
|
253
|
+
* host a link to it says. A theme makes it the page's canonical URL and
|
|
254
|
+
* links to it.
|
|
255
|
+
*/
|
|
256
|
+
original?: SyndicationLink | undefined;
|
|
250
257
|
/** Everything else from the front matter, including unmodelled keys. */
|
|
251
258
|
[key: string]: unknown;
|
|
252
259
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/web/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGrE,8EAA8E;AAC9E,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAEhD,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACvC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAC5D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;;;OAKG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACrE;;;;;OAKG;IACH,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,IAAI,CAAC;QAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;KAAE,GAAG,SAAS,CAAC;IAC1E;;;;OAIG;IACH,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB;;;;;OAKG;IACH,IAAI,CAAC,EACD;QACE,MAAM,EAAE,UAAU,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,EAAE,EAAE,MAAM,GAAG;YAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QAC/C,IAAI,EAAE,MAAM,CAAC;KACd,GACD,SAAS,CAAC;IACd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACxB,gDAAgD;IAChD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4EAA4E;IAC5E,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB;;;;;OAKG;IACH,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACvC,wEAAwE;IACxE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACnC,KAAK,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,GAAG,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAkBvE;AAED,6EAA6E;AAC7E,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,EAAE,CAE3E;AAMD,qFAAqF;AACrF,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;IACrE,wFAAwF;IACxF,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;CAC/D;AAED,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,qFAAqF;IACrF,GAAG,EAAE,MAAM,CAAC;IACZ,iGAAiG;IACjG,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,QAAQ,EAClB,MAAM,CAAC,EAAE,WAAW,EACpB,MAAM,CAAC,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,YAAY,EACtB,KAAK,CAAC,EAAE,eAAe,GACtB,eAAe,CAqDjB;AAED,8EAA8E;AAC9E,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,IAAI,IAAI,QAAQ,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAqC3E;AAaD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAMnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAGnD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAOjD;AAED,4DAA4D;AAC5D,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,cAAc,CAQ7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,CAE3D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CAEhE;AA+BD,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAK3F;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACvD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,WAAW,GAClB,mBAAmB,CASrB"}
|
package/dist/web/context.js
CHANGED
|
@@ -3,6 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import { enclosureOf, isCaptions, playsAsVideo } from '../content/enclosure.js';
|
|
4
4
|
import { photoAlt, photosOf } from '../content/photo.js';
|
|
5
5
|
import { citationsOf } from '../content/citation.js';
|
|
6
|
+
import { originalUrlOf } from '../content/original.js';
|
|
6
7
|
import { shownInFull } from '../webmention/cited-picture.js';
|
|
7
8
|
import { READ_STATUS_LABELS, readLine, readOf, uidLabel } from '../content/read.js';
|
|
8
9
|
import { eventOf } from '../content/event.js';
|
|
@@ -40,10 +41,10 @@ export function locationContext(shared) {
|
|
|
40
41
|
}
|
|
41
42
|
/** Copies as a theme links them, each URL once. */
|
|
42
43
|
export function syndicationLinks(urls) {
|
|
43
|
-
return [...new Set(urls)].map(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
return [...new Set(urls)].map(hostLink);
|
|
45
|
+
}
|
|
46
|
+
function hostLink(url) {
|
|
47
|
+
return { url, label: new URL(url).hostname.replace(/^www\./, '') };
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* A document as a template sees it.
|
|
@@ -75,6 +76,7 @@ export function documentContext(document, images, author, loading, cited) {
|
|
|
75
76
|
const date = toDate(document.date);
|
|
76
77
|
const photos = photoContexts(document, images, loading);
|
|
77
78
|
const { location: _frontMatterLocation, ...extra } = document.extra;
|
|
79
|
+
const originalUrl = originalUrlOf(document.extra);
|
|
78
80
|
return {
|
|
79
81
|
...extra,
|
|
80
82
|
permalink: document.permalink,
|
|
@@ -96,6 +98,7 @@ export function documentContext(document, images, author, loading, cited) {
|
|
|
96
98
|
lang: documentLanguage(document),
|
|
97
99
|
enclosure: enclosureContext(document),
|
|
98
100
|
syndication: syndicationLinks(handSyndicationOf(document.extra)),
|
|
101
|
+
original: originalUrl === undefined ? undefined : hostLink(originalUrl),
|
|
99
102
|
label: postLabel(document, cited),
|
|
100
103
|
...optional('date', date),
|
|
101
104
|
tags: document.tags,
|