wiki-formant 0.8.0 → 0.9.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/dist/react.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type ComboboxAria } from './combobox.js';
2
- import { type CSSProperties, type KeyboardEvent, type ReactNode } from 'react';
2
+ import { Component, type CSSProperties, type KeyboardEvent, type ReactNode } from 'react';
3
3
  export interface SidebarOptions {
4
4
  /**
5
5
  * Where the reader's choice is remembered, in `localStorage`. Give each wiki
@@ -160,7 +160,7 @@ export interface TypeaheadState<T> {
160
160
  * with a desktop and a mobile field renders both into the same document, and
161
161
  * one id set across the two duplicates every option id.
162
162
  */
163
- combobox: (listKey?: string) => ComboboxAria;
163
+ combobox: (listKey?: string, open?: boolean) => ComboboxAria;
164
164
  }
165
165
  /**
166
166
  * The debounced-search state machine behind every typeahead on these sites.
@@ -223,4 +223,73 @@ export interface LinkPreviewState<T> {
223
223
  * three things, and those three are the options above.
224
224
  */
225
225
  export declare function useLinkPreview<T>({ eligible, fetch, cardClassName, cardWidth, cardHeight, showDelay, hideDelay, margin, }: LinkPreviewOptions<T>): LinkPreviewState<T>;
