@geekity/cms 0.5.0 → 0.6.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 +24 -14
- package/admin/pages/navigation/menus.njk +8 -5
- package/admin/pages/users/edit.njk +25 -2
- package/admin/static/admin.css +18 -3
- package/dist/admin/accounts.d.ts +10 -0
- package/dist/admin/accounts.d.ts.map +1 -1
- package/dist/admin/accounts.js +15 -3
- package/dist/admin/accounts.js.map +1 -1
- package/dist/admin/users.d.ts +24 -0
- package/dist/admin/users.d.ts.map +1 -1
- package/dist/admin/users.js +102 -30
- package/dist/admin/users.js.map +1 -1
- package/dist/federation/mount.d.ts.map +1 -1
- package/dist/federation/mount.js +16 -3
- package/dist/federation/mount.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/web/authors.d.ts +15 -1
- package/dist/web/authors.d.ts.map +1 -1
- package/dist/web/authors.js +9 -1
- package/dist/web/authors.js.map +1 -1
- package/dist/web/index.d.ts +3 -3
- package/dist/web/index.d.ts.map +1 -1
- package/dist/web/index.js +1 -1
- package/dist/web/index.js.map +1 -1
- package/dist/web/navigation.d.ts +106 -28
- package/dist/web/navigation.d.ts.map +1 -1
- package/dist/web/navigation.js +135 -49
- package/dist/web/navigation.js.map +1 -1
- package/package.json +1 -1
- package/themes/default/README.md +25 -10
- package/themes/default/partials/bio.njk +5 -1
- package/themes/default/partials/menu.njk +6 -4
- package/themes/default/static/style.css +28 -10
package/README.md
CHANGED
|
@@ -634,7 +634,9 @@ neither can be added to. It answers for every spelling of the same person — th
|
|
|
634
634
|
`/@{username}` and the stored actor id of somebody who has one — with the actor
|
|
635
635
|
id as `self`, the archive as `profile-page`, and all of the person's URLs as
|
|
636
636
|
`aliases`. A username nobody has is a 404. `/@{username}` itself is a 301 to
|
|
637
|
-
the archive
|
|
637
|
+
the archive of the user of exactly that name, and a 404 for a handle nobody
|
|
638
|
+
answers to: it is an alias of somebody, so a handle that is not anybody's is
|
|
639
|
+
nowhere rather than a redirect to an archive that does not exist either.
|
|
638
640
|
|
|
639
641
|
### A user's stored actor id
|
|
640
642
|
|
|
@@ -1989,7 +1991,7 @@ The federation routes go on before it, and answer only their own paths:
|
|
|
1989
1991
|
| `/author/{username}/followers/` | Who follows them, paged 20 at a time. |
|
|
1990
1992
|
| `/author/{username}/following/` | Always empty: a relay is a subscription rather than a relationship. |
|
|
1991
1993
|
| `/inbox/` | `POST` only. The instance-wide shared inbox; the addressee is read out of the body. |
|
|
1992
|
-
| `/@{username}` | A 301 to their archive.
|
|
1994
|
+
| `/@{username}` | A 301 to their archive; a 404 for a handle nobody answers to. |
|
|
1993
1995
|
| `/.well-known/webfinger` | The handle, the author URL or `/@{username}`, all resolving to the same actor. |
|
|
1994
1996
|
| `/.well-known/nodeinfo` | A link to the NodeInfo document. |
|
|
1995
1997
|
| `/nodeinfo/2.1` | What software this is, how many users and how many posts. |
|
|
@@ -2036,17 +2038,21 @@ object keyed by the name of each menu, each an ordered list of items:
|
|
|
2036
2038
|
"primary": [{ "label": "About", "url": "/about/" }],
|
|
2037
2039
|
"footer": [
|
|
2038
2040
|
{ "label": "Colophon", "url": "/colophon/" },
|
|
2039
|
-
{ "label": "Mastodon", "url": "https://example.social/@me", "
|
|
2041
|
+
{ "label": "Mastodon", "url": "https://example.social/@me", "rel": "me" }
|
|
2040
2042
|
]
|
|
2041
2043
|
}
|
|
2042
2044
|
}
|
|
2043
2045
|
```
|
|
2044
2046
|
|
|
2045
|
-
An item is a label, a URL and the
|
|
2046
|
-
or an absolute `http(s)` URL; anything else is refused.
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
|
|
2047
|
+
An item is a label, a URL and the `rel` values it carries. The URL is a
|
|
2048
|
+
site-root path or an absolute `http(s)` URL; anything else is refused. `rel` is
|
|
2049
|
+
one string holding every value — `"me"`, `"nofollow noopener"` — present only
|
|
2050
|
+
when there is one, lower case and each value said once, and a theme prints it
|
|
2051
|
+
as the whole of the link's `rel` attribute. The values are whatever HTML link
|
|
2052
|
+
types the site wants; `me` is the one most menus have, because it is how
|
|
2053
|
+
Mastodon and the rest of the IndieWeb verify that the site and the profile it
|
|
2054
|
+
links are the same person. An item written `"me": true`, the spelling before
|
|
2055
|
+
`rel` held a list, is still read as `"rel": "me"`.
|
|
2050
2056
|
|
|
2051
2057
|
**The theme declares the areas it renders.** `theme.json` carries an `areas`
|
|
2052
2058
|
list, each entry a `name` — the key under `menus` — and a `label` a person
|
|
@@ -2085,11 +2091,15 @@ the Delete that is the only way a menu is removed. An area the theme declares
|
|
|
2085
2091
|
is emptied rather than deleted: the theme goes on asking for the name, and the
|
|
2086
2092
|
box has to stay for the next thing typed into it.
|
|
2087
2093
|
|
|
2088
|
-
Each menu is one box of `Label | URL` lines, in the order they are typed,
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2094
|
+
Each menu is one box of `Label | URL` lines, in the order they are typed, and a
|
|
2095
|
+
line may end in the `rel` values the link carries, a word each — `Mastodon |
|
|
2096
|
+
https://example.social/@me | me`, `A source | https://example.com/thing |
|
|
2097
|
+
nofollow noopener`. The values come off the end of the line only while the last
|
|
2098
|
+
bar-separated part reads as a list of them, so a URL holding a bar survives:
|
|
2099
|
+
`Odd | /odd/?a=1|2` keeps its query string, because `2` is not a word. A line
|
|
2100
|
+
that is not an item is refused by name, with the box still holding every line of
|
|
2101
|
+
what was typed, and nothing written. It is the same line the Links box on a
|
|
2102
|
+
profile takes.
|
|
2093
2103
|
|
|
2094
2104
|
**A menu name** is lower-case ASCII letters, digits and underscores, starting
|
|
2095
2105
|
with a letter, at most 32 characters. It is the word a theme writes after the
|
|
@@ -2796,7 +2806,7 @@ is the second taxonomy, one entry of `{ name, posts }` per category in use, for
|
|
|
2796
2806
|
paginating into archives at `/{{ site.categoryBase }}/{name}/`.
|
|
2797
2807
|
`collections.menus` is the site's named menus — the `menus` object of
|
|
2798
2808
|
`site.json`, and nothing else — each an ordered list of `{ label, url }`
|
|
2799
|
-
entries, plus `
|
|
2809
|
+
entries, plus `rel` on a link that carries `rel` values; a layout
|
|
2800
2810
|
marks the current one itself by comparing `item.url` with `page.url`, because a
|
|
2801
2811
|
collection is built once for the whole site.
|
|
2802
2812
|
|
|
@@ -36,11 +36,14 @@
|
|
|
36
36
|
<code>Mastodon | https://example.social/@me</code>. They are the whole of
|
|
37
37
|
this menu, in this order: nothing else puts a link in it. A page serving
|
|
38
38
|
as the front page goes in as <code>Home | /</code>, where a reader lands.
|
|
39
|
-
End a line
|
|
40
|
-
<
|
|
41
|
-
<code>
|
|
42
|
-
|
|
43
|
-
|
|
39
|
+
End a line with the
|
|
40
|
+
<code>rel</code> values the link carries, a word each —
|
|
41
|
+
<code>Mastodon | https://example.social/@me | me</code>,
|
|
42
|
+
<code>A source | https://example.com/thing | nofollow noopener</code>.
|
|
43
|
+
<code>me</code> marks <strong>a profile that is you</strong>, which is
|
|
44
|
+
how Mastodon and the rest of the IndieWeb verify that the site and the
|
|
45
|
+
profile it links are the same person; the rest are whatever HTML link
|
|
46
|
+
types you want on it.
|
|
44
47
|
{% endset %}
|
|
45
48
|
{{ field.textarea('menu-' + menu.name, fields.items, 'Items', menu.items,
|
|
46
49
|
error=menu.problem, hint=itemsHint, rows='5', spellcheck='false') }}
|
|
@@ -79,6 +79,13 @@
|
|
|
79
79
|
field they do not have.
|
|
80
80
|
</p>
|
|
81
81
|
|
|
82
|
+
{% if profileProblems.links %}
|
|
83
|
+
<p class="admin-error">
|
|
84
|
+
Nothing was saved. Fix the Links box below and save again; every other
|
|
85
|
+
box here still holds what you typed.
|
|
86
|
+
</p>
|
|
87
|
+
{% endif %}
|
|
88
|
+
|
|
82
89
|
{{ field.text('profile-display-name', fields.displayName, 'Display name',
|
|
83
90
|
account.profile.displayName,
|
|
84
91
|
hint='Printed instead of the login: it heads the archive and is the byline under their posts.') }}
|
|
@@ -96,12 +103,28 @@
|
|
|
96
103
|
{{ field.text('profile-location', fields.location, 'Location', account.profile.location,
|
|
97
104
|
hint='Where they are, as they write it.') }}
|
|
98
105
|
|
|
106
|
+
{# What the box takes — the same line a menu item is written on, down to
|
|
107
|
+
the rel values it may end in (TASK-114) — and the one thing about it
|
|
108
|
+
nothing on the screen used to say (TASK-112): these links are published
|
|
109
|
+
with rel="me", which is what a person deciding what to put here needs to
|
|
110
|
+
know. #}
|
|
99
111
|
{% set linksHint %}
|
|
100
112
|
One per line, either <code>Label | https://example.com</code> or a bare
|
|
101
|
-
URL that labels itself.
|
|
113
|
+
URL that labels itself. A URL is a path like <code>/about/</code> or a
|
|
114
|
+
full <code>http://</code> or <code>https://</code> one, with no spaces in
|
|
115
|
+
it. End a line with the
|
|
116
|
+
<code>rel</code> values the link carries, a word each —
|
|
117
|
+
<code>Mastodon | https://example.social/@me | me</code>,
|
|
118
|
+
<code>Their post | https://example.com/post | me nofollow author</code>.
|
|
119
|
+
It is the same line the menu boxes on
|
|
120
|
+
<a href="{{ adminUrl }}/navigation">Navigation</a> take.
|
|
121
|
+
Every link here is published with <code>rel="me"</code> whether or not
|
|
122
|
+
you type it: it is how Mastodon verifies a profile field that points back
|
|
123
|
+
at this site, and how IndieAuth knows these are yours. Nothing else in
|
|
124
|
+
Geekity needs it.
|
|
102
125
|
{% endset %}
|
|
103
126
|
{{ field.textarea('profile-links', fields.links, 'Links', account.profile.links, rows='4',
|
|
104
|
-
hint=linksHint) }}
|
|
127
|
+
hint=linksHint, error=profileProblems.links) }}
|
|
105
128
|
|
|
106
129
|
<p class="admin-settings-buttons">
|
|
107
130
|
<button type="submit">Save profile</button>
|
package/admin/static/admin.css
CHANGED
|
@@ -249,20 +249,30 @@ h2 {
|
|
|
249
249
|
|
|
250
250
|
.admin-counts {
|
|
251
251
|
display: flex;
|
|
252
|
+
/* A cell that does not fit moves to the next line rather than being
|
|
253
|
+
squeezed until its label breaks; the panel has no breakpoint of its own. */
|
|
254
|
+
flex-wrap: wrap;
|
|
252
255
|
margin: 0;
|
|
253
256
|
gap: 1.5rem;
|
|
257
|
+
/* A cell is as tall as its own content, so the tallest of them cannot
|
|
258
|
+
stretch the rest and move where their numbers are drawn. */
|
|
259
|
+
align-items: start;
|
|
254
260
|
}
|
|
255
261
|
|
|
262
|
+
/* A cell is its label and its number, and the markup has to be a `dt` then its
|
|
263
|
+
`dd` — so the two rows are named rather than the cell packed from its bottom
|
|
264
|
+
edge. A number then sits at the top of its cell whatever its label does. */
|
|
256
265
|
.admin-counts div {
|
|
257
|
-
display:
|
|
258
|
-
flex-direction: column-reverse;
|
|
266
|
+
display: grid;
|
|
259
267
|
}
|
|
260
268
|
|
|
261
269
|
.admin-counts dt {
|
|
270
|
+
grid-row: 2;
|
|
262
271
|
color: var(--admin-muted);
|
|
263
272
|
}
|
|
264
273
|
|
|
265
274
|
.admin-counts dd {
|
|
275
|
+
grid-row: 1;
|
|
266
276
|
margin: 0;
|
|
267
277
|
font-size: 1.75rem;
|
|
268
278
|
line-height: 1.2;
|
|
@@ -687,7 +697,12 @@ button[type='submit']:hover,
|
|
|
687
697
|
and how what went out landed. Four panels down the page rather than the
|
|
688
698
|
dashboard's grid, because three of them hold tables. */
|
|
689
699
|
|
|
690
|
-
.
|
|
700
|
+
/* Panels that stack, which is what this screen's do. A panel inside
|
|
701
|
+
`.admin-panels` is in a grid whose `gap` is already the space between its
|
|
702
|
+
cells, in both directions and however the row wraps, so the margin is not
|
|
703
|
+
only unnecessary there but pushes a panel down inside its own cell — which
|
|
704
|
+
is what made the dashboard's two boxes start at different heights. */
|
|
705
|
+
:not(.admin-panels) > .admin-panel + .admin-panel {
|
|
691
706
|
margin-top: 1.5rem;
|
|
692
707
|
}
|
|
693
708
|
|
package/dist/admin/accounts.d.ts
CHANGED
|
@@ -125,6 +125,16 @@ export interface ProfileLink {
|
|
|
125
125
|
readonly label: string;
|
|
126
126
|
/** Where it goes. */
|
|
127
127
|
readonly href: string;
|
|
128
|
+
/**
|
|
129
|
+
* The `rel` values typed after the URL, as one string, or absent when none
|
|
130
|
+
* were (TASK-114).
|
|
131
|
+
*
|
|
132
|
+
* What was typed and only that. `rel="me"` is added to every profile link
|
|
133
|
+
* when it is published, which is what the box is for, so a link that says
|
|
134
|
+
* nothing here is still rendered `rel="me"` and one that says `me` is
|
|
135
|
+
* rendered it once.
|
|
136
|
+
*/
|
|
137
|
+
readonly rel?: string | undefined;
|
|
128
138
|
}
|
|
129
139
|
/**
|
|
130
140
|
* The public face of a user: what their archive is headed with and what their
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/admin/accounts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/admin/accounts.ts"],"names":[],"mappings":"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"}
|
package/dist/admin/accounts.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import { readFileIfPresentSync, updateFileAtomically, writeFileAtomicallySync, } from '../files/atomic.js';
|
|
3
3
|
import { deliveryMode, notificationEvent, withNotification, withNotificationMode, } from '../notifications/preferences.js';
|
|
4
|
+
import { relText } from '../web/navigation.js';
|
|
4
5
|
import { hashPassword, verifyPasswordHash } from './passwords.js';
|
|
5
6
|
/**
|
|
6
7
|
* Who may sign in: `data/users.json`, and everything that reads or writes it.
|
|
@@ -229,11 +230,16 @@ export function cleanProfile(profile) {
|
|
|
229
230
|
const jobTitle = (profile.jobTitle ?? '').trim();
|
|
230
231
|
const location = (profile.location ?? '').trim();
|
|
231
232
|
const links = (profile.links ?? [])
|
|
232
|
-
.map((link) =>
|
|
233
|
+
.map((link) => {
|
|
234
|
+
// The rel values go through the same normaliser a menu item's do, so a
|
|
235
|
+
// hand-edited file and a saved box store one spelling (TASK-114).
|
|
236
|
+
const rel = relText([link.rel ?? '']);
|
|
237
|
+
return { label: link.label.trim(), href: link.href.trim(), ...(rel === '' ? {} : { rel }) };
|
|
238
|
+
})
|
|
233
239
|
// A link needs somewhere to go; a label it does not have is the URL again,
|
|
234
240
|
// because a list of blank links is worse than a list of bare addresses.
|
|
235
241
|
.filter((link) => link.href !== '')
|
|
236
|
-
.map((link) => (link.label === '' ? {
|
|
242
|
+
.map((link) => (link.label === '' ? { ...link, label: link.href } : link));
|
|
237
243
|
const cleaned = {
|
|
238
244
|
...(displayName === '' ? {} : { displayName }),
|
|
239
245
|
...(bio === '' ? {} : { bio }),
|
|
@@ -635,9 +641,15 @@ function linksFrom(value) {
|
|
|
635
641
|
const record = entry;
|
|
636
642
|
const href = record['href'];
|
|
637
643
|
const label = record['label'];
|
|
644
|
+
const rel = record['rel'];
|
|
638
645
|
if (typeof href !== 'string')
|
|
639
646
|
continue;
|
|
640
|
-
|
|
647
|
+
const carried = typeof rel === 'string' ? relText([rel]) : '';
|
|
648
|
+
links.push({
|
|
649
|
+
label: typeof label === 'string' ? label : '',
|
|
650
|
+
href,
|
|
651
|
+
...(carried === '' ? {} : { rel: carried }),
|
|
652
|
+
});
|
|
641
653
|
}
|
|
642
654
|
return links;
|
|
643
655
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/admin/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGlE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,uCAAuC;AACvC,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AAEvC,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AAErC,6DAA6D;AAC7D,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAkJD,4EAA4E;AAC5E,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC7B,IAAI,GAAG,wBAAwB,CAAC;IAClD,wCAAwC;IAC/B,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,CAAC,iBAAiB,QAAQ,mBAAmB,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC;SAC1B,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;SACtB,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACnB,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3E,CAAC;AACN,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC;SAC1B,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;SACtB,MAAM,CACL,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAC/E,SAAS,CACV,CAAC;AACN,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,QAAgB;IACxD,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AACjF,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,EAAU;IACtD,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,UAAkB;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,KAAK,GACT,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;IAExF,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB;IACrD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,OAA+B,CAAC;IAEpC,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,GAAG;YACR,EAAE,EAAE,QAAQ,CAAC,MAAM;YACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,uEAAuE;YACvE,2DAA2D;YAC3D,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YAClC,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACxE,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAOrC;IACC,uEAAuE;IACvE,+BAA+B;IAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO;YACL,GAAG,QAAQ;YACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAClE;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAOlC;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO;YACL,GAAG,QAAQ;YACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBAC1C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;gBAC1C,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC;YAClD,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAOpC;IACC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO;YACL,GAAG,QAAQ;YACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBAC1C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;gBAC5C,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAChE,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACjD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACtE,2EAA2E;QAC3E,wEAAwE;SACvE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;SAClC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAErF,MAAM,OAAO,GAAgB;QAC3B,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAC9C,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;QACpC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QACxC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KACzC,CAAC;IAEF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KASzC;IACC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO;YACL,GAAG,QAAQ;YACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBAC1C,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;gBAClD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzE,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YACtE,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAS7C;IACC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO;YACL,GAAG,QAAQ;YACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBAC1C,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;gBACtD,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnF,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAC1E,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAC9B,IAAI,GAAG,yBAAyB,CAAC;IACnD,mCAAmC;IAC1B,QAAQ,CAAS;IAE1B,YAAY,QAAgB,EAAE,IAAY;QACxC,KAAK,CAAC,GAAG,IAAI,wBAAwB,QAAQ,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAS3C;IACC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEnE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CACnC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAChE,CAAC;QACF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,uBAAuB,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAClC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,CAClF,CAAC;QACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,uBAAuB,CAC/B,QAAQ,CAAC,QAAQ,EACjB,mBAAmB,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CACpD,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,CAAC;QAC7F,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC;QAE9B,OAAO;YACL,GAAG,QAAQ;YACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;gBACjB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE;gBAC/E,CAAC,CAAC,IAAI,CACT;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kEAAkE;AAClE,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACvB,IAAI,GAAG,kBAAkB,CAAC;IAC5C,mCAAmC;IAC1B,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,CAAC,gCAAgC,QAAQ,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAA0C;IACzE,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACtC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,QAAgB,EAChB,QAAgB;IAEhB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,yEAAyE;QACzE,wDAAwD;QACxD,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IACvE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA+C;IAChF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAEhC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACvF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC,CAAC;QACJ,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE;YAC3E,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,iEAAiE;AACjE,SAAS,WAAW,CAAC,IAAgB;IACnC,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1D,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAClF,GAAG,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC9F,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3F,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,YAAY,CAC7B,2EAA2E,CAC5E,CAAC;AAiBF,+CAA+C;AAC/C,SAAS,aAAa,CAAC,QAA2B;IAChD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,cAAc,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,qFAAqF;AACrF,SAAS,cAAc,CAAC,MAA0B,EAAE,IAAY;IAC9D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAE1D,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAa,MAAkC,CAAC,OAAO,CAAC,CAAC;IACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAI,MAAkC,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvE,4EAA4E;IAC5E,4EAA4E;IAC5E,oBAAoB;IACpB,OAAO;QACL,KAAK;QACL,MAAM,EAAE,IAAI,CAAC,GAAG,CACd,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACjE,OAAO,GAAG,CAAC,CACZ;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,QAAQ,CAAC,KAAc,EAAE,KAAa,EAAE,IAAY;IAC3D,MAAM,KAAK,GAAG,SAAS,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAEtC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC/D,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,mBAAmB,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;QAC5D,MAAM,iBAAiB,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,wBAAwB,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACL,EAAE;QACF,QAAQ;QACR,yEAAyE;QACzE,0EAA0E;QAC1E,2EAA2E;QAC3E,uBAAuB;QACvB,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,sEAAsE;QACtE,4CAA4C;QAC5C,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;QACpE,2EAA2E;QAC3E,sEAAsE;QACtE,uDAAuD;QACvD,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;QAC5D,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,4CAA4C;QAC5C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,0EAA0E;QAC1E,uEAAuE;QACvE,mEAAmE;QACnE,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,0EAA0E;QAC1E,2EAA2E;QAC3E,+DAA+D;QAC/D,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC/D,YAAY;QACZ,SAAS,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,MAAM,MAAM,GAAG,KAAgC,CAAC;IAEhD,OAAO,YAAY,CAAC;QAClB,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QACrD,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/C,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/C,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iFAAiF;AACjF,SAAS,YAAY,CAAC,GAAW,EAAE,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED,+DAA+D;AAC/D,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,SAAS;QAClF,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1F,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC9E,IAAI,OAAO,MAAM,KAAK,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACjG,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC;AAED,+EAA+E;AAC/E,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1F,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC5E,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,KAAK,EAAE,OAAO,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC1E,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC;AAED,+DAA+D;AAC/D,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAc;IACrD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtE,OAAO,IAAI,KAAK,CACd,kBAAkB,IAAI,uBAAuB,MAAM,gCAAgC;QACjF,sFAAsF;QACtF,gFAAgF,CACnF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAS,KAAK,CACZ,OAAe,EACf,OAA2D;IAE3D,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,oBAAoB,CACzB,IAAI,EACJ,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAClE,EAAE,IAAI,EAAE,eAAe,EAAE,CAC1B,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/admin/accounts.ts"],"names":[],"mappings":"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"}
|
package/dist/admin/users.d.ts
CHANGED
|
@@ -177,6 +177,30 @@ export declare function generatePassword(): string;
|
|
|
177
177
|
* `setUserProfile`, so a list somebody emptied leaves no key behind.
|
|
178
178
|
*/
|
|
179
179
|
export declare function parseProfileLinks(value: string): ProfileLink[];
|
|
180
|
+
/**
|
|
181
|
+
* What is wrong with a typed list of profile links, or `undefined` when
|
|
182
|
+
* nothing is.
|
|
183
|
+
*
|
|
184
|
+
* The check the box never had (TASK-112). A URL goes through
|
|
185
|
+
* {@link isLinkUrl}, the rule the Navigation screen's menu box already used,
|
|
186
|
+
* so `Elsewhere | not a url` is refused in both places and for the same
|
|
187
|
+
* reason. One message naming the first bad line, for the reason the menu box's
|
|
188
|
+
* message names one: a box is fixed a line at a time, and the line to fix is
|
|
189
|
+
* the useful half of the sentence.
|
|
190
|
+
*
|
|
191
|
+
* The same line as a menu item's, down to the `rel` values it may end in
|
|
192
|
+
* (TASK-114): somebody who learns one box has learned the other, and a
|
|
193
|
+
* trailing `| me` — the line that started all this — is a link rather than a
|
|
194
|
+
* mistake. A profile link is published `rel="me"` either way, so typing it is
|
|
195
|
+
* a no-op; typing `| me nofollow author` is three values on the rendered
|
|
196
|
+
* attribute.
|
|
197
|
+
*
|
|
198
|
+
* Tolerant on the way out and strict on the way in: {@link parseProfileLinks}
|
|
199
|
+
* and the file's own reader still take anything, so a link stored before this
|
|
200
|
+
* check existed still renders and still comes back in the box. Refusing a save
|
|
201
|
+
* is not refusing a read.
|
|
202
|
+
*/
|
|
203
|
+
export declare function profileLinkLineProblem(value: string): string | undefined;
|
|
180
204
|
/** A stored list of links back as the textarea shows it. */
|
|
181
205
|
export declare function formatProfileLinks(links: readonly ProfileLink[] | undefined): string;
|
|
182
206
|
//# sourceMappingURL=users.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/admin/users.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/admin/users.ts"],"names":[],"mappings":"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"}
|
package/dist/admin/users.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { randomInt } from 'node:crypto';
|
|
2
2
|
import { authorHref } from '../web/authors.js';
|
|
3
|
+
import { isLinkUrl, LINK_REL_RULE, LINK_URL_RULE, splitLinkRel } from '../web/navigation.js';
|
|
3
4
|
import { DEFAULT_DELIVERY_MODE, deliveryMode, notificationEvent, notificationSwitches, } from '../notifications/preferences.js';
|
|
4
5
|
import { countUsers, createUser, deleteUser, DuplicateUsernameError, findUserById, listUsers, setUserEmail, setUserNotification, setUserNotificationMode, setUserPassword, setUserProfile, verifyUserPassword, } from './accounts.js';
|
|
5
6
|
import { emailProblem, passwordProblem, usernameProblem } from './credentials.js';
|
|
@@ -235,9 +236,11 @@ export function mountUsers(app, options) {
|
|
|
235
236
|
* whole profile at once, because that is what the panel is — six boxes and
|
|
236
237
|
* one Save — and a box somebody cleared is a field they no longer want.
|
|
237
238
|
*
|
|
238
|
-
* A flash and a redirect
|
|
239
|
-
*
|
|
240
|
-
*
|
|
239
|
+
* A flash and a redirect for everything but the Links box, because nothing
|
|
240
|
+
* else here can be wrong enough to refuse. A link line that is not a link is
|
|
241
|
+
* refused the way a menu line is (TASK-112): a 400 with the panel redrawn
|
|
242
|
+
* around what was typed, because a link nobody can follow is worse stored
|
|
243
|
+
* than reported, and because the line to fix has to still be there to fix.
|
|
241
244
|
*/
|
|
242
245
|
app.post(USER_PROFILE_PATH, async (c) => {
|
|
243
246
|
const dataDir = c.var.config.dataDir;
|
|
@@ -248,17 +251,26 @@ export function mountUsers(app, options) {
|
|
|
248
251
|
flash(c, 'error', 'That user is already gone.');
|
|
249
252
|
return c.redirect(USERS_PATH, 303);
|
|
250
253
|
}
|
|
254
|
+
const typed = {
|
|
255
|
+
displayName: field(body[USER_FIELDS.displayName]),
|
|
256
|
+
bio: field(body[USER_FIELDS.bio]),
|
|
257
|
+
avatar: field(body[USER_FIELDS.avatar]),
|
|
258
|
+
jobTitle: field(body[USER_FIELDS.jobTitle]),
|
|
259
|
+
location: field(body[USER_FIELDS.location]),
|
|
260
|
+
links: field(body[USER_FIELDS.links]),
|
|
261
|
+
};
|
|
262
|
+
const problem = profileLinkLineProblem(typed.links);
|
|
263
|
+
if (problem !== undefined) {
|
|
264
|
+
c.status(400);
|
|
265
|
+
// Every box comes back holding exactly what was typed into it, the way
|
|
266
|
+
// the Navigation screen's does: a refused save that emptied the panel
|
|
267
|
+
// would cost somebody their bio to report a bad link.
|
|
268
|
+
return render(c, ADMIN_TEMPLATES.usersEdit, userScreen(c, target, { profileProblems: { links: problem } }, typed));
|
|
269
|
+
}
|
|
251
270
|
const changed = await setUserProfile({
|
|
252
271
|
dataDir,
|
|
253
272
|
userId: target.id,
|
|
254
|
-
profile: {
|
|
255
|
-
displayName: field(body[USER_FIELDS.displayName]),
|
|
256
|
-
bio: field(body[USER_FIELDS.bio]),
|
|
257
|
-
avatar: field(body[USER_FIELDS.avatar]),
|
|
258
|
-
jobTitle: field(body[USER_FIELDS.jobTitle]),
|
|
259
|
-
location: field(body[USER_FIELDS.location]),
|
|
260
|
-
links: parseProfileLinks(field(body[USER_FIELDS.links])),
|
|
261
|
-
},
|
|
273
|
+
profile: { ...typed, links: parseProfileLinks(typed.links) },
|
|
262
274
|
});
|
|
263
275
|
// The profile is the actor's profile now (decision-14), so saving it is
|
|
264
276
|
// also an announcement: a follower's copy of somebody's name, bio and
|
|
@@ -475,7 +487,14 @@ function addScreen(c, extra = {}) {
|
|
|
475
487
|
* emailed about, the password — only on your own page — and the delete, or the
|
|
476
488
|
* sentence saying why this account cannot go.
|
|
477
489
|
*/
|
|
478
|
-
function userScreen(c, user, extra = {}
|
|
490
|
+
function userScreen(c, user, extra = {},
|
|
491
|
+
/**
|
|
492
|
+
* What was typed into the Profile panel, where a save of it was refused: the
|
|
493
|
+
* boxes are drawn holding this instead of what is stored, so the line to fix
|
|
494
|
+
* is still on the screen and nothing else somebody wrote has been thrown
|
|
495
|
+
* away (TASK-112).
|
|
496
|
+
*/
|
|
497
|
+
typedProfile) {
|
|
479
498
|
const signedInAs = c.var.session?.userId ?? null;
|
|
480
499
|
const total = countUsers(c.var.config.dataDir);
|
|
481
500
|
return {
|
|
@@ -494,11 +513,15 @@ function userScreen(c, user, extra = {}) {
|
|
|
494
513
|
// `account` rather than `user`, which the chrome already holds: the bar
|
|
495
514
|
// says who is signed in, and this screen is about somebody who may well be
|
|
496
515
|
// anybody else.
|
|
497
|
-
account:
|
|
516
|
+
account: {
|
|
517
|
+
...row(user, { signedInAs, total }),
|
|
518
|
+
...(typedProfile === undefined ? {} : { profile: typedProfile }),
|
|
519
|
+
},
|
|
498
520
|
// Why this account cannot go, where it cannot, so the screen says it
|
|
499
521
|
// instead of offering a button it is about to refuse.
|
|
500
522
|
deleteRefusal: deleteUserRefusal({ target: user, signedInAs, total }),
|
|
501
523
|
passwordProblems: {},
|
|
524
|
+
profileProblems: {},
|
|
502
525
|
mailConfigured: c.var.mail.configured(),
|
|
503
526
|
...extra,
|
|
504
527
|
};
|
|
@@ -542,27 +565,76 @@ function field(value) {
|
|
|
542
565
|
* `setUserProfile`, so a list somebody emptied leaves no key behind.
|
|
543
566
|
*/
|
|
544
567
|
export function parseProfileLinks(value) {
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
568
|
+
return profileLinkLines(value).map(profileLinkFields);
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* What is wrong with a typed list of profile links, or `undefined` when
|
|
572
|
+
* nothing is.
|
|
573
|
+
*
|
|
574
|
+
* The check the box never had (TASK-112). A URL goes through
|
|
575
|
+
* {@link isLinkUrl}, the rule the Navigation screen's menu box already used,
|
|
576
|
+
* so `Elsewhere | not a url` is refused in both places and for the same
|
|
577
|
+
* reason. One message naming the first bad line, for the reason the menu box's
|
|
578
|
+
* message names one: a box is fixed a line at a time, and the line to fix is
|
|
579
|
+
* the useful half of the sentence.
|
|
580
|
+
*
|
|
581
|
+
* The same line as a menu item's, down to the `rel` values it may end in
|
|
582
|
+
* (TASK-114): somebody who learns one box has learned the other, and a
|
|
583
|
+
* trailing `| me` — the line that started all this — is a link rather than a
|
|
584
|
+
* mistake. A profile link is published `rel="me"` either way, so typing it is
|
|
585
|
+
* a no-op; typing `| me nofollow author` is three values on the rendered
|
|
586
|
+
* attribute.
|
|
587
|
+
*
|
|
588
|
+
* Tolerant on the way out and strict on the way in: {@link parseProfileLinks}
|
|
589
|
+
* and the file's own reader still take anything, so a link stored before this
|
|
590
|
+
* check existed still renders and still comes back in the box. Refusing a save
|
|
591
|
+
* is not refusing a read.
|
|
592
|
+
*/
|
|
593
|
+
export function profileLinkLineProblem(value) {
|
|
594
|
+
const bad = profileLinkLines(value).find((line) => !isProfileLink(profileLinkFields(line)));
|
|
595
|
+
if (bad === undefined)
|
|
596
|
+
return undefined;
|
|
597
|
+
return (`A profile link is "Label | URL", or a bare URL that labels itself, one ` +
|
|
598
|
+
`per line, where the URL is ${LINK_URL_RULE}, and may end in ` +
|
|
599
|
+
`${LINK_REL_RULE}. "${bad}" is not one.`);
|
|
600
|
+
}
|
|
601
|
+
/** The non-empty lines of the Links box, trimmed. A blank line asks for nothing. */
|
|
602
|
+
function profileLinkLines(value) {
|
|
603
|
+
return value
|
|
604
|
+
.split('\n')
|
|
605
|
+
.map((line) => line.trim())
|
|
606
|
+
.filter((line) => line !== '');
|
|
607
|
+
}
|
|
608
|
+
/**
|
|
609
|
+
* One typed line split where a profile link splits: its `rel` values off the
|
|
610
|
+
* end, then at its first bar, so a label cannot hold one and a line with no
|
|
611
|
+
* bar left is a URL that labels itself.
|
|
612
|
+
*
|
|
613
|
+
* The split alone, with nothing said about whether what came out is a link:
|
|
614
|
+
* one spelling for the line the box reads back and the line it checks, so the
|
|
615
|
+
* two can never disagree about which half is the URL. The tail comes off
|
|
616
|
+
* through {@link splitLinkRel}, the same call the menu box makes, which is
|
|
617
|
+
* what makes the two boxes one line format (TASK-114).
|
|
618
|
+
*/
|
|
619
|
+
function profileLinkFields(line) {
|
|
620
|
+
const { text, rel } = splitLinkRel(line);
|
|
621
|
+
const carried = rel === '' ? {} : { rel };
|
|
622
|
+
const bar = text.indexOf('|');
|
|
623
|
+
if (bar === -1)
|
|
624
|
+
return { label: text, href: text, ...carried };
|
|
625
|
+
return { label: text.slice(0, bar).trim(), href: text.slice(bar + 1).trim(), ...carried };
|
|
626
|
+
}
|
|
627
|
+
/** Whether a split line is a link: somewhere to go, and something to call it. */
|
|
628
|
+
function isProfileLink(link) {
|
|
629
|
+
return link.label !== '' && isLinkUrl(link.href);
|
|
561
630
|
}
|
|
562
631
|
/** A stored list of links back as the textarea shows it. */
|
|
563
632
|
export function formatProfileLinks(links) {
|
|
564
633
|
return (links ?? [])
|
|
565
|
-
.map((link) =>
|
|
634
|
+
.map((link) => {
|
|
635
|
+
const line = link.label === link.href ? link.href : `${link.label} | ${link.href}`;
|
|
636
|
+
return link.rel === undefined || link.rel === '' ? line : `${line} | ${link.rel}`;
|
|
637
|
+
})
|
|
566
638
|
.join('\n');
|
|
567
639
|
}
|
|
568
640
|
/** One user, as the table lists them and as their own screen edits them. */
|