@ascribed/review 0.1.2-next.4 → 0.1.2-next.6
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/github/index.js.map +1 -1
- package/dist/github/marker.js.map +1 -1
- package/dist/github/queries.js.map +1 -1
- package/dist/github/read.js.map +1 -1
- package/dist/github/repository.js.map +1 -1
- package/dist/github/requests.js.map +1 -1
- package/dist/github/session.js.map +1 -1
- package/dist/github/transport.js.map +1 -1
- package/dist/marks/index.js.map +1 -1
- package/dist/overlay/index.js.map +1 -1
- package/dist/overlay/markdown.js.map +1 -1
- package/dist/overlay/overlay.js.map +1 -1
- package/dist/overlay/style.js.map +1 -1
- package/dist/overlay/text.js.map +1 -1
- package/dist/overlay/types.js.map +1 -1
- package/dist/place/anchor.js.map +1 -1
- package/dist/place/index.js.map +1 -1
- package/dist/place/lines.js.map +1 -1
- package/dist/place/place.js.map +1 -1
- package/dist/shared/errors.js.map +1 -1
- package/dist/shared/git.js.map +1 -1
- package/dist/shared/types.js.map +1 -1
- package/package.json +3 -3
package/dist/marks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/marks/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/marks/index.ts"],"names":[],"mappings":"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","sourcesContent":["// @ascribed/review/marks: marks what changed on a rendered page, in the\n// browser.\n//\n// The page is Ascribe's site output rendered with source anchors (the\n// site-render contract, §7): every block's element carries\n// `data-ascribe-source`, and `data-ascribe-via` when it came through\n// includes. The changes are `ascribe diff --format json`'s, for that page.\n// `markChanges` applies them to the page's elements; `marks.css` (exported\n// as `@ascribed/review/marks.css`) draws them, and `setShow` switches between\n// the changes, the page as it will be, and the page as it was.\n//\n// Everything the marks add is an element with `data-ascribe-ui`, and every\n// element they change gets `data-ascribe-change`, so `clearMarks` can put the\n// page back as it was rendered.\n\n/** Where a block is written: the anchor grammar's `source` and `via`. */\nexport interface Anchor {\n source: string;\n via: string[];\n}\n\n/** The words that differ inside a changed block of prose. */\nexport interface Words {\n /** `[start, end)` ranges, in characters, of `now_text`. */\n now: [number, number][];\n /** `[start, end)` ranges, in characters, of `was_text`. */\n was: [number, number][];\n now_text: string;\n was_text: string;\n}\n\n/** One block's change, as `ascribe diff --format json` writes it. */\nexport interface Change {\n kind: \"changed\" | \"added\" | \"removed\" | \"moved\";\n now?: Anchor;\n was?: Anchor;\n words?: Words;\n after?: Anchor;\n parent?: Anchor;\n text?: string;\n}\n\n/** What the page shows: its changes, the page as it will be, or as it was. */\nexport type Show = \"changes\" | \"will\" | \"was\";\n\nexport interface MarkOptions {\n /**\n * The page as it was, rendered with anchors. Removed blocks, and moved\n * blocks at their old place, are copied from it; without it they're shown\n * from the change's `text`, and \"as it was\" shows changed prose from its\n * words.\n */\n was?: ParentNode | null;\n}\n\n/** A change as marked on the page. */\nexport interface Mark {\n change: Change;\n /** The element to go to: the block now, or what stands for a removed one. */\n element: HTMLElement;\n}\n\nconst LABELS: Record<Change[\"kind\"], string> = {\n added: \"Added\",\n changed: \"Changed\",\n removed: \"Removed\",\n moved: \"Moved\",\n};\n\n/** Blocks a label can start, inline, as their first child. */\nconst LABEL_INSIDE = new Set([\n \"p\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"li\",\n \"dt\",\n \"dd\",\n \"summary\",\n \"td\",\n \"th\",\n // A tab's panel: before it would put the label among the tab list's panels.\n \"ascribe-tab\",\n]);\n\n/** A parsed anchor source: the path, decoded, and the lines. */\nexport interface Source {\n path: string;\n first: number;\n last: number;\n}\n\n/** Parses `<path>:<first>-<last>`, splitting at the last `:`. */\nexport function parseSource(source: string): Source | undefined {\n const colon = source.lastIndexOf(\":\");\n if (colon < 0) return undefined;\n const match = /^(\\d+)-(\\d+)$/.exec(source.slice(colon + 1));\n if (!match) return undefined;\n let path = source.slice(0, colon);\n try {\n path = decodeURIComponent(path);\n } catch {\n // Not percent-encoded as the grammar says; show it as it is.\n }\n return { path, first: Number(match[1]), last: Number(match[2]) };\n}\n\n/** `guides/install.md:12`, or `guides/install.md:12-14`, and its includes. */\nexport function describeSource(source: string, via?: string | null): string {\n const parsed = parseSource(source);\n let text = source;\n if (parsed) {\n const lines =\n parsed.first === parsed.last ? `${parsed.first}` : `${parsed.first}-${parsed.last}`;\n text = `${parsed.path}:${lines}`;\n }\n if (via) {\n const outer = via.split(\" \").map((v) => {\n const colon = v.lastIndexOf(\":\");\n if (colon < 0) return v;\n try {\n return `${decodeURIComponent(v.slice(0, colon))}${v.slice(colon)}`;\n } catch {\n return v;\n }\n });\n text += ` via ${outer.join(\", \")}`;\n }\n return text;\n}\n\nfunction viaOf(element: Element): string {\n return element.getAttribute(\"data-ascribe-via\") ?? \"\";\n}\n\n/**\n * The element of a block: the one with exactly its anchor, or, when there's\n * none (a paragraph in a tight list item has no element of its own), the\n * smallest anchored element with the same file and includes whose lines\n * contain it.\n */\nexport function findBlock(root: ParentNode, anchor: Anchor): HTMLElement | null {\n const via = anchor.via.join(\" \");\n const anchored = Array.from(root.querySelectorAll<HTMLElement>(\"[data-ascribe-source]\"));\n const exact = anchored.find(\n (el) => el.getAttribute(\"data-ascribe-source\") === anchor.source && viaOf(el) === via,\n );\n if (exact) return exact;\n const want = parseSource(anchor.source);\n if (!want) return null;\n let best: HTMLElement | null = null;\n let bestSpan = Infinity;\n for (const el of anchored) {\n if (viaOf(el) !== via) continue;\n const has = parseSource(el.getAttribute(\"data-ascribe-source\") ?? \"\");\n if (!has || has.path !== want.path) continue;\n if (has.first > want.first || has.last < want.last) continue;\n const span = has.last - has.first;\n if (span < bestSpan) {\n best = el;\n bestSpan = span;\n }\n }\n return best;\n}\n\nfunction ui<K extends keyof HTMLElementTagNameMap>(\n doc: Document,\n tag: K,\n className: string,\n text?: string,\n): HTMLElementTagNameMap[K] {\n const el = doc.createElement(tag);\n el.className = className;\n el.setAttribute(\"data-ascribe-ui\", \"\");\n if (text !== undefined) el.textContent = text;\n return el;\n}\n\n/** A label, inside the block at its start, or just before it. */\nfunction addLabel(element: HTMLElement, kind: Change[\"kind\"]): void {\n const doc = element.ownerDocument;\n const label = ui(doc, \"span\", \"ascribe-label\", LABELS[kind]);\n label.setAttribute(\"data-ascribe-label\", kind);\n if (LABEL_INSIDE.has(element.localName)) {\n element.prepend(label);\n } else {\n label.classList.add(\"ascribe-label-before\");\n element.before(label);\n }\n}\n\n/**\n * What goes in `holder` to show `before`, a block of the page as it was: a\n * copy, or for an item going into an item, the copy's contents.\n */\nfunction contentOf(holder: Element, before: Element): Node[] {\n const copy = copyOf(before);\n if (holder.localName === \"li\" && copy.localName === \"li\") return Array.from(copy.childNodes);\n return [copy];\n}\n\n/** A copy of a block of the page as it was, without its anchors or ids. */\nfunction copyOf(element: Element): HTMLElement {\n const copy = element.cloneNode(true) as HTMLElement;\n for (const el of [copy, ...Array.from(copy.querySelectorAll(\"*\"))]) {\n el.removeAttribute(\"data-ascribe-source\");\n el.removeAttribute(\"data-ascribe-via\");\n el.removeAttribute(\"id\");\n }\n return copy;\n}\n\n/** The element to add beside `sibling`: an item in a list, else a `div`. */\nfunction holderFor(container: Element): \"li\" | \"div\" {\n return container.localName === \"ul\" || container.localName === \"ol\" ? \"li\" : \"div\";\n}\n\n/** The nearest heading before `node` in `root`, as text. */\nfunction headingBefore(root: Element, node: Node): string | undefined {\n const headings = Array.from(root.querySelectorAll(\"h1, h2, h3, h4, h5, h6\"));\n let found: Element | undefined;\n for (const heading of headings) {\n if (heading === node || heading.contains(node)) {\n found = heading;\n break;\n }\n if (heading.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_FOLLOWING) found = heading;\n else break;\n }\n return found ? ownText(found).trim() : undefined;\n}\n\n/** An element's text without what the marks added. */\nfunction ownText(element: Element): string {\n let text = \"\";\n const walk = (node: Node): void => {\n for (const child of Array.from(node.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE) text += child.nodeValue ?? \"\";\n else if (child instanceof Element && !child.hasAttribute(\"data-ascribe-ui\")) walk(child);\n }\n };\n walk(element);\n return text.replace(/\\s+/g, \" \");\n}\n\n/** Where a removed block, or a moved block's old place, goes in the page now. */\nclass Placer {\n /** The last element placed after each block, so several stay in order. */\n #last = new Map<Element, Element>();\n #first = new Map<Element, Element>();\n\n constructor(readonly root: HTMLElement) {}\n\n /** Puts `make(container)`'s element where `change` was. */\n place(change: Change, make: (container: Element) => HTMLElement): HTMLElement {\n const after = change.after ? findBlock(this.root, change.after) : null;\n const parent = change.parent ? findBlock(this.root, change.parent) : null;\n if (after && after !== parent && after.parentElement) {\n let previous: Element = this.#last.get(after) ?? after;\n // Past what the marks put after the block itself: its copy as it\n // was, or its \"moved from\" link.\n for (\n let next = previous.nextElementSibling;\n next &&\n (next.hasAttribute(\"data-ascribe-was-only\") ||\n next.classList.contains(\"ascribe-move-after\"));\n next = next.nextElementSibling\n ) {\n previous = next;\n }\n const el = make(after.parentElement);\n // A label before the next block belongs to that block, so this goes\n // before it.\n previous.after(el);\n this.#last.set(after, el);\n return el;\n }\n const container = parent ?? this.root;\n const el = make(container);\n const previous = this.#first.get(container);\n if (previous) {\n previous.after(el);\n } else {\n // First among the container's blocks: before its first anchored\n // child, or its first label, or at its end.\n const first = Array.from(container.children).find(\n (c) => c.hasAttribute(\"data-ascribe-source\") || c.hasAttribute(\"data-ascribe-ui\"),\n );\n if (first) first.before(el);\n else container.append(el);\n }\n this.#first.set(container, el);\n return el;\n }\n}\n\n/** A text position: the text node, and the offset in it in UTF-16 units. */\ninterface At {\n node: Text;\n offset: number;\n}\n\n/**\n * The block's own text, whitespace collapsed as `ascribe diff` collapses it,\n * with where each character is: text inside the block's anchored children,\n * which are blocks of their own, and inside what the marks added, isn't its.\n */\nfunction textMap(element: Element): { text: string[]; at: At[] } {\n const chars: string[] = [];\n const at: At[] = [];\n let space = false;\n let spaceAt: At | undefined;\n const walk = (node: Node): void => {\n for (const child of Array.from(node.childNodes)) {\n if (child.nodeType === Node.TEXT_NODE) {\n const value = (child as Text).nodeValue ?? \"\";\n let offset = 0;\n for (const ch of value) {\n if (/\\s/.test(ch)) {\n if (!space) spaceAt = { node: child as Text, offset };\n space = true;\n } else {\n if (space && chars.length > 0 && spaceAt) {\n chars.push(\" \");\n at.push(spaceAt);\n }\n space = false;\n chars.push(ch);\n at.push({ node: child as Text, offset });\n }\n offset += ch.length;\n }\n } else if (\n child instanceof Element &&\n !child.hasAttribute(\"data-ascribe-ui\") &&\n !child.hasAttribute(\"data-ascribe-source\")\n ) {\n walk(child);\n }\n }\n };\n walk(element);\n return { text: chars, at };\n}\n\n/** Wraps characters `[start, end)` of the map in elements made by `make`. */\nfunction wrapRange(map: { at: At[] }, start: number, end: number, make: () => HTMLElement): void {\n // Each text node's part of the range, wrapped by itself, last first so\n // earlier offsets stay right.\n const parts: { node: Text; from: number; to: number }[] = [];\n for (let i = start; i < end; i++) {\n const at = map.at[i];\n if (!at) continue;\n const width = charWidth(at);\n const part = parts[parts.length - 1];\n if (part && part.node === at.node) part.to = at.offset + width;\n else parts.push({ node: at.node, from: at.offset, to: at.offset + width });\n }\n for (const part of parts.reverse()) {\n const range = part.node.ownerDocument.createRange();\n range.setStart(part.node, part.from);\n range.setEnd(part.node, part.to);\n const wrapper = make();\n range.surroundContents(wrapper);\n }\n}\n\nfunction charWidth(at: At): number {\n const code = at.node.nodeValue?.codePointAt(at.offset) ?? 0;\n return code > 0xffff ? 2 : 1;\n}\n\n/**\n * Marks the changed words of a block: the words added or replacing others\n * in `<ins>`, and the words removed in `<del>` where they were. Skipped when\n * the block's text isn't the text the change was computed from.\n */\nfunction markWords(element: HTMLElement, words: Words): boolean {\n const map = textMap(element);\n const nowChars = Array.from(words.now_text);\n const text = map.text.join(\"\");\n const offset = text === words.now_text ? 0 : findChars(map.text, nowChars);\n if (offset < 0) return false;\n const doc = element.ownerDocument;\n const wasChars = Array.from(words.was_text);\n // Each removed run goes where it was: after as many unchanged characters\n // of the new text as there were before it in the old.\n const insertions: { at: number; text: string }[] = [];\n let removedBefore = 0;\n for (const [start, end] of words.was) {\n const unchangedBefore = start - removedBefore;\n insertions.push({\n at: nowPosition(words.now, unchangedBefore),\n text: wasChars.slice(start, end).join(\"\"),\n });\n removedBefore += end - start;\n }\n // Wrap from the end so earlier positions stay valid.\n type Edit = { at: number; kind: \"ins\"; end: number } | { at: number; kind: \"del\"; text: string };\n const edits: Edit[] = [\n ...words.now.map(([start, end]): Edit => ({ at: start, kind: \"ins\", end })),\n ...insertions.map((i): Edit => ({ at: i.at, kind: \"del\", text: i.text })),\n ];\n // At one position, the removed words go first, before the words that\n // replace them.\n edits.sort((a, b) => b.at - a.at || (a.kind === \"del\" ? -1 : 1));\n for (const edit of edits) {\n if (edit.kind === \"ins\") {\n wrapRange(map, offset + edit.at, offset + edit.end, () => ui(doc, \"ins\", \"ascribe-ins\"));\n } else {\n const del = ui(doc, \"del\", \"ascribe-del\", edit.text);\n insertAt(map, offset + edit.at, del, element);\n }\n }\n return true;\n}\n\n/** Where in the new text `unchanged` unchanged characters end. */\nfunction nowPosition(ranges: [number, number][], unchanged: number): number {\n let position = unchanged;\n for (const [start, end] of ranges) {\n if (start < position) position += end - start;\n else break;\n }\n return position;\n}\n\nfunction findChars(haystack: string[], needle: string[]): number {\n if (needle.length === 0) return -1;\n outer: for (let i = 0; i + needle.length <= haystack.length; i++) {\n for (let j = 0; j < needle.length; j++) if (haystack[i + j] !== needle[j]) continue outer;\n return i;\n }\n return -1;\n}\n\n/** Inserts `node` before character `index` of the map, or at its end. */\nfunction insertAt(map: { at: At[] }, index: number, node: Node, element: Element): void {\n const at = map.at[index];\n if (at) {\n const rest = at.node.splitText(at.offset);\n rest.before(node);\n // The map's later positions in this node now point into `rest`.\n for (let i = index; i < map.at.length; i++) {\n const later = map.at[i];\n if (later && later.node === at.node && later.offset >= at.offset) {\n map.at[i] = { node: rest, offset: later.offset - at.offset };\n }\n }\n return;\n }\n const last = map.at[map.at.length - 1];\n if (last) {\n const rest = last.node.splitText(last.offset + charWidth(last));\n rest.before(node);\n } else {\n element.append(node);\n }\n}\n\n/**\n * Marks `changes` on the page in `root`, and returns the marks in page\n * order. Marks already there are cleared first.\n */\nexport function markChanges(\n root: HTMLElement,\n changes: readonly Change[],\n options: MarkOptions = {},\n): Mark[] {\n clearMarks(root);\n const doc = root.ownerDocument;\n const was = options.was ?? null;\n const placer = new Placer(root);\n const marks: Mark[] = [];\n root.classList.add(\"ascribe-marks\");\n if (!root.hasAttribute(\"data-ascribe-show\")) root.setAttribute(\"data-ascribe-show\", \"changes\");\n\n let moveCount = 0;\n for (const change of changes) {\n switch (change.kind) {\n case \"added\":\n case \"changed\": {\n const element = change.now ? findBlock(root, change.now) : null;\n if (!element || element.hasAttribute(\"data-ascribe-change\")) break;\n element.setAttribute(\"data-ascribe-change\", change.kind);\n addLabel(element, change.kind);\n if (change.kind === \"changed\") {\n // Where it was, for threads on its old text.\n if (change.was) element.setAttribute(\"data-ascribe-was-source\", change.was.source);\n const before = was && change.was ? findBlock(was, change.was) : null;\n if (change.words) markWords(element, change.words);\n if (before) {\n // As it was, the block as the old page rendered it.\n const copy = copyOf(before);\n copy.setAttribute(\"data-ascribe-ui\", \"\");\n copy.setAttribute(\"data-ascribe-was-only\", \"\");\n element.after(copy);\n element.setAttribute(\"data-ascribe-has-was\", \"\");\n }\n }\n marks.push({ change, element });\n break;\n }\n case \"removed\": {\n const before = was && change.was ? findBlock(was, change.was) : null;\n const element = placer.place(change, (container) => {\n const holder = ui(doc, holderFor(container), \"ascribe-removed\");\n holder.setAttribute(\"data-ascribe-change\", \"removed\");\n if (change.was) holder.setAttribute(\"data-ascribe-was-source\", change.was.source);\n const label = ui(doc, \"span\", \"ascribe-label\", LABELS.removed);\n label.setAttribute(\"data-ascribe-label\", \"removed\");\n const body = ui(doc, \"div\", \"ascribe-removed-body\");\n if (before) body.append(...contentOf(holder, before));\n else body.textContent = change.text ?? \"\";\n const toggle = ui(doc, \"button\", \"ascribe-toggle\", \"Show\");\n toggle.type = \"button\";\n toggle.setAttribute(\"aria-expanded\", \"false\");\n toggle.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n const open = holder.classList.toggle(\"ascribe-open\");\n toggle.textContent = open ? \"Collapse\" : \"Show\";\n toggle.setAttribute(\"aria-expanded\", String(open));\n });\n holder.append(label, body, toggle);\n return holder;\n });\n marks.push({ change, element });\n break;\n }\n case \"moved\": {\n const element = change.now ? findBlock(root, change.now) : null;\n if (!element || element.hasAttribute(\"data-ascribe-change\")) break;\n const id = `ascribe-move-${++moveCount}`;\n const before = was && change.was ? findBlock(was, change.was) : null;\n const stub = placer.place(change, (container) => {\n const holder = ui(doc, holderFor(container), \"ascribe-moved-from\");\n holder.id = `${id}-from`;\n holder.setAttribute(\"data-ascribe-change\", \"moved-from\");\n if (change.was) holder.setAttribute(\"data-ascribe-was-source\", change.was.source);\n const note = ui(doc, \"span\", \"ascribe-move-note\");\n note.append(doc.createTextNode(`A ${blockWord(element)} moved from here `));\n const link = ui(doc, \"a\", \"ascribe-move-link\");\n link.href = `#${id}`;\n note.append(link);\n holder.append(note);\n // As it was, the block itself.\n const copy = ui(doc, \"div\", \"ascribe-was-copy\");\n copy.setAttribute(\"data-ascribe-was-only\", \"\");\n if (before) copy.append(...contentOf(holder, before));\n else copy.textContent = change.text ?? ownText(element);\n holder.append(copy);\n return holder;\n });\n element.setAttribute(\"data-ascribe-change\", \"moved\");\n element.setAttribute(\"data-ascribe-move\", id);\n if (!element.id) element.id = id;\n addLabel(element, \"moved\");\n const back = ui(doc, \"a\", \"ascribe-move-link\");\n back.href = `#${stub.id}`;\n back.textContent = `from “${headingBefore(root, stub) ?? \"the top of the page\"}” ↑`;\n const forward = stub.querySelector<HTMLAnchorElement>(\".ascribe-move-link\");\n if (forward) {\n forward.href = `#${element.id}`;\n forward.textContent = `to “${headingBefore(root, element) ?? \"the top of the page\"}” ↓`;\n }\n if (LABEL_INSIDE.has(element.localName)) {\n const note = ui(doc, \"span\", \"ascribe-move-note\");\n note.append(\" \", back);\n element.append(note);\n } else {\n const holder = ui(doc, \"div\", \"ascribe-move-note ascribe-move-after\");\n holder.append(back);\n element.after(holder);\n }\n for (const link of [back, forward]) {\n link?.addEventListener(\"click\", (event) => {\n const target = doc.getElementById(link.hash.slice(1));\n if (!target || !root.contains(target)) return;\n event.preventDefault();\n goTo(target);\n });\n }\n marks.push({ change, element });\n break;\n }\n }\n }\n marks.sort((a, b) =>\n a.element === b.element\n ? 0\n : a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_FOLLOWING\n ? -1\n : 1,\n );\n hintHidden(root, marks);\n return marks;\n}\n\n/**\n * Says on each tab's label, and on each `<details>`' summary, what's changed\n * in what they can hide: \"new\" for a tab that's added, else how many\n * changes. A tab that isn't selected, or a closed `<details>`, would\n * otherwise hide its changes until stepped to.\n */\nfunction hintHidden(root: HTMLElement, marks: readonly Mark[]): void {\n const tabs = new Map<HTMLElement, { added: boolean; count: number }>();\n const summaries = new Map<HTMLElement, number>();\n for (const { change, element } of marks) {\n for (let el: HTMLElement | null = element; el && el !== root; el = el.parentElement) {\n if (el.localName === \"ascribe-tab\") {\n const tab = tabs.get(el) ?? { added: false, count: 0 };\n if (el === element && change.kind === \"added\") tab.added = true;\n else tab.count++;\n tabs.set(el, tab);\n }\n const summary = el !== element ? summaryOf(el) : null;\n if (summary && !summary.contains(element)) {\n summaries.set(summary, (summaries.get(summary) ?? 0) + 1);\n }\n }\n }\n const doc = root.ownerDocument;\n const hint = (kind: \"added\" | \"changed\", text: string): HTMLElement => {\n // A space before it, not only a margin, so the label reads \"Linux 1\n // change\" to a screen reader, not \"Linux1 change\".\n const el = ui(doc, \"span\", \"ascribe-hint\", ` ${text}`);\n el.setAttribute(\"data-ascribe-hint\", kind);\n return el;\n };\n const watching: MutationObserver[] = [];\n for (const [tab, { added, count }] of tabs) {\n const el = added ? hint(\"added\", \"new\") : hint(\"changed\", plural(count, \"change\"));\n const place = (): void => {\n const button = tabButton(tab);\n if (button && !button.contains(el)) button.append(el);\n };\n place();\n // `@ascribed/elements` makes the tab list once the page has loaded, and\n // again when the tabs are put back in the page.\n const group = tab.parentElement;\n const Observer = doc.defaultView?.MutationObserver;\n if (group && Observer) {\n const observer = new Observer(place);\n observer.observe(group, { childList: true });\n watching.push(observer);\n }\n }\n if (watching.length > 0) tabWatchers.set(root, watching);\n for (const [summary, count] of summaries)\n summary.append(hint(\"changed\", plural(count, \"change\")));\n}\n\n/** What waits for each marked page's tab lists, to stop when it's cleared. */\nconst tabWatchers = new WeakMap<HTMLElement, MutationObserver[]>();\n\nfunction plural(count: number, word: string): string {\n return `${count} ${word}${count === 1 ? \"\" : \"s\"}`;\n}\n\n/** A `<details>`' own `<summary>`, or null when `element` isn't one. */\nfunction summaryOf(element: Element): HTMLElement | null {\n if (element.localName !== \"details\") return null;\n return element.querySelector<HTMLElement>(\":scope > summary\");\n}\n\n/**\n * The button that selects an `<ascribe-tab>`, in its group's tab list, or\n * null before `@ascribed/elements` has made the list.\n */\nexport function tabButton(tab: Element): HTMLButtonElement | null {\n const group = tab.parentElement;\n if (tab.localName !== \"ascribe-tab\" || !group) return null;\n const tabs = Array.from(group.children).filter((c) => c.localName === \"ascribe-tab\");\n const buttons = group.querySelectorAll<HTMLButtonElement>(\n ':scope > [role=\"tablist\"] > [role=\"tab\"]',\n );\n return buttons[tabs.indexOf(tab)] ?? null;\n}\n\n/** \"paragraph\", \"heading\", \"list\", or \"block\". */\nfunction blockWord(element: Element): string {\n const name = element.localName;\n if (name === \"p\") return \"paragraph\";\n if (/^h[1-6]$/.test(name)) return \"heading\";\n if (name === \"ul\" || name === \"ol\") return \"list\";\n if (name === \"li\") return \"list item\";\n if (name === \"pre\") return \"code block\";\n if (name === \"table\") return \"table\";\n return \"block\";\n}\n\n/** Removes every mark from the page in `root`. */\nexport function clearMarks(root: HTMLElement): void {\n for (const observer of tabWatchers.get(root) ?? []) observer.disconnect();\n tabWatchers.delete(root);\n for (const el of Array.from(root.querySelectorAll(\"[data-ascribe-ui]\"))) {\n if (el.localName === \"ins\") el.replaceWith(...Array.from(el.childNodes));\n else el.remove();\n }\n for (const el of Array.from(root.querySelectorAll(\"[data-ascribe-change]\"))) {\n el.removeAttribute(\"data-ascribe-change\");\n el.removeAttribute(\"data-ascribe-has-was\");\n el.removeAttribute(\"data-ascribe-was-source\");\n if (el.hasAttribute(\"data-ascribe-move\")) {\n if (el.id === el.getAttribute(\"data-ascribe-move\")) el.removeAttribute(\"id\");\n el.removeAttribute(\"data-ascribe-move\");\n }\n }\n root.normalize();\n}\n\n/** Shows the changes, the page as it will be, or the page as it was. */\nexport function setShow(root: HTMLElement, show: Show): void {\n root.setAttribute(\"data-ascribe-show\", show);\n}\n\n/**\n * Makes `element` visible: opens the `<details>` and selects the tabs it's\n * in.\n */\nexport function reveal(element: HTMLElement): void {\n for (let el: HTMLElement | null = element; el; el = el.parentElement) {\n if (el instanceof HTMLDetailsElement && !el.open) el.open = true;\n if (el.localName === \"ascribe-tab\" && el.hidden) tabButton(el)?.click();\n }\n}\n\n/** Reveals `element`, scrolls to it, and flashes it. */\nexport function goTo(element: HTMLElement): void {\n reveal(element);\n // Not every DOM implements scrolling (jsdom doesn't).\n if (typeof element.scrollIntoView === \"function\") {\n element.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\n }\n element.classList.remove(\"ascribe-flash\");\n // Restart the animation.\n void element.offsetWidth;\n element.classList.add(\"ascribe-flash\");\n if (!element.hasAttribute(\"tabindex\")) element.setAttribute(\"tabindex\", \"-1\");\n element.focus({ preventScroll: true });\n}\n\n/**\n * Shows each block's source on hover and focus: `guides/install.md:12`,\n * from its anchor. Returns a function that stops.\n */\nexport function showSources(root: HTMLElement): () => void {\n const doc = root.ownerDocument;\n const tip = ui(doc, \"span\", \"ascribe-where\");\n tip.setAttribute(\"role\", \"status\");\n let current: Element | null = null;\n const show = (target: EventTarget | null): void => {\n const el =\n target instanceof Element\n ? target.closest(\"[data-ascribe-source], [data-ascribe-was-source]\")\n : null;\n if (el === current) return;\n current = el;\n if (!el || !root.contains(el)) {\n tip.remove();\n current = null;\n return;\n }\n const source = el.getAttribute(\"data-ascribe-source\");\n tip.textContent = source\n ? describeSource(source, el.getAttribute(\"data-ascribe-via\"))\n : `was ${describeSource(el.getAttribute(\"data-ascribe-was-source\") ?? \"\")}`;\n const box = el.getBoundingClientRect();\n const host = root.getBoundingClientRect();\n tip.style.top = `${box.top - host.top}px`;\n root.append(tip);\n };\n const over = (event: Event): void => show(event.target);\n const out = (event: Event): void => {\n const to = (event as MouseEvent).relatedTarget;\n if (!(to instanceof Node) || !root.contains(to)) show(null);\n };\n root.addEventListener(\"mouseover\", over);\n root.addEventListener(\"focusin\", over);\n root.addEventListener(\"mouseout\", out);\n return () => {\n root.removeEventListener(\"mouseover\", over);\n root.removeEventListener(\"focusin\", over);\n root.removeEventListener(\"mouseout\", out);\n tip.remove();\n };\n}\n\n/**\n * Takes out of a page's HTML what could run script or take the reader\n * elsewhere: scripts, `<meta>` and `<base>`, event handler attributes, and\n * `javascript:` URLs. A page under review comes from the change being\n * reviewed, so a host disarms it before showing it, whatever its content\n * security policy also blocks.\n */\nexport function disarm(fragment: DocumentFragment): void {\n for (const el of Array.from(fragment.querySelectorAll(\"script, meta, base\"))) el.remove();\n for (const el of Array.from(fragment.querySelectorAll(\"*\"))) {\n for (const attr of Array.from(el.attributes)) {\n if (/^on/i.test(attr.name) || runsScript(attr.value)) el.removeAttribute(attr.name);\n }\n }\n}\n\n/** Whether a URL runs script: `javascript:`, however it's spaced or cased. */\nfunction runsScript(value: string): boolean {\n // URL parsing drops ASCII whitespace and control characters first.\n const kept = Array.from(value)\n .filter((ch) => ch.charCodeAt(0) > 0x20)\n .join(\"\");\n return /^javascript:/i.test(kept);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/overlay/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,4DAA4D;AAC5D,+CAA+C;AAC/C,OAAO,EAAE,aAAa,EAAqC,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/overlay/index.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,4DAA4D;AAC5D,+CAA+C;AAC/C,OAAO,EAAE,aAAa,EAAqC,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC","sourcesContent":["// @ascribed/review/overlay: the review overlay, in the browser. A pull\n// request's threads beside the blocks of a rendered page, with replying,\n// resolving, commenting, and submitting, all through a host\n// (`OverlayHost`) that keeps GitHub to itself.\nexport { createOverlay, type Overlay, type OverlayOptions } from \"./overlay.js\";\nexport { renderMarkdown, safeUrl } from \"./markdown.js\";\nexport type {\n Anchor,\n CommentTarget,\n HostError,\n LocatedThread,\n OverlayData,\n OverlayHost,\n PendingReview,\n PlacedThreads,\n ReviewEvent,\n ThreadSummary,\n} from \"./types.js\";\nexport type { Author, Thread, ThreadComment } from \"../shared/types.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/overlay/markdown.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/overlay/markdown.ts"],"names":[],"mappings":"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","sourcesContent":["// Comment bodies, rendered. A body is Markdown written by other people, so it\n// becomes a safe subset of it, built as DOM nodes and never as an HTML\n// string: paragraphs, emphasis, strikethrough, code, links, lists, and block\n// quotes. Raw HTML stays text. A link is kept only when it goes to the web or\n// to an email address, and opens apart from the page; an image becomes a link\n// to it, so nothing is loaded until the reader asks.\n\n/** The schemes a link in a comment may have. */\nconst SAFE_SCHEMES = new Set([\"http:\", \"https:\", \"mailto:\"]);\n\n/** `url` when it's a link a comment may carry, else `undefined`. */\nexport function safeUrl(url: string): string | undefined {\n // URL parsing drops ASCII whitespace and control characters first.\n const kept = Array.from(url.trim())\n .filter((ch) => ch.charCodeAt(0) > 0x20)\n .join(\"\");\n let parsed: URL;\n try {\n parsed = new URL(kept);\n } catch {\n return undefined;\n }\n return SAFE_SCHEMES.has(parsed.protocol) ? parsed.href : undefined;\n}\n\n/** Renders a comment's Markdown body in `doc`, as a fragment of plain DOM nodes. */\nexport function renderMarkdown(doc: Document, text: string): DocumentFragment {\n const fragment = doc.createDocumentFragment();\n renderBlocks(doc, fragment, text.replace(/\\r\\n?/g, \"\\n\").split(\"\\n\"), 0);\n return fragment;\n}\n\nconst FENCE = /^ {0,3}(`{3,}|~{3,})/;\nconst QUOTE = /^ {0,3}> ?/;\nconst BULLET = /^( {0,3})([-*+])[ \\t]+/;\nconst ORDERED = /^( {0,3})(\\d{1,9})[.)][ \\t]+/;\nconst HEADING = /^ {0,3}#{1,6}[ \\t]+/;\nconst RULE = /^ {0,3}([-*_])(?:[ \\t]*\\1){2,}[ \\t]*$/;\n\nfunction isBlank(line: string): boolean {\n return line.trim() === \"\";\n}\n\nfunction startsBlock(line: string): boolean {\n return (\n FENCE.test(line) ||\n QUOTE.test(line) ||\n BULLET.test(line) ||\n ORDERED.test(line) ||\n HEADING.test(line) ||\n RULE.test(line)\n );\n}\n\nfunction renderBlocks(doc: Document, parent: Node, lines: string[], depth: number): void {\n let i = 0;\n while (i < lines.length) {\n const line = lines[i] ?? \"\";\n if (isBlank(line)) {\n i++;\n continue;\n }\n const fence = FENCE.exec(line);\n if (fence) {\n const marker = fence[1] ?? \"```\";\n const body: string[] = [];\n i++;\n while (i < lines.length && !(lines[i] ?? \"\").trimStart().startsWith(marker)) {\n body.push(lines[i] ?? \"\");\n i++;\n }\n i++;\n const pre = doc.createElement(\"pre\");\n const code = doc.createElement(\"code\");\n code.textContent = body.join(\"\\n\");\n pre.append(code);\n parent.appendChild(pre);\n continue;\n }\n if (QUOTE.test(line) && depth < 8) {\n const body: string[] = [];\n while (i < lines.length && QUOTE.test(lines[i] ?? \"\")) {\n body.push((lines[i] ?? \"\").replace(QUOTE, \"\"));\n i++;\n }\n const quote = doc.createElement(\"blockquote\");\n renderBlocks(doc, quote, body, depth + 1);\n parent.appendChild(quote);\n continue;\n }\n const bullet = BULLET.exec(line);\n const ordered = bullet ? null : ORDERED.exec(line);\n if ((bullet || ordered) && depth < 8) {\n const list = doc.createElement(bullet ? \"ul\" : \"ol\");\n const start = ordered ? Number(ordered[2]) : 1;\n if (ordered && start !== 1) list.setAttribute(\"start\", String(start));\n const pattern = bullet ? BULLET : ORDERED;\n while (i < lines.length) {\n const match = pattern.exec(lines[i] ?? \"\");\n if (!match) break;\n const indent = match[0].length;\n const body = [(lines[i] ?? \"\").slice(indent)];\n i++;\n // The item goes on over lines indented under it, and lazily over the\n // next lines of its paragraph.\n while (i < lines.length) {\n const next = lines[i] ?? \"\";\n if (isBlank(next)) {\n const after = lines[i + 1] ?? \"\";\n if (/^\\s/.test(after) && !isBlank(after) && leading(after) >= indent) {\n body.push(\"\");\n i++;\n continue;\n }\n break;\n }\n if (leading(next) >= indent) body.push(next.slice(indent));\n else if (!startsBlock(next) && !isBlank(body.at(-1) ?? \"\")) body.push(next.trim());\n else break;\n i++;\n }\n const item = doc.createElement(\"li\");\n renderBlocks(doc, item, body, depth + 1);\n // A tight item's one paragraph shows without a paragraph's margins.\n const only = item.firstElementChild;\n if (item.childElementCount === 1 && only?.localName === \"p\") {\n only.replaceWith(...Array.from(only.childNodes));\n }\n list.append(item);\n if (isBlank(lines[i] ?? \"\") && pattern.test(lines[i + 1] ?? \"\")) i++;\n }\n parent.appendChild(list);\n continue;\n }\n if (RULE.test(line)) {\n parent.appendChild(doc.createElement(\"hr\"));\n i++;\n continue;\n }\n if (HEADING.test(line)) {\n // A heading in a comment reads as a strong line, not a page heading.\n const p = doc.createElement(\"p\");\n const strong = doc.createElement(\"strong\");\n renderInline(doc, strong, line.replace(HEADING, \"\").replace(/[ \\t]+#+[ \\t]*$/, \"\"), 0);\n p.append(strong);\n parent.appendChild(p);\n i++;\n continue;\n }\n const body: string[] = [];\n while (i < lines.length) {\n const next = lines[i] ?? \"\";\n if (isBlank(next) || (body.length > 0 && startsBlock(next))) break;\n body.push(next.trim());\n i++;\n }\n const p = doc.createElement(\"p\");\n // GitHub keeps a comment's line breaks.\n body.forEach((text, n) => {\n if (n > 0) p.append(doc.createElement(\"br\"));\n renderInline(doc, p, text, 0);\n });\n parent.appendChild(p);\n }\n}\n\nfunction leading(line: string): number {\n return line.length - line.trimStart().length;\n}\n\nconst ESCAPABLE = /[\\\\`*_{}[\\]()#+\\-.!~<>|\"']/;\n\n/**\n * What one line's searches for closing markers found, so each search runs\n * once: a body is anyone's text, and an unclosed marker repeated must not\n * make a line take quadratic time.\n */\ninterface Scan {\n /** For each `[`, the index of the `]` that closes it, or -1. Made on the first `[`. */\n brackets?: Int32Array;\n /** By closing marker: the first index from which a search for it found none. */\n none: Map<string, number>;\n}\n\n/** Whether a search for `marker` from `from` already found nothing. */\nfunction knownMissing(scan: Scan, marker: string, from: number): boolean {\n const none = scan.none.get(marker);\n return none !== undefined && from >= none;\n}\n\nfunction markMissing(scan: Scan, marker: string, from: number): void {\n const none = scan.none.get(marker);\n if (none === undefined || from < none) scan.none.set(marker, from);\n}\n\n/** Renders one line's inline Markdown into `parent`. */\nfunction renderInline(doc: Document, parent: Node, text: string, depth: number): void {\n const scan: Scan = { none: new Map() };\n let plain = \"\";\n const flush = (): void => {\n if (plain) parent.appendChild(doc.createTextNode(plain));\n plain = \"\";\n };\n let i = 0;\n while (i < text.length) {\n const ch = text[i] ?? \"\";\n const rest = text.slice(i);\n if (ch === \"\\\\\" && ESCAPABLE.test(text[i + 1] ?? \"\")) {\n plain += text[i + 1];\n i += 2;\n continue;\n }\n if (ch === \"`\") {\n const ticks = /^`+/.exec(rest)?.[0] ?? \"`\";\n const from = i + ticks.length;\n const end = knownMissing(scan, ticks, from) ? -1 : text.indexOf(ticks, from);\n if (end < 0) markMissing(scan, ticks, from);\n if (end > 0) {\n flush();\n const code = doc.createElement(\"code\");\n let inner = text.slice(i + ticks.length, end);\n if (/^ .*[^ ].* $/.test(inner)) inner = inner.slice(1, -1);\n code.textContent = inner;\n parent.appendChild(code);\n i = end + ticks.length;\n continue;\n }\n plain += ticks;\n i += ticks.length;\n continue;\n }\n if (ch === \"!\" && text[i + 1] === \"[\") {\n const link = parseLink(text, i + 1, scan);\n if (link) {\n flush();\n const url = safeUrl(link.url);\n const label = link.label.trim() ? `Image: ${link.label.trim()}` : \"Image\";\n if (url) parent.appendChild(anchor(doc, url, label));\n else parent.appendChild(doc.createTextNode(label));\n i = link.end;\n continue;\n }\n }\n if (ch === \"[\") {\n const link = parseLink(text, i, scan);\n if (link) {\n flush();\n const url = safeUrl(link.url);\n if (url && depth < 4) {\n const a = anchor(doc, url, \"\");\n renderInline(doc, a, link.label, depth + 1);\n parent.appendChild(a);\n } else {\n renderInline(doc, parent, link.label, depth + 1);\n }\n i = link.end;\n continue;\n }\n }\n if (ch === \"<\") {\n const auto = /^<((?:https?|mailto):[^\\s<>]+)>/i.exec(rest);\n const url = auto ? safeUrl(auto[1] ?? \"\") : undefined;\n if (auto && url) {\n flush();\n parent.appendChild(anchor(doc, url, auto[1] ?? url));\n i += auto[0].length;\n continue;\n }\n }\n if ((ch === \"h\" || ch === \"H\") && /^https?:\\/\\//i.test(rest) && !/\\w/.test(text[i - 1] ?? \"\")) {\n // Longer than any address a browser keeps: text, and a bound on the\n // search, so a line of failed addresses can't take quadratic time.\n const found = /^https?:\\/\\/[^\\s<]{1,2048}/i.exec(rest)?.[0] ?? \"\";\n const match = /[^\\s<]/.test(rest[found.length] ?? \" \") ? \"\" : found;\n // Trailing punctuation ends the sentence, not the address.\n const bare = match.replace(/[.,:;!?'\")\\]]+$/, \"\");\n const url = safeUrl(bare);\n if (url) {\n flush();\n parent.appendChild(anchor(doc, url, bare));\n i += bare.length;\n continue;\n }\n }\n if ((ch === \"*\" || ch === \"_\" || ch === \"~\") && depth < 4) {\n const span = parseEmphasis(text, i, scan);\n if (span) {\n flush();\n const el = doc.createElement(span.tag);\n renderInline(doc, el, span.inner, depth + 1);\n parent.appendChild(el);\n i = span.end;\n continue;\n }\n }\n plain += ch;\n i++;\n }\n flush();\n}\n\nfunction anchor(doc: Document, url: string, text: string): HTMLAnchorElement {\n const a = doc.createElement(\"a\");\n a.href = url;\n a.target = \"_blank\";\n a.rel = \"noopener noreferrer\";\n if (text) a.textContent = text;\n return a;\n}\n\n/** `[label](url \"title\")` starting at `start`, or `undefined`. */\nfunction parseLink(\n text: string,\n start: number,\n scan: Scan,\n): { label: string; url: string; end: number } | undefined {\n scan.brackets ??= matchBrackets(text);\n const close = scan.brackets[start] ?? -1;\n if (close < 0 || text[close + 1] !== \"(\") return undefined;\n const target =\n /^\\(\\s*(<[^<>]*>|[^\\s()]*(?:\\([^\\s()]*\\)[^\\s()]*)*)(?:\\s+(?:\"[^\"]*\"|'[^']*'))?\\s*\\)/.exec(\n text.slice(close + 1),\n );\n if (!target) return undefined;\n const url = (target[1] ?? \"\").replace(/^<|>$/g, \"\");\n return { label: text.slice(start + 1, close), url, end: close + 1 + target[0].length };\n}\n\n/** For each `[` in `text`, the index of the `]` that closes it (escapes skipped), or -1. */\nfunction matchBrackets(text: string): Int32Array {\n const close = new Int32Array(text.length).fill(-1);\n const open: number[] = [];\n for (let i = 0; i < text.length; i++) {\n const ch = text[i];\n if (ch === \"\\\\\") i++;\n else if (ch === \"[\") open.push(i);\n else if (ch === \"]\") {\n const at = open.pop();\n if (at !== undefined) close[at] = i;\n }\n }\n return close;\n}\n\n/** Emphasis, strong emphasis, or strikethrough starting at `start`. */\nfunction parseEmphasis(\n text: string,\n start: number,\n scan: Scan,\n): { tag: \"em\" | \"strong\" | \"del\"; inner: string; end: number } | undefined {\n const ch = text[start] ?? \"\";\n // Only the first three characters of a run decide its size.\n const run = (/^([*_~])\\1*/.exec(text.slice(start, start + 3))?.[0] ?? \"\").length;\n const size = ch === \"~\" ? (run >= 2 ? 2 : 0) : Math.min(run, 2);\n if (size === 0) return undefined;\n const marker = ch.repeat(size);\n const open = start + size;\n // An opening marker has text right after it; `_` inside a word isn't one.\n if (/\\s/.test(text[open] ?? \" \")) return undefined;\n if (ch === \"_\" && /\\w/.test(text[start - 1] ?? \"\")) return undefined;\n // Whether a marker closes depends only on what's beside it, so a search\n // that found no closer from one place finds none from any later one.\n if (knownMissing(scan, marker, open + 1)) return undefined;\n let from = open + 1;\n while (from <= text.length) {\n const close = text.indexOf(marker, from);\n if (close < 0) {\n markMissing(scan, marker, open + 1);\n return undefined;\n }\n const closesHere =\n !/\\s/.test(text[close - 1] ?? \" \") &&\n text[close + size] !== ch &&\n !(ch === \"_\" && /\\w/.test(text[close + size] ?? \"\"));\n if (closesHere) {\n const tag = ch === \"~\" ? \"del\" : size === 2 ? \"strong\" : \"em\";\n return { tag, inner: text.slice(open, close), end: close + size };\n }\n from = close + 1;\n }\n markMissing(scan, marker, open + 1);\n return undefined;\n}\n"]}
|