226
+ export type SortDirection = 'asc' | 'desc';
227
+ export interface TableSortState<T, K extends string> {
228
+ sorted: T[];
229
+ sortKey: K;
230
+ direction: SortDirection;
231
+ /** Spread onto a header cell. `active` is what drives `aria-sort`. */
232
+ headerProps: (key: K) => {
233
+ sortKey: K;
234
+ active: boolean;
235
+ direction: SortDirection;
236
+ onSort: (key: K) => void;
237
+ 'aria-sort': 'ascending' | 'descending' | 'none';
238
+ };
239
+ toggle: (key: K) => void;
240
+ }
241
+ /**
242
+ * One active column, direction toggling on re-click, every table the same.
243
+ *
244
+ * One repo had this as a hook; the other inlined the identical state machine in
245
+ * two chart tables, differing only in the `useState` seed and the comparator
246
+ * payload. The comparator record replaces the `if`-chain those copies used, so
247
+ * adding a column is a map entry rather than another branch.
248
+ *
249
+ * `aria-sort` is emitted here because only one of the two header components had
250
+ * it, and a sortable column that never announces its direction is a button whose
251
+ * effect a screen reader cannot observe.
252
+ */
253
+ export declare function useTableSort<T, K extends string>(rows: readonly T[], config: {
254
+ defaultKey: K;
255
+ comparators: Record<K, (a: T, b: T) => number>;
256
+ defaultDirection?: SortDirection;
257
+ }): TableSortState<T, K>;
258
+ /**
259
+ * "Copied", then not, after a beat. Six call sites across three repos wrote the
260
+ * same three statements, and four of the six had no rejection handler — so a
261
+ * denied clipboard permission left the button claiming success. The imperative
262
+ * twin in `wiki-formant/dom` has handled that since it was extracted.
263
+ *
264
+ * The key form is for a surface with several copyable things and one indicator:
265
+ * `copied === 'cite'` rather than a boolean per button.
266
+ */
267
+ export declare function useCopy<K extends string = string>(revertAfter?: number): {
268
+ copied: K | null;
269
+ copy: (text: string, key?: K) => Promise<boolean>;
270
+ };
271
+ /**
272
+ * The one thing hooks cannot express, so it is worth owning once.
273
+ *
274
+ * `fallback` is a render prop taking a `retry` closure, which is the better of
275
+ * the two shapes this was lifted from: the other hardcoded its own "Try again"
276
+ * button and so could not be restyled or relabelled by a caller. Recovery is the
277
+ * caller's, and the boundary only decides when to offer it.
278
+ */
279
+ export declare class ErrorBoundary extends Component<{
280
+ children: ReactNode;
281
+ fallback: (retry: () => void) => ReactNode;
282
+ onError?: (error: unknown) => void;
283
+ }, {
284
+ failed: boolean;
285
+ }> {
286
+ state: {
287
+ failed: boolean;
288
+ };
289
+ static getDerivedStateFromError(): {
290
+ failed: boolean;
291
+ };
292
+ componentDidCatch(error: unknown): void;
293
+ render(): ReactNode;
294
+ }
226
295
  //# sourceMappingURL=react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"AA8BA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACL,SAAS,EAUT,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,+EAA+E;IAC/E,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAaD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,cAAmB,GAAG,YAAY,CAsDhF;AAUD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,oBAAoB,gGAG7E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAIzC;AAID,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,sEAAsE;IACtE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,SAAS,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAKD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAC9B,iBAAiB,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EACR,UAAe,EACf,IAAI,EACJ,KAAsB,EACtB,IAAI,EACJ,SAAS,EACT,cAAmB,EACnB,SAAgB,EAChB,KAAY,GACb,EAAE,oBAAoB,+BA6ItB;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,IAAI,uCAWzE;AAID,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC;;;;;;;OAOG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,8DAA8D;IAC9D,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,yDAAyD;IACzD,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB;;;;;;;OAOG;IACH,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,YAAY,CAAC;CAC9D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC9B,KAAK,EACL,MAAM,EACN,QAAQ,EACR,KAAW,EACX,SAAa,EACb,KAAY,GACb,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CA+GzC;AAID,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;;;OAIG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC;IACjD,kFAAkF;IAClF,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,gEAAgE;IAChE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE;QACT,KAAK,EAAE,aAAa,CAAC;QACrB,YAAY,EAAE,MAAM,IAAI,CAAC;QACzB,YAAY,EAAE,MAAM,IAAI,CAAC;KAC1B,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAChC,QAAQ,EACR,KAAK,EACL,aAAmC,EACnC,SAAe,EACf,UAAgB,EAChB,SAAe,EACf,SAAe,EACf,MAAU,GACX,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CA6F7C;AAID,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM;IACjD,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,aAAa,CAAC;IACzB,sEAAsE;IACtE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK;QACvB,OAAO,EAAE,CAAC,CAAC;QACX,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,aAAa,CAAC;QACzB,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;QACzB,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;KAClD,CAAC;IACF,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAC9C,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,MAAM,EAAE;IAAE,UAAU,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;IAAC,gBAAgB,CAAC,EAAE,aAAa,CAAA;CAAE,GAC1G,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAyCtB;AAID;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,WAAW,SAAO,GAAG;IACtE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD,CAwBA;AAID;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,SAAS,CAC1C;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,EACvG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CACpB;IACC,KAAK;;MAAqB;IAE1B,MAAM,CAAC,wBAAwB;;;IAI/B,iBAAiB,CAAC,KAAK,EAAE,OAAO;IAIhC,MAAM;CAIP"}
package/dist/react.js CHANGED
@@ -28,7 +28,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
28
28
  // sync afterwards, so CSS has one source of truth either side of hydration.
29
29
  import { resolveSidebarOpen, SIDEBAR_ATTRIBUTE } from './sidebar.js';
30
30
  import { comboboxAria } from './combobox.js';
31
- import { createContext, createElement, useCallback, useContext, useEffect, useId, useMemo, useRef, useState, } from 'react';
31
+ import { Component, createContext, createElement, useCallback, useContext, useEffect, useId, useMemo, useRef, useState, } from 'react';
32
32
  const readStored = (key) => {
33
33
  try {
34
34
  const raw = window.localStorage.getItem(key);
@@ -359,7 +359,7 @@ export function useTypeahead({ fetch, onPick, onEscape, delay = 200, minLength =
359
359
  // The ids have to be stable per mount and unique per surface; `useId` is what
360
360
  // makes a second typeahead on the same page legal.
361
361
  const baseId = useId();
362
- const combobox = useCallback((listKey) => comboboxAria({ baseId, listKey, count: items.length, highlight }), [baseId, items.length, highlight]);
362
+ const combobox = useCallback((listKey, open) => comboboxAria({ baseId, listKey, count: items.length, highlight, open }), [baseId, items.length, highlight]);
363
363
  return {
364
364
  query,
365
365
  setQuery,
@@ -473,4 +473,102 @@ export function useLinkPreview({ eligible, fetch, cardClassName = 'link-preview-
473
473
  },
474
474
  };
475
475
  }
476
+ /**
477
+ * One active column, direction toggling on re-click, every table the same.
478
+ *
479
+ * One repo had this as a hook; the other inlined the identical state machine in
480
+ * two chart tables, differing only in the `useState` seed and the comparator
481
+ * payload. The comparator record replaces the `if`-chain those copies used, so
482
+ * adding a column is a map entry rather than another branch.
483
+ *
484
+ * `aria-sort` is emitted here because only one of the two header components had
485
+ * it, and a sortable column that never announces its direction is a button whose
486
+ * effect a screen reader cannot observe.
487
+ */
488
+ export function useTableSort(rows, config) {
489
+ const { defaultKey, comparators, defaultDirection = 'desc' } = config;
490
+ const [sortKey, setSortKey] = useState(defaultKey);
491
+ const [direction, setDirection] = useState(defaultDirection);
492
+ const toggle = useCallback((key) => {
493
+ if (key === sortKey)
494
+ setDirection(d => (d === 'desc' ? 'asc' : 'desc'));
495
+ else {
496
+ setSortKey(key);
497
+ setDirection(defaultDirection);
498
+ }
499
+ }, [sortKey, defaultDirection]);
500
+ const sorted = useMemo(() => {
501
+ const comparator = comparators[sortKey];
502
+ if (!comparator)
503
+ return [...rows];
504
+ const multiplier = direction === 'asc' ? 1 : -1;
505
+ return [...rows].sort((a, b) => multiplier * comparator(a, b));
506
+ }, [rows, sortKey, direction, comparators]);
507
+ const headerProps = useCallback((key) => {
508
+ const active = key === sortKey;
509
+ return {
510
+ sortKey: key,
511
+ active,
512
+ direction,
513
+ onSort: toggle,
514
+ 'aria-sort': (active ? (direction === 'asc' ? 'ascending' : 'descending') : 'none'),
515
+ };
516
+ }, [sortKey, direction, toggle]);
517
+ return { sorted, sortKey, direction, headerProps, toggle };
518
+ }
519
+ // ---- copy to clipboard ------------------------------------------------------
520
+ /**
521
+ * "Copied", then not, after a beat. Six call sites across three repos wrote the
522
+ * same three statements, and four of the six had no rejection handler — so a
523
+ * denied clipboard permission left the button claiming success. The imperative
524
+ * twin in `wiki-formant/dom` has handled that since it was extracted.
525
+ *
526
+ * The key form is for a surface with several copyable things and one indicator:
527
+ * `copied === 'cite'` rather than a boolean per button.
528
+ */
529
+ export function useCopy(revertAfter = 2000) {
530
+ const [copied, setCopied] = useState(null);
531
+ const timer = useRef(null);
532
+ // A component unmounted inside the revert window would otherwise set state on
533
+ // a dead tree.
534
+ useEffect(() => () => { if (timer.current)
535
+ clearTimeout(timer.current); }, []);
536
+ const copy = useCallback(async (text, key) => {
537
+ try {
538
+ await navigator.clipboard.writeText(text);
539
+ }
540
+ catch {
541
+ return false;
542
+ }
543
+ setCopied((key ?? 'copied'));
544
+ if (timer.current)
545
+ clearTimeout(timer.current);
546
+ timer.current = setTimeout(() => setCopied(null), revertAfter);
547
+ return true;
548
+ }, [revertAfter]);
549
+ return { copied, copy };
550
+ }
551
+ // ---- error boundary ---------------------------------------------------------
552
+ /**
553
+ * The one thing hooks cannot express, so it is worth owning once.
554
+ *
555
+ * `fallback` is a render prop taking a `retry` closure, which is the better of
556
+ * the two shapes this was lifted from: the other hardcoded its own "Try again"
557
+ * button and so could not be restyled or relabelled by a caller. Recovery is the
558
+ * caller's, and the boundary only decides when to offer it.
559
+ */
560
+ export class ErrorBoundary extends Component {
561
+ state = { failed: false };
562
+ static getDerivedStateFromError() {
563
+ return { failed: true };
564
+ }
565
+ componentDidCatch(error) {
566
+ this.props.onError?.(error);
567
+ }
568
+ render() {
569
+ if (this.state.failed)
570
+ return this.props.fallback(() => this.setState({ failed: false }));
571
+ return this.props.children;
572
+ }
573
+ }
476
574
  //# sourceMappingURL=react.js.map
package/dist/react.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { type ChangeType, type SemVer } from './versioning.js';
2
+ /** The only two fields this module needs from a block. */
3
+ export interface DiffBlock {
4
+ id: string;
5
+ type: string;
6
+ }
7
+ /**
8
+ * One nested group, with the path segment that addresses it.
9
+ *
10
+ * The segment is part of the contract rather than derived, because the path is
11
+ * what a reviewing UI anchors on: `root.1.columns.0.blocks.2` has to keep
12
+ * meaning the same block across releases, and only the consumer knows how its
13
+ * own containers are addressed.
14
+ */
15
+ export interface BlockGroup<B> {
16
+ path: string;
17
+ blocks: B[];
18
+ }
19
+ export interface BlockChange<L = unknown> {
20
+ id: string;
21
+ action: 'added' | 'removed' | 'modified' | 'moved';
22
+ type: string;
23
+ /** e.g. `root.0`, or `root.1.columns.0.blocks.2`. */
24
+ path: string;
25
+ attributes?: Record<string, {
26
+ from: unknown;
27
+ to: unknown;
28
+ }>;
29
+ /** Whatever `leafDiff` returned. Absent when no `leafDiff` was supplied. */
30
+ leafDiff?: L;
31
+ }
32
+ export interface RevisionDiff<L = unknown> {
33
+ version: SemVer;
34
+ changeType: ChangeType;
35
+ changes: BlockChange<L>[];
36
+ titleChanged: boolean;
37
+ /** A page-level flag outside the block tree — a banner, a notice, a status. */
38
+ metaChanged: boolean;
39
+ summary: string;
40
+ }
41
+ export interface DiffOptions<B, L> {
42
+ /** Nested groups in document order, or `null` for a leaf. */
43
+ containers: (block: B) => BlockGroup<B>[] | null;
44
+ /**
45
+ * A richer diff for one leaf, when the consumer has one to give. `from` is
46
+ * null for an addition, `to` is null for a removal. Return `undefined` to
47
+ * record nothing, which is the right answer for most block types.
48
+ */
49
+ leafDiff?: (from: B | null, to: B | null) => L | undefined;
50
+ }
51
+ interface Located<B> {
52
+ block: B;
53
+ path: string;
54
+ }
55
+ /** Every block in the tree, flattened, each with the path that addresses it. */
56
+ export declare function extractBlocks<B>(blocks: readonly B[], containers: (block: B) => BlockGroup<B>[] | null, basePath?: string): Located<B>[];
57
+ /**
58
+ * Which scalar fields differ. Nested block arrays are skipped: they are walked
59
+ * as their own entries, and comparing them here would report a container as
60
+ * modified every time anything inside it moved.
61
+ */
62
+ export declare function diffAttributes<B extends DiffBlock>(oldBlock: B, newBlock: B, nestedKeys: readonly string[]): Record<string, {
63
+ from: unknown;
64
+ to: unknown;
65
+ }> | undefined;
66
+ /**
67
+ * Blocks matched by id, so a block that moved is reported as moved rather than
68
+ * as one removal and one addition.
69
+ */
70
+ export declare function diffBlocks<B extends DiffBlock, L = unknown>(oldBlocks: readonly B[], newBlocks: readonly B[], opts: DiffOptions<B, L>): BlockChange<L>[];
71
+ /**
72
+ * `major` for structure, `minor` for prose, `patch` for a page-level flag.
73
+ *
74
+ * A `modified` change is only ever recorded when `diffAttributes` returned
75
+ * something, so a non-empty change set is always at least a minor bump.
76
+ */
77
+ export declare function classifyChanges(changes: readonly BlockChange<unknown>[], titleChanged: boolean, metaChanged?: boolean): ChangeType;
78
+ export declare function changeSummary(diff: {
79
+ changes: readonly BlockChange<unknown>[];
80
+ titleChanged: boolean;
81
+ metaChanged?: boolean;
82
+ metaLabel?: string;
83
+ }): string;
84
+ export declare function computeRevisionDiff<B extends DiffBlock, L = unknown>(opts: {
85
+ currentVersion: string | null | undefined;
86
+ oldContent: readonly B[];
87
+ newContent: readonly B[];
88
+ oldTitle: string;
89
+ newTitle: string;
90
+ /** A page-level value outside the block tree; compared by strict equality. */
91
+ oldMeta?: unknown;
92
+ newMeta?: unknown;
93
+ /** What to call that value in the summary. Defaults to `banner`. */
94
+ metaLabel?: string;
95
+ containers: DiffOptions<B, L>['containers'];
96
+ leafDiff?: DiffOptions<B, L>['leafDiff'];
97
+ }): RevisionDiff<L>;
98
+ export {};
99
+ //# sourceMappingURL=revisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revisions.d.ts","sourceRoot":"","sources":["../src/revisions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ // revisions.ts — what changed between two versions of a page.
2
+ //
3
+ // The semver lives next door in `versioning.ts`; this is the walk that decides
4
+ // which bump to ask for. Both wikis had written it, and `extractBlocks` was
5
+ // byte-identical between the two copies.
6
+ //
7
+ // They differed in what each had learned since. One grew a leaf-level diff, a
8
+ // second changed-flag for the page's banner, and a `patch` classification for
9
+ // when only that flag moved. The other grew none of those and instead dropped
10
+ // twenty-five lines the first still carries: two Maps keyed by a recursive
11
+ // JSON.stringify of every block, built on every save and never read once.
12
+ // Matching is by id and always was.
13
+ //
14
+ // This is the union, minus the dead half.
15
+ import { incrementVersion, parseVersion } from './versioning.js';
16
+ /** Every block in the tree, flattened, each with the path that addresses it. */
17
+ export function extractBlocks(blocks, containers, basePath = 'root') {
18
+ const out = [];
19
+ blocks.forEach((block, i) => {
20
+ const path = `${basePath}.${i}`;
21
+ out.push({ block, path });
22
+ for (const group of containers(block) ?? []) {
23
+ out.push(...extractBlocks(group.blocks, containers, `${path}.${group.path}`));
24
+ }
25
+ });
26
+ return out;
27
+ }
28
+ /**
29
+ * Which scalar fields differ. Nested block arrays are skipped: they are walked
30
+ * as their own entries, and comparing them here would report a container as
31
+ * modified every time anything inside it moved.
32
+ */
33
+ export function diffAttributes(oldBlock, newBlock, nestedKeys) {
34
+ const diffs = {};
35
+ const skip = new Set(['id', 'type', ...nestedKeys]);
36
+ for (const key of new Set([...Object.keys(oldBlock), ...Object.keys(newBlock)])) {
37
+ if (skip.has(key))
38
+ continue;
39
+ const from = oldBlock[key];
40
+ const to = newBlock[key];
41
+ if (JSON.stringify(from) !== JSON.stringify(to))
42
+ diffs[key] = { from, to };
43
+ }
44
+ return Object.keys(diffs).length > 0 ? diffs : undefined;
45
+ }
46
+ /**
47
+ * Blocks matched by id, so a block that moved is reported as moved rather than
48
+ * as one removal and one addition.
49
+ */
50
+ export function diffBlocks(oldBlocks, newBlocks, opts) {
51
+ const nestedKeys = nestedKeysOf(oldBlocks, newBlocks, opts.containers);
52
+ const changes = [];
53
+ const oldFlat = extractBlocks(oldBlocks, opts.containers);
54
+ const newFlat = extractBlocks(newBlocks, opts.containers);
55
+ const matchedOld = new Set();
56
+ const matchedNew = new Set();
57
+ const oldById = new Map(oldFlat.map(item => [item.block.id, item]));
58
+ const newById = new Map(newFlat.map(item => [item.block.id, item]));
59
+ for (const [id, oldItem] of oldById) {
60
+ const newItem = newById.get(id);
61
+ if (!newItem)
62
+ continue;
63
+ matchedOld.add(oldItem.path);
64
+ matchedNew.add(newItem.path);
65
+ if (oldItem.path !== newItem.path) {
66
+ changes.push({
67
+ id,
68
+ action: 'moved',
69
+ type: oldItem.block.type,
70
+ path: newItem.path,
71
+ attributes: { position: { from: oldItem.path, to: newItem.path } },
72
+ });
73
+ }
74
+ const attributes = diffAttributes(oldItem.block, newItem.block, nestedKeys);
75
+ if (attributes) {
76
+ changes.push({
77
+ id,
78
+ action: 'modified',
79
+ type: newItem.block.type,
80
+ path: newItem.path,
81
+ attributes,
82
+ leafDiff: opts.leafDiff?.(oldItem.block, newItem.block),
83
+ });
84
+ }
85
+ }
86
+ for (const item of oldFlat) {
87
+ if (matchedOld.has(item.path) || newById.has(item.block.id))
88
+ continue;
89
+ changes.push({
90
+ id: item.block.id,
91
+ action: 'removed',
92
+ type: item.block.type,
93
+ path: item.path,
94
+ leafDiff: opts.leafDiff?.(item.block, null),
95
+ });
96
+ }
97
+ for (const item of newFlat) {
98
+ if (matchedNew.has(item.path) || oldById.has(item.block.id))
99
+ continue;
100
+ changes.push({
101
+ id: item.block.id,
102
+ action: 'added',
103
+ type: item.block.type,
104
+ path: item.path,
105
+ leafDiff: opts.leafDiff?.(null, item.block),
106
+ });
107
+ }
108
+ return changes;
109
+ }
110
+ /** The keys a container holds its children under, so they are not diffed twice. */
111
+ function nestedKeysOf(oldBlocks, newBlocks, containers) {
112
+ const keys = new Set();
113
+ for (const block of [...oldBlocks, ...newBlocks]) {
114
+ for (const group of containers(block) ?? []) {
115
+ const head = group.path.split('.')[0];
116
+ if (head)
117
+ keys.add(head);
118
+ }
119
+ }
120
+ return [...keys];
121
+ }
122
+ /**
123
+ * `major` for structure, `minor` for prose, `patch` for a page-level flag.
124
+ *
125
+ * A `modified` change is only ever recorded when `diffAttributes` returned
126
+ * something, so a non-empty change set is always at least a minor bump.
127
+ */
128
+ export function classifyChanges(changes, titleChanged, metaChanged = false) {
129
+ if (changes.length === 0 && !titleChanged && !metaChanged)
130
+ return 'none';
131
+ if (changes.some(c => c.action === 'added' || c.action === 'removed' || c.action === 'moved')) {
132
+ return 'major';
133
+ }
134
+ if (changes.length > 0 || titleChanged)
135
+ return 'minor';
136
+ return 'patch';
137
+ }
138
+ export function changeSummary(diff) {
139
+ const parts = [];
140
+ if (diff.titleChanged)
141
+ parts.push('title updated');
142
+ if (diff.metaChanged)
143
+ parts.push(`${diff.metaLabel ?? 'banner'} updated`);
144
+ const count = (action) => diff.changes.filter(c => c.action === action).length;
145
+ const plural = (n, word) => `${n} ${word}${n > 1 ? 's' : ''}`;
146
+ for (const [action, verb] of [
147
+ ['added', 'added'],
148
+ ['removed', 'removed'],
149
+ ['modified', 'modified'],
150
+ ['moved', 'reordered'],
151
+ ]) {
152
+ const n = count(action);
153
+ if (n)
154
+ parts.push(`${plural(n, 'block')} ${verb}`);
155
+ }
156
+ return parts.length > 0 ? parts.join(', ') : 'no changes';
157
+ }
158
+ export function computeRevisionDiff(opts) {
159
+ const changes = diffBlocks(opts.oldContent, opts.newContent, {
160
+ containers: opts.containers,
161
+ leafDiff: opts.leafDiff,
162
+ });
163
+ const titleChanged = opts.oldTitle !== opts.newTitle;
164
+ const metaChanged = opts.oldMeta !== opts.newMeta;
165
+ const changeType = classifyChanges(changes, titleChanged, metaChanged);
166
+ const partial = {
167
+ version: incrementVersion(parseVersion(opts.currentVersion), changeType),
168
+ changeType,
169
+ changes,
170
+ titleChanged,
171
+ metaChanged,
172
+ };
173
+ return { ...partial, summary: changeSummary({ ...partial, metaLabel: opts.metaLabel }) };
174
+ }
175
+ //# sourceMappingURL=revisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revisions.js","sourceRoot":"","sources":["../src/revisions.ts"],"names":[],"mappings":"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"}
@@ -80,4 +80,31 @@ export interface AgentCardConfig {
80
80
  * means half the callers conclude the origin has no agent at all.
81
81
  */
82
82
  export declare function agentCard(config: AgentCardConfig): Record<string, unknown>;
83
+ /** The registry manifest (`server.json`) fields a card projects. */
84
+ export interface ServerManifest {
85
+ name: string;
86
+ title?: string;
87
+ description?: string;
88
+ version: string;
89
+ websiteUrl?: string;
90
+ remotes?: ReadonlyArray<Record<string, unknown>>;
91
+ }
92
+ export declare const SERVER_CARD_SCHEMA = "https://static.modelcontextprotocol.io/schemas/draft/server-card.schema.json";
93
+ /**
94
+ * The card served at `<mcp-url>/server-card`.
95
+ *
96
+ * Status: the Server Card extension is a DRAFT (SEP-1649 / SEP-2127) whose
97
+ * location has already moved once, from `/.well-known/mcp.json` to that path.
98
+ * It costs nothing to keep correct, because every field is projected from the
99
+ * registry manifest that already single-sources the version. If the draft moves
100
+ * again, move the route; if it dies, delete it.
101
+ *
102
+ * Projection is the point. One repo retyped `title` and `description` as
103
+ * literals beside the manifest it was already importing, so it carried two
104
+ * copies of its own description with nothing comparing them; a third retyped
105
+ * them again in a different route. Passing the manifest makes that unspellable.
106
+ *
107
+ * Cards deliberately omit tool listings — that is what `tools/list` is for.
108
+ */
109
+ export declare function serverCard(manifest: ServerManifest, protocolVersion: string): Record<string, unknown>;
83
110
  //# sourceMappingURL=well-known.d.ts.map