@ascribed/review 0.1.2-next.5 → 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/github/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,UAAU,GASX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,eAAe,GAKhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAyC,MAAM,iBAAiB,CAAC;AACnG,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,GAIf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,WAAW,EAAwB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/github/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,EACL,eAAe,EACf,aAAa,EACb,eAAe,EACf,UAAU,GASX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,eAAe,GAKhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAyC,MAAM,iBAAiB,CAAC;AACnG,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,cAAc,GAIf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,WAAW,EAAwB,MAAM,qBAAqB,CAAC","sourcesContent":["// Reading and writing a pull request's review threads on GitHub.\nexport {\n contentPrefixOf,\n createSession,\n findPullRequest,\n openReview,\n type CommentTarget,\n type LocalState,\n type OpenReviewOptions,\n type PendingReview,\n type PullRequestInfo,\n type ReviewEvent,\n type ReviewSession,\n type SessionOptions,\n} from \"./session.js\";\nexport {\n answerRequest,\n baseRevision,\n OVERLAY_METHODS,\n pagesShowing,\n pullRequestBase,\n type Answer,\n type ChangedPageRef,\n type OverlayMethod,\n type RequestContext,\n} from \"./requests.js\";\nexport { parseRemote, readCheckout, type CheckoutInfo, type RepositoryRef } from \"./repository.js\";\nexport {\n ghTransport,\n graphqlUrl,\n MIN_GH_VERSION,\n tokenTransport,\n type GhTransportOptions,\n type GitHubTransport,\n type TokenTransportOptions,\n} from \"./transport.js\";\nexport { formatSection, marker, parseSections, type MarkedSection } from \"./marker.js\";\nexport { ReviewError, type ReviewErrorCode } from \"../shared/errors.js\";\nexport type { Author, Side, Thread, ThreadComment } from \"../shared/types.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker.js","sourceRoot":"","sources":["../../src/github/marker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"marker.js","sourceRoot":"","sources":["../../src/github/marker.ts"],"names":[],"mappings":"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","sourcesContent":["// Comments GitHub can't anchor to a line go on the pull request's\n// conversation, each ending with a hidden marker naming its block:\n//\n// <!-- ascribe:anchor guides/install.md:12-14 build=site -->\n//\n// Several can share one body (a review's), one after another. A review's\n// summary goes before them, ended by another marker:\n//\n// Looks good, a few notes below.\n//\n// <!-- ascribe:summary -->\n//\n// A comment quotes its block's source, or its text as the page shows it,\n// escaped so GitHub shows it as written; the marker of one that quotes the\n// shown text ends ` quote=text`.\n\n/** One anchored comment, as written in a body. */\nexport interface MarkedSection {\n /** The block's source. */\n source: string;\n build: string | undefined;\n /** The comment, without the quote, the link line, or the marker. */\n body: string;\n /** The block's text the comment quoted, if it did. */\n quote: string | undefined;\n}\n\nconst MARKER = /<!-- ascribe:anchor (\\S+)(?: build=(\\S+))?( quote=text)? -->/g;\n\n/**\n * The summary a pending review starts with. GitHub can't edit the summary of\n * a pending review created without one, so the session's reviews start with\n * this, which reading and submitting remove.\n */\nexport const PLACEHOLDER = \"<!-- ascribe:review -->\";\n\n/** Ends a review's summary when anchored comments follow it. */\nexport const SUMMARY_END = \"<!-- ascribe:summary -->\";\n\n/** `body` without the placeholder summary. */\nexport function withoutPlaceholder(body: string): string {\n return body.split(PLACEHOLDER).join(\"\").trim();\n}\n\n/**\n * The marker for a block. Without a build (or with `\"\"`), the comment is on\n * every build's page. `shown` marks a quote of the shown text.\n */\nexport function marker(source: string, build: string | undefined, shown = false): string {\n return `<!-- ascribe:anchor ${source}${build === undefined || build === \"\" ? \"\" : ` build=${build}`}${shown ? \" quote=text\" : \"\"} -->`;\n}\n\n/** Joins a mention or reference sign to what follows, so GitHub doesn't link it. */\nconst JOINER = \"\\u2060\";\n\n/**\n * Plain text as Markdown that GitHub shows as the text: punctuation\n * escaped, `@name` and `#123` not linked, line breaks and leading spaces\n * kept.\n */\nexport function escapeText(text: string): string {\n const lines = text.split(/\\r?\\n/).map((line) => {\n const indent = /^ */.exec(line)?.[0].length ?? 0;\n const rest = line\n .slice(indent)\n .replace(/[!-/:-@[-`{-~]/g, (c) => (c === \"<\" ? \"<\" : `\\\\${c}`))\n .replace(/[@#]/g, `$&${JOINER}`);\n return \"\\u00a0\".repeat(indent) + rest;\n });\n // A backslash at the end of a line breaks it, but not before a blank line.\n return lines\n .map((line, i) => (line !== \"\" && (lines[i + 1] ?? \"\") !== \"\" ? `${line}\\\\` : line))\n .join(\"\\n\");\n}\n\n/** Text that `escapeText` wrote, as it was. */\nexport function unescapeText(text: string): string {\n return text\n .split(/\\r?\\n/)\n .map((line) => {\n const trailing = /\\\\*$/.exec(line)?.[0].length ?? 0;\n const unbroken = trailing % 2 === 1 ? line.slice(0, -1) : line;\n const indent = /^\\u00a0*/.exec(unbroken)?.[0].length ?? 0;\n return (\n \" \".repeat(indent) +\n unbroken\n .slice(indent)\n .replace(new RegExp(`([@#])${JOINER}`, \"g\"), \"$1\")\n .replace(/\\\\([!-/:-@[-`{-~])|</g, (_, c: string | undefined) => c ?? \"<\")\n );\n })\n .join(\"\\n\");\n}\n\n/**\n * Writes a section: the block's text quoted, the comment, a line linking the\n * block's lines, and the marker.\n */\nexport function formatSection(options: {\n source: string;\n build: string | undefined;\n body: string;\n quote: string | undefined;\n /** Whether `quote` is the block's text as the page shows it, rather than its source. */\n shown?: boolean;\n link: { label: string; url: string } | undefined;\n}): string {\n const parts: string[] = [];\n const shown = options.shown === true;\n if (options.quote !== undefined && options.quote.trim() !== \"\") {\n parts.push(\n (shown ? escapeText(options.quote) : options.quote)\n .split(/\\r?\\n/)\n .map((line) => (line === \"\" ? \">\" : `> ${line}`))\n .join(\"\\n\"),\n );\n }\n parts.push(options.body.trim());\n const end = marker(options.source, options.build, shown);\n parts.push(\n options.link === undefined\n ? end\n : `<sub>On [${options.link.label.replace(/[[\\]]/g, \"\\\\$&\")}](${options.link.url})</sub>\\n${end}`,\n );\n return parts.join(\"\\n\\n\");\n}\n\n/**\n * Splits a body into its summary, its marked sections, and the text after\n * the last marker (`rest`), which isn't anchored either.\n */\nexport function parseSections(text: string): {\n summary: string;\n sections: MarkedSection[];\n rest: string;\n} {\n let body = withoutPlaceholder(text);\n let summary = \"\";\n // The summary ends before the first comment, if it's there at all.\n const end = body.indexOf(SUMMARY_END);\n const first = body.search(new RegExp(MARKER.source));\n if (end >= 0 && (first < 0 || end < first)) {\n summary = body.slice(0, end).trim();\n body = body.slice(end + SUMMARY_END.length).trim();\n }\n const sections: MarkedSection[] = [];\n let start = 0;\n for (const match of body.matchAll(MARKER)) {\n const source = match[1] ?? \"\";\n const text = body.slice(start, match.index);\n start = match.index + match[0].length;\n const { body: comment, quote } = unwrap(text);\n sections.push({\n source,\n build: match[2],\n body: comment,\n quote: quote !== undefined && match[3] !== undefined ? unescapeText(quote) : quote,\n });\n }\n return { summary, sections, rest: body.slice(start).trim() };\n}\n\nfunction unwrap(text: string): { body: string; quote: string | undefined } {\n let rest = text.replace(/\\s*<sub>On \\[[^\\n]*\\]\\([^\\n)]*\\)<\\/sub>\\s*$/, \"\").trim();\n let quote: string | undefined;\n const lines = rest.split(/\\r?\\n/);\n let quoted = 0;\n while (quoted < lines.length && /^>( |$)/.test(lines[quoted] ?? \"\")) quoted++;\n if (quoted > 0 && quoted < lines.length && (lines[quoted] ?? \"\").trim() === \"\") {\n quote = lines\n .slice(0, quoted)\n .map((line) => line.replace(/^> ?/, \"\"))\n .join(\"\\n\");\n rest = lines\n .slice(quoted + 1)\n .join(\"\\n\")\n .trim();\n }\n return { body: rest, quote };\n}\n\n/**\n * Joins a summary and sections into one body: the summary first, so it\n * doesn't read as a remark on the last section.\n */\nexport function joinSections(sections: readonly string[], summary: string | undefined): string {\n const held = sections.filter((part) => part.trim() !== \"\");\n // A marker in the summary would be read as one of Ascribe's.\n const lead = (summary ?? \"\").trim().replace(/(<!--\\s*ascribe):/g, `$1${JOINER}:`);\n if (lead === \"\") return held.join(\"\\n\\n\");\n if (held.length === 0) return lead;\n return [lead, SUMMARY_END, ...held].join(\"\\n\\n\");\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/github/queries.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,MAAM,GAAG,4BAA4B,CAAC;AAE5C,MAAM,OAAO,GAAG;;;;;;;;IAQZ,MAAM;;;EAGR,CAAC;AAEH,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;EAoBb,CAAC;AAEH,MAAM,IAAI,GAAG,oCAAoC,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;EAiB/B,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;UAKpB,IAAI;;;;;;EAMZ,MAAM;EACN,OAAO,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;UAKrB,IAAI;;;;;;EAMZ,OAAO,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;UAKlB,IAAI;wCAC0B,MAAM;;;;EAI5C,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;UAKb,IAAI;8DACgD,MAAM;;;;EAIlE,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;UAKX,IAAI;;;;;EAKZ,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;EAKxB,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;EAQxB,MAAM;EACN,OAAO,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;EAQvB,OAAO,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,cAAc,GAAG;;;EAG5B,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;EAKrB,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;EAKvB,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;EAK3B,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;EAK3B,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;EAG3B,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;;;EAGpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../src/github/queries.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C,MAAM,MAAM,GAAG,4BAA4B,CAAC;AAE5C,MAAM,OAAO,GAAG;;;;;;;;IAQZ,MAAM;;;EAGR,CAAC;AAEH,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;EAoBb,CAAC;AAEH,MAAM,IAAI,GAAG,oCAAoC,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;EAiB/B,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;UAKpB,IAAI;;;;;;EAMZ,MAAM;EACN,OAAO,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;UAKrB,IAAI;;;;;;EAMZ,OAAO,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;UAKlB,IAAI;wCAC0B,MAAM;;;;EAI5C,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;UAKb,IAAI;8DACgD,MAAM;;;;EAIlE,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;UAKX,IAAI;;;;;EAKZ,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;EAKxB,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;EAQxB,MAAM;EACN,OAAO,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;EAQvB,OAAO,EAAE,CAAC;AAEZ,MAAM,CAAC,MAAM,cAAc,GAAG;;;EAG5B,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;EAKrB,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;EAKvB,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;EAK3B,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;EAK3B,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG;;;EAG3B,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG;;;EAGpB,CAAC","sourcesContent":["// The GraphQL documents this package sends.\n\nconst AUTHOR = \"author { login avatarUrl }\";\n\nconst COMMENT = `\nfragment ReviewComment on PullRequestReviewComment {\n id\n body\n createdAt\n url\n state\n diffHunk\n ${AUTHOR}\n commit { oid }\n originalCommit { oid }\n}`;\n\nconst THREAD = `\nfragment ReviewThread on PullRequestReviewThread {\n id\n path\n line\n startLine\n originalLine\n originalStartLine\n diffSide\n startDiffSide\n isResolved\n isOutdated\n subjectType\n viewerCanResolve\n viewerCanUnresolve\n viewerCanReply\n comments(first: 100) {\n pageInfo { hasNextPage endCursor }\n nodes { ...ReviewComment }\n }\n}`;\n\nconst PAGE = \"pageInfo { hasNextPage endCursor }\";\n\nexport const FIND_PULL_REQUEST = `\nquery FindPullRequest($owner: String!, $name: String!, $head: String!) {\n repository(owner: $owner, name: $name) {\n pullRequests(headRefName: $head, states: [OPEN], first: 20, orderBy: { field: CREATED_AT, direction: DESC }) {\n nodes {\n id\n number\n url\n baseRefName\n baseRefOid\n headRefName\n headRefOid\n headRepositoryOwner { login }\n headRepository { name }\n }\n }\n }\n}`;\n\nexport const REVIEW_THREADS = `\nquery ReviewThreads($owner: String!, $name: String!, $number: Int!, $after: String) {\n repository(owner: $owner, name: $name) {\n pullRequest(number: $number) {\n reviewThreads(first: 100, after: $after) {\n ${PAGE}\n nodes { ...ReviewThread }\n }\n }\n }\n}\n${THREAD}\n${COMMENT}`;\n\nexport const THREAD_COMMENTS = `\nquery ThreadComments($id: ID!, $after: String) {\n node(id: $id) {\n ... on PullRequestReviewThread {\n comments(first: 100, after: $after) {\n ${PAGE}\n nodes { ...ReviewComment }\n }\n }\n }\n}\n${COMMENT}`;\n\nexport const CONVERSATION = `\nquery Conversation($owner: String!, $name: String!, $number: Int!, $after: String) {\n repository(owner: $owner, name: $name) {\n pullRequest(number: $number) {\n comments(first: 100, after: $after) {\n ${PAGE}\n nodes { id body createdAt url ${AUTHOR} }\n }\n }\n }\n}`;\n\nexport const REVIEWS = `\nquery Reviews($owner: String!, $name: String!, $number: Int!, $after: String) {\n repository(owner: $owner, name: $name) {\n pullRequest(number: $number) {\n reviews(first: 100, after: $after) {\n ${PAGE}\n nodes { id state body createdAt url viewerDidAuthor ${AUTHOR} }\n }\n }\n }\n}`;\n\nexport const FILES = `\nquery Files($owner: String!, $name: String!, $number: Int!, $after: String) {\n repository(owner: $owner, name: $name) {\n pullRequest(number: $number) {\n files(first: 100, after: $after) {\n ${PAGE}\n nodes { path }\n }\n }\n }\n}`;\n\nexport const ADD_REVIEW = `\nmutation AddReview($pullRequestId: ID!, $commit: GitObjectID, $body: String!) {\n addPullRequestReview(input: { pullRequestId: $pullRequestId, commitOID: $commit, body: $body }) {\n pullRequestReview { id }\n }\n}`;\n\nexport const ADD_THREAD = `\nmutation AddThread($reviewId: ID!, $path: String!, $body: String!, $line: Int!, $startLine: Int) {\n addPullRequestReviewThread(\n input: { pullRequestReviewId: $reviewId, path: $path, body: $body, line: $line, side: RIGHT, startLine: $startLine, subjectType: LINE }\n ) {\n thread { ...ReviewThread }\n }\n}\n${THREAD}\n${COMMENT}`;\n\nexport const ADD_REPLY = `\nmutation AddReply($threadId: ID!, $body: String!, $reviewId: ID) {\n addPullRequestReviewThreadReply(\n input: { pullRequestReviewThreadId: $threadId, body: $body, pullRequestReviewId: $reviewId }\n ) {\n comment { ...ReviewComment }\n }\n}\n${COMMENT}`;\n\nexport const DELETE_COMMENT = `\nmutation DeleteComment($id: ID!) {\n deletePullRequestReviewComment(input: { id: $id }) { clientMutationId }\n}`;\n\nexport const RESOLVE = `\nmutation Resolve($threadId: ID!) {\n resolveReviewThread(input: { threadId: $threadId }) {\n thread { id isResolved viewerCanResolve viewerCanUnresolve }\n }\n}`;\n\nexport const UNRESOLVE = `\nmutation Unresolve($threadId: ID!) {\n unresolveReviewThread(input: { threadId: $threadId }) {\n thread { id isResolved viewerCanResolve viewerCanUnresolve }\n }\n}`;\n\nexport const UPDATE_REVIEW = `\nmutation UpdateReview($reviewId: ID!, $body: String!) {\n updatePullRequestReview(input: { pullRequestReviewId: $reviewId, body: $body }) {\n pullRequestReview { id }\n }\n}`;\n\nexport const SUBMIT_REVIEW = `\nmutation SubmitReview($reviewId: ID!, $event: PullRequestReviewEvent!, $body: String) {\n submitPullRequestReview(input: { pullRequestReviewId: $reviewId, event: $event, body: $body }) {\n pullRequestReview { id state }\n }\n}`;\n\nexport const DELETE_REVIEW = `\nmutation DeleteReview($reviewId: ID!) {\n deletePullRequestReview(input: { pullRequestReviewId: $reviewId }) { clientMutationId }\n}`;\n\nexport const VIEWER = `\nquery Viewer {\n viewer { login }\n}`;\n"]}
|
package/dist/github/read.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/github/read.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/github/read.ts"],"names":[],"mappings":"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","sourcesContent":["// Reading a pull request's threads, reviews, and files, page by page.\nimport { parseSource } from \"../place/anchor.js\";\nimport type { Author, Thread, ThreadComment } from \"../shared/types.js\";\nimport { parseSections } from \"./marker.js\";\nimport { CONVERSATION, FILES, REVIEW_THREADS, REVIEWS, THREAD_COMMENTS } from \"./queries.js\";\nimport type { GitHubTransport } from \"./transport.js\";\n\n/** A pull request, by repository and number. */\nexport interface PullRequestKey {\n owner: string;\n name: string;\n number: number;\n}\n\ninterface Page<T> {\n pageInfo: { hasNextPage: boolean; endCursor: string | null };\n nodes: (T | null)[];\n}\n\ninterface PullRequestData<K extends string, T> {\n repository: { pullRequest: Record<K, Page<T>> | null } | null;\n}\n\ninterface RawAuthor {\n login: string;\n avatarUrl?: string | null;\n}\n\ninterface RawComment {\n id: string;\n body: string;\n createdAt: string;\n url: string;\n state: \"PENDING\" | \"SUBMITTED\";\n diffHunk: string;\n author: RawAuthor | null;\n commit: { oid: string } | null;\n originalCommit: { oid: string } | null;\n}\n\n/** A review thread as the API returns it. */\nexport interface RawThread {\n id: string;\n path: string;\n line: number | null;\n startLine: number | null;\n originalLine: number | null;\n originalStartLine: number | null;\n diffSide: \"LEFT\" | \"RIGHT\";\n startDiffSide: \"LEFT\" | \"RIGHT\" | null;\n isResolved: boolean;\n isOutdated: boolean;\n subjectType: \"LINE\" | \"FILE\";\n viewerCanResolve: boolean;\n viewerCanUnresolve: boolean;\n viewerCanReply: boolean;\n comments: Page<RawComment>;\n}\n\ninterface RawConversationComment {\n id: string;\n body: string;\n createdAt: string;\n url: string;\n author: RawAuthor | null;\n}\n\n/** A review, as the API returns it. */\nexport interface RawReview extends RawConversationComment {\n state: \"PENDING\" | \"COMMENTED\" | \"APPROVED\" | \"CHANGES_REQUESTED\" | \"DISMISSED\";\n viewerDidAuthor: boolean;\n}\n\n/** Reads every page of one of the pull request's connections. */\nasync function readAll<K extends string, T>(\n transport: GitHubTransport,\n query: string,\n key: PullRequestKey,\n field: K,\n): Promise<T[]> {\n const items: T[] = [];\n let after: string | null = null;\n for (;;) {\n const data: PullRequestData<K, T> = await transport.graphql(query, { ...key, after });\n const page = data.repository?.pullRequest?.[field];\n if (page === undefined) break;\n for (const node of page.nodes) if (node !== null) items.push(node);\n if (!page.pageInfo.hasNextPage || page.pageInfo.endCursor === null) break;\n after = page.pageInfo.endCursor;\n }\n return items;\n}\n\n/** Every review thread, each with all its comments. */\nexport async function readReviewThreads(\n transport: GitHubTransport,\n key: PullRequestKey,\n): Promise<RawThread[]> {\n const threads = await readAll<\"reviewThreads\", RawThread>(\n transport,\n REVIEW_THREADS,\n key,\n \"reviewThreads\",\n );\n for (const thread of threads) await readRestOfComments(transport, thread);\n return threads;\n}\n\n/** Reads the comments past a thread's first page into it. */\nexport async function readRestOfComments(\n transport: GitHubTransport,\n thread: RawThread,\n): Promise<void> {\n let page = thread.comments;\n while (page.pageInfo.hasNextPage && page.pageInfo.endCursor !== null) {\n const data: { node: { comments: Page<RawComment> } | null } = await transport.graphql(\n THREAD_COMMENTS,\n { id: thread.id, after: page.pageInfo.endCursor },\n );\n if (data.node === null) break;\n page = data.node.comments;\n thread.comments.nodes.push(...page.nodes);\n }\n thread.comments.pageInfo = page.pageInfo;\n}\n\n/** The pull request's conversation comments. */\nexport function readConversation(\n transport: GitHubTransport,\n key: PullRequestKey,\n): Promise<RawConversationComment[]> {\n return readAll(transport, CONVERSATION, key, \"comments\");\n}\n\n/** The pull request's reviews, the viewer's pending one included. */\nexport function readReviews(transport: GitHubTransport, key: PullRequestKey): Promise<RawReview[]> {\n return readAll(transport, REVIEWS, key, \"reviews\");\n}\n\n/** The repository paths of the files the pull request changes. */\nexport async function readFiles(\n transport: GitHubTransport,\n key: PullRequestKey,\n): Promise<Set<string>> {\n const files = await readAll<\"files\", { path: string }>(transport, FILES, key, \"files\");\n return new Set(files.map((file) => file.path));\n}\n\nfunction author(raw: RawAuthor | null): Author | null {\n return raw === null ? null : { login: raw.login, avatarUrl: raw.avatarUrl ?? undefined };\n}\n\n/** A comment of a review thread. */\nexport function toComment(raw: RawComment): ThreadComment {\n return {\n id: raw.id,\n author: author(raw.author),\n body: raw.body,\n createdAt: raw.createdAt,\n url: raw.url,\n pending: raw.state === \"PENDING\",\n };\n}\n\n/** A review thread. */\nexport function toThread(raw: RawThread): Thread {\n const comments = raw.comments.nodes.filter((node) => node !== null);\n const first = comments[0];\n return {\n id: raw.id,\n kind: \"review\",\n repositoryPath: raw.path,\n subject: raw.subjectType === \"FILE\" ? \"file\" : \"line\",\n side: raw.diffSide,\n line: raw.line,\n startLine: raw.startLine,\n originalLine: raw.originalLine,\n originalStartLine: raw.originalStartLine,\n commit: first?.commit?.oid,\n originalCommit: first?.originalCommit?.oid,\n resolved: raw.isResolved,\n outdated: raw.isOutdated,\n canResolve: raw.viewerCanResolve,\n canUnresolve: raw.viewerCanUnresolve,\n canReply: raw.viewerCanReply,\n comments: comments.map(toComment),\n diffHunk: first?.diffHunk,\n marker: undefined,\n quote: undefined,\n };\n}\n\n/**\n * The anchored comments in a conversation comment's or a review's body, as\n * threads. `contentPrefix` is the content root's path in the repository.\n */\nexport function markedThreads(\n raw: RawConversationComment,\n contentPrefix: string,\n pending: boolean,\n): Thread[] {\n const threads: Thread[] = [];\n const { sections } = parseSections(raw.body);\n sections.forEach((section, index) => {\n const range = parseSource(section.source);\n if (range === undefined) return;\n threads.push({\n id: sections.length === 1 ? raw.id : `${raw.id}#${index}`,\n kind: \"conversation\",\n repositoryPath: `${contentPrefix}${range.path}`,\n subject: \"line\",\n side: \"RIGHT\",\n line: range.last,\n startLine: range.first === range.last ? null : range.first,\n originalLine: range.last,\n originalStartLine: range.first === range.last ? null : range.first,\n commit: undefined,\n originalCommit: undefined,\n resolved: false,\n outdated: false,\n canResolve: false,\n canUnresolve: false,\n canReply: false,\n comments: [\n {\n id: sections.length === 1 ? raw.id : `${raw.id}#${index}`,\n author: author(raw.author),\n body: section.body,\n createdAt: raw.createdAt,\n url: raw.url,\n pending,\n },\n ],\n diffHunk: undefined,\n marker: { source: section.source, build: section.build },\n quote: section.quote,\n });\n });\n return threads;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/github/repository.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAUlD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,IAAY,CAAC;IACjB,IAAI,IAAY,CAAC;IACjB,MAAM,GAAG,GAAG,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QACrF,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QACvB,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;SAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClD,qEAAqE;IACrE,IAAI,IAAI,KAAK,gBAAgB;QAAE,IAAI,GAAG,YAAY,CAAC;IACnD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACnD,CAAC;AAkBD,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7F,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9F,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IAC9F,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,EAAE,GAAW,EAA+B,EAAE,CAChE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACxE,MAAM,UAAU,GACd,CAAC,MAAM,MAAM,CAAC,UAAU,MAAM,aAAa,CAAC,CAAC;QAC7C,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC,MAAM,MAAM,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC;QACzC,QAAQ,CAAC;IACX,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,UAAU,MAAM,QAAQ,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAsC,EAAE;QAC3E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;QAC/C,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IACrF,IAAI,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/github/repository.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAUlD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,IAAY,CAAC;IACjB,IAAI,IAAY,CAAC;IACjB,MAAM,GAAG,GAAG,mCAAmC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAAE,OAAO,SAAS,CAAC;QACrF,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QACvB,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;SAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACxB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClD,qEAAqE;IACrE,IAAI,IAAI,KAAK,gBAAgB;QAAE,IAAI,GAAG,YAAY,CAAC;IACnD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACnD,CAAC;AAkBD,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7F,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAC5C,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE,oCAAoC,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9F,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IAC9F,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,EAAE,GAAW,EAA+B,EAAE,CAChE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACxE,MAAM,UAAU,GACd,CAAC,MAAM,MAAM,CAAC,UAAU,MAAM,aAAa,CAAC,CAAC;QAC7C,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACpC,CAAC,MAAM,MAAM,CAAC,UAAU,MAAM,SAAS,CAAC,CAAC;QACzC,QAAQ,CAAC;IACX,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,UAAU,MAAM,QAAQ,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,EAAE,IAAY,EAAsC,EAAE;QAC3E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;QAC/C,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IACrF,IAAI,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,IAAI,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACzD,CAAC","sourcesContent":["// The checkout's GitHub repository and branch, from git's configuration.\nimport { git, gitMaybe } from \"../shared/git.js\";\nimport { ReviewError } from \"../shared/errors.js\";\n\n/** A repository on a GitHub host. */\nexport interface RepositoryRef {\n /** `github.com`, or a GitHub Enterprise Server host. */\n host: string;\n owner: string;\n name: string;\n}\n\n/**\n * The repository a remote URL names, or `undefined` if it isn't a GitHub-style\n * URL: `https://host/owner/name(.git)`, `git@host:owner/name(.git)`, or\n * `ssh://git@host[:port]/owner/name(.git)`.\n */\nexport function parseRemote(url: string): RepositoryRef | undefined {\n const trimmed = url.trim();\n let host: string;\n let rest: string;\n const scp = /^(?:[^@/]+@)?([^:/]+):(?!\\/)(.+)$/.exec(trimmed);\n if (/^[a-z][a-z0-9+.-]*:\\/\\//i.test(trimmed)) {\n let parsed: URL;\n try {\n parsed = new URL(trimmed);\n } catch {\n return undefined;\n }\n if (![\"https:\", \"http:\", \"ssh:\", \"git:\"].includes(parsed.protocol)) return undefined;\n host = parsed.hostname;\n rest = parsed.pathname;\n } else if (scp !== null) {\n host = scp[1] ?? \"\";\n rest = scp[2] ?? \"\";\n } else {\n return undefined;\n }\n const parts = rest.replace(/^\\/+|\\/+$/g, \"\").split(\"/\");\n if (parts.length !== 2) return undefined;\n const owner = parts[0] ?? \"\";\n const name = (parts[1] ?? \"\").replace(/\\.git$/, \"\");\n if (owner === \"\" || name === \"\") return undefined;\n // SSH connections to github.com sometimes go through ssh.github.com.\n if (host === \"ssh.github.com\") host = \"github.com\";\n return { host: host.toLowerCase(), owner, name };\n}\n\n/** The checkout's branch and the repositories a pull request for it could be in. */\nexport interface CheckoutInfo {\n /** The repository's top-level directory. */\n root: string;\n /** The local branch, or `undefined` when `HEAD` is detached. */\n branch: string | undefined;\n /** The branch's name on its remote (its upstream's name, or the same name). */\n headRef: string | undefined;\n /** The repository the branch is pushed to. */\n head: RepositoryRef | undefined;\n /** Where to look for the pull request: an `upstream` remote first, then `head`. */\n bases: RepositoryRef[];\n /** The commit `HEAD` names. */\n headOid: string;\n}\n\n/** Reads the checkout at `cwd`. Rejects with a `git` error if it isn't a repository. */\nexport async function readCheckout(cwd: string): Promise<CheckoutInfo> {\n const root = (await git(cwd, [\"rev-parse\", \"--show-toplevel\"])).trim();\n const headOid = (await gitMaybe(root, [\"rev-parse\", \"--verify\", \"--quiet\", \"HEAD\"]))?.trim();\n if (headOid === undefined || headOid === \"\") {\n throw new ReviewError(\"git\", \"The repository has no commits yet.\");\n }\n const branch = (await gitMaybe(root, [\"symbolic-ref\", \"--quiet\", \"--short\", \"HEAD\"]))?.trim();\n if (branch === undefined || branch === \"\") {\n return { root, branch: undefined, headRef: undefined, head: undefined, bases: [], headOid };\n }\n const config = async (key: string): Promise<string | undefined> =>\n (await gitMaybe(root, [\"config\", \"--get\", key]))?.trim() || undefined;\n const remoteName =\n (await config(`branch.${branch}.pushRemote`)) ??\n (await config(\"remote.pushDefault\")) ??\n (await config(`branch.${branch}.remote`)) ??\n \"origin\";\n const merge = await config(`branch.${branch}.merge`);\n const headRef = merge?.replace(/^refs\\/heads\\//, \"\") ?? branch;\n const remoteUrl = async (name: string): Promise<RepositoryRef | undefined> => {\n const url = await config(`remote.${name}.url`);\n return url === undefined ? undefined : parseRemote(url);\n };\n const head = await remoteUrl(remoteName);\n const bases: RepositoryRef[] = [];\n const upstream = remoteName === \"upstream\" ? undefined : await remoteUrl(\"upstream\");\n if (upstream !== undefined) bases.push(upstream);\n if (head !== undefined) bases.push(head);\n return { root, branch, headRef, head, bases, headOid };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/github/requests.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/github/requests.ts"],"names":[],"mappings":"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","sourcesContent":["// Answering the overlay's requests (`OverlayHost`) from a review session, for\n// a host that keeps GitHub to itself and passes the overlay's requests on as\n// messages: the page preview's extension, or the site preview's dev server.\n// The parameters arrive as untyped messages, so each is checked here.\nimport { anchorKey, parseSource, type Anchor } from \"../place/anchor.js\";\nimport { lineHunks, shiftLine, type Hunk, type Sides } from \"../place/lines.js\";\nimport type { PageRef, PlacedThreads } from \"../place/place.js\";\nimport { ReviewError } from \"../shared/errors.js\";\nimport { gitMaybe } from \"../shared/git.js\";\nimport { parseRemote } from \"./repository.js\";\nimport type { PullRequestInfo, ReviewEvent, ReviewSession } from \"./session.js\";\n\n/** The overlay's requests, one per `OverlayHost` method that reads or writes threads. */\nexport type OverlayMethod =\n \"load\" | \"commentTarget\" | \"comment\" | \"reply\" | \"allThreads\" | \"resolve\" | \"submit\" | \"discard\";\n\nexport const OVERLAY_METHODS: readonly OverlayMethod[] = [\n \"load\",\n \"commentTarget\",\n \"comment\",\n \"reply\",\n \"allThreads\",\n \"resolve\",\n \"submit\",\n \"discard\",\n];\n\n/** A changed page as `ascribe diff` lists it, with its title when the host knows it. */\nexport interface ChangedPageRef {\n path: string;\n status: \"added\" | \"removed\" | \"changed\";\n because: readonly string[];\n title?: string | null;\n}\n\n/** What answering a request needs. */\nexport interface RequestContext {\n session: ReviewSession;\n /** The page the overlay is on: its build and content path. */\n page: { build: string; path: string } | undefined;\n /** The page as the overlay last read it, with its anchors: comments are made on it. */\n lastPage: PageRef | undefined;\n /** The changed pages, for which pages show a thread. */\n changedPages(): Promise<readonly ChangedPageRef[]>;\n /**\n * For a host whose pages are rendered from an editor's unsaved text: a\n * file's text on disk (`saved`) and in the editor (`current`), by content\n * path, or `undefined` when they're the same. The session counts lines on\n * disk, so the page's blocks are moved to their lines there, and back.\n */\n unsaved?(path: string): Promise<{ saved: string; current: string } | undefined>;\n}\n\n/** An answer: the result, the page read (for `load`), and whether the request changed the threads. */\nexport interface Answer {\n result: unknown;\n page?: PageRef;\n changed: boolean;\n}\n\n/** Answers one of the overlay's requests. Rejects with a `ReviewError`. */\nexport async function answerRequest(\n context: RequestContext,\n method: OverlayMethod,\n params: Record<string, unknown>,\n): Promise<Answer> {\n const { session } = context;\n switch (method) {\n case \"load\": {\n const page = context.page;\n if (!page) throw new ReviewError(\"not-found\", \"There's no page to review here.\");\n const shown = anchors(params[\"anchors\"]);\n const edits = await unsavedEdits(context, shown);\n // The page's blocks at their lines on disk, and the way back.\n const back = new Map<string, Anchor>();\n for (const block of shown) {\n const saved = toSaved(edits, block, false);\n if (saved !== undefined && !back.has(anchorKey(saved))) back.set(anchorKey(saved), block);\n }\n const ref: PageRef = {\n build: page.build,\n path: page.path,\n anchors: edits.size === 0 ? shown : [...back.keys()].map((key) => fromKey(key)),\n removed: anchors(params[\"removed\"]),\n };\n const [placed, pending, viewer] = await Promise.all([\n session.threads(ref),\n session.pending(),\n session.viewer(),\n ]);\n const threads: PlacedThreads =\n edits.size === 0\n ? placed\n : {\n ...placed,\n blocks: placed.blocks.map((block) => ({\n ...block,\n anchor: back.get(anchorKey(block.anchor)) ?? block.anchor,\n })),\n };\n const pr = session.pullRequest;\n return {\n result: { pullRequest: { number: pr.number, url: pr.url }, threads, pending, viewer },\n page: ref,\n changed: false,\n };\n }\n case \"commentTarget\": {\n const shown = anchor(params[\"anchor\"]);\n const saved = toSaved(await unsavedEdits(context, [shown]), shown, true);\n if (saved === undefined)\n return { result: { kind: \"push-first\", message: UNSAVED }, changed: false };\n return { result: await session.commentTarget(saved), changed: false };\n }\n case \"allThreads\": {\n const [threads, pages] = await Promise.all([\n session.allThreads(),\n context.changedPages().catch(() => []),\n ]);\n return {\n result: threads.map((thread) => ({ thread, pages: pagesShowing(thread.path, pages) })),\n changed: false,\n };\n }\n case \"comment\": {\n const shown = anchor(params[\"anchor\"]);\n const target = toSaved(await unsavedEdits(context, [shown]), shown, true);\n if (target === undefined) throw new ReviewError(\"push-first\", UNSAVED);\n const page = context.lastPage ?? {\n build: context.page?.build ?? \"\",\n path: context.page?.path ?? \"\",\n anchors: [target],\n };\n const quote = typeof params[\"quote\"] === \"string\" ? params[\"quote\"] : undefined;\n return {\n result: await session.comment(target, text(params[\"body\"]), page, quote),\n changed: true,\n };\n }\n case \"reply\":\n return {\n result: await session.reply(\n text(params[\"threadId\"]),\n text(params[\"body\"]),\n params[\"when\"] === \"now\" ? \"now\" : \"withReview\",\n ),\n changed: true,\n };\n case \"resolve\":\n await session.resolve(text(params[\"threadId\"]), params[\"resolved\"] === true);\n return { result: null, changed: true };\n case \"submit\": {\n const body = typeof params[\"body\"] === \"string\" ? params[\"body\"] : undefined;\n await session.submit(event(params[\"event\"]), body);\n return { result: null, changed: true };\n }\n case \"discard\":\n await session.discard();\n return { result: null, changed: true };\n }\n}\n\n/** A file's unsaved edits: the line changes from the editor's text to the text on disk. */\ninterface Edit {\n hunks: Hunk[];\n sides: Sides;\n}\n\nconst UNSAVED = \"This block has changes that aren't saved. Save the file, then comment.\";\n\n/** The line changes from each shown file's text in the editor to its text on disk, where they differ. */\nasync function unsavedEdits(\n context: RequestContext,\n shown: readonly Anchor[],\n): Promise<Map<string, Edit>> {\n const edits = new Map<string, Edit>();\n if (!context.unsaved) return edits;\n const files = new Set<string>();\n for (const block of shown) {\n const range = parseSource(block.source);\n if (range) files.add(range.path);\n for (const include of block.via) {\n const at = parseInclude(include);\n if (at) files.add(at.path);\n }\n }\n for (const file of files) {\n const text = await context.unsaved(file);\n if (text === undefined) continue;\n const hunks = lineHunks(text.current, text.saved);\n if (hunks.length > 0) {\n edits.set(file, {\n hunks,\n sides: { old: text.current.split(/\\r?\\n/), new: text.saved.split(/\\r?\\n/) },\n });\n }\n }\n return edits;\n}\n\n/**\n * A block's anchor with its lines on disk. `strict` (for commenting) wants\n * every line of the block saved as it is; otherwise an edited block takes\n * the lines its text has on disk. `undefined` when nothing of it is saved.\n */\nfunction toSaved(\n edits: ReadonlyMap<string, Edit>,\n block: Anchor,\n strict: boolean,\n): Anchor | undefined {\n if (edits.size === 0) return block;\n const range = parseSource(block.source);\n if (range === undefined) return block;\n const edit = edits.get(range.path);\n let source = block.source;\n if (edit !== undefined) {\n const lines: number[] = [];\n for (let line = range.first; line <= range.last; line++) {\n const moved = shiftLine(edit.hunks, line, edit.sides);\n if (moved === undefined || moved.replaced) {\n if (strict) return undefined;\n if (moved === undefined) continue;\n }\n lines.push(moved.line);\n }\n if (lines.length === 0) return undefined;\n const colon = block.source.lastIndexOf(\":\");\n source = `${block.source.slice(0, colon)}:${Math.min(...lines)}-${Math.max(...lines)}`;\n }\n const via: string[] = [];\n for (const include of block.via) {\n const at = parseInclude(include);\n const includeEdit = at && edits.get(at.path);\n if (!at || !includeEdit) {\n via.push(include);\n continue;\n }\n const moved = shiftLine(includeEdit.hunks, at.line, includeEdit.sides);\n if (moved === undefined || (strict && moved.replaced)) return undefined;\n via.push(`${include.slice(0, include.lastIndexOf(\":\"))}:${moved.line}`);\n }\n return { source, via };\n}\n\n/** An include, `<path>:<line>`, parsed, with its path decoded. */\nfunction parseInclude(include: string): { path: string; line: number } | undefined {\n const colon = include.lastIndexOf(\":\");\n const line = Number(include.slice(colon + 1));\n if (colon <= 0 || !Number.isInteger(line) || line < 1) return undefined;\n const range = parseSource(`${include.slice(0, colon)}:1-1`);\n return range && { path: range.path, line };\n}\n\n/** The anchor `anchorKey` wrote. */\nfunction fromKey(key: string): Anchor {\n const [source = \"\", ...via] = key.split(\" \");\n return { source, via };\n}\n\n/**\n * The changed pages that show a file (a content path): the file's own page,\n * and the pages that changed through it (an include). `[]` when none does.\n */\nexport function pagesShowing(\n file: string,\n pages: readonly ChangedPageRef[],\n): { path: string; title: string | null }[] {\n return pages\n .filter((page) => page.status !== \"removed\")\n .filter((page) => page.path === file || page.because.includes(file))\n .sort((a, b) => Number(b.path === file) - Number(a.path === file))\n .map((page) => ({ path: page.path, title: page.title ?? null }));\n}\n\n/**\n * The git revision to compare with for a pull request's base: the remote\n * branch, from the remote whose URL is the pull request's repository, when\n * there is one; else the branch's name.\n */\nexport function pullRequestBase(\n remotes: readonly { name: string; repository: string | undefined }[],\n repository: string,\n baseRefName: string,\n): string {\n const remote =\n remotes.find((r) => r.repository === repository && r.name === \"upstream\") ??\n remotes.find((r) => r.repository === repository && r.name === \"origin\") ??\n remotes.find((r) => r.repository === repository);\n return remote ? `${remote.name}/${baseRefName}` : baseRefName;\n}\n\n/**\n * The git revision for the pull request's base in the checkout at `root`:\n * `origin/main` when that remote branch exists, else the branch's name.\n */\nexport async function baseRevision(root: string, pr: PullRequestInfo): Promise<string> {\n const out = (await gitMaybe(root, [\"remote\", \"-v\"]).catch(() => undefined)) ?? \"\";\n const remotes = out\n .split(\"\\n\")\n .map((line) => /^(\\S+)\\s+(\\S+)\\s+\\(fetch\\)$/.exec(line))\n .filter((match) => match !== null)\n .map((match) => {\n const repository = parseRemote(match[2] ?? \"\");\n return { name: match[1] ?? \"\", repository: repository && repoKey(repository) };\n });\n const revision = pullRequestBase(remotes, repoKey(pr.repository), pr.baseRefName);\n if (revision !== pr.baseRefName) {\n const exists = await gitMaybe(root, [\"rev-parse\", \"--verify\", \"--quiet\", revision]).catch(\n () => undefined,\n );\n if (exists !== undefined) return revision;\n }\n return pr.baseRefName;\n}\n\nfunction repoKey(repository: { host: string; owner: string; name: string }): string {\n return `${repository.host}/${repository.owner}/${repository.name}`.toLowerCase();\n}\n\nconst EVENTS: readonly ReviewEvent[] = [\"COMMENT\", \"APPROVE\", \"REQUEST_CHANGES\"];\n\nfunction event(value: unknown): ReviewEvent {\n if (EVENTS.includes(value as ReviewEvent)) return value as ReviewEvent;\n throw new ReviewError(\"refused\", `A review can't be submitted as ${String(value)}.`);\n}\n\nfunction text(value: unknown): string {\n if (typeof value !== \"string\") throw new ReviewError(\"refused\", \"The request is missing text.\");\n return value;\n}\n\nfunction anchor(value: unknown): Anchor {\n const record = value as Partial<Anchor> | null;\n if (typeof record?.source !== \"string\") {\n throw new ReviewError(\"refused\", \"The request is missing a block.\");\n }\n const via = Array.isArray(record.via) ? record.via.filter((v) => typeof v === \"string\") : [];\n return { source: record.source, via };\n}\n\nfunction anchors(value: unknown): Anchor[] {\n return Array.isArray(value) ? value.map(anchor) : [];\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/github/session.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,qDAAqD;AACrD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,aAAa,EACb,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EACL,SAAS,EACT,UAAU,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,aAAa,EACb,SAAS,EACT,aAAa,EACb,MAAM,GACP,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,QAAQ,GAIT,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAyC,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AA4GnE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA0B;IACzD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAClG,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,aAAa;QACb,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;KACnD,CAAC,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,UAAkB;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACzD,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/E,MAAM,KAAK,GAAI,OAAmC,CAAC,cAAc,CAAC,CAAC;YACnE,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,WAAW,GAAG,KAAK,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,iBAAiB,UAAU,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACxF,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC/B,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AAClD,CAAC;AAcD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAsB,EACtB,YAA+C;IAE/C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3E,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAEN,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC3D,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,QAAQ,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CACpD,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,KAAK,IAAI;YACb,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC1E,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CACtE,CAAC;QACF,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,UAAU;YACzB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,UAAU;YACzB,KAAK,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC;SAC3E,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa,EAAE,IAAY;IACjE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACvF,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACvF,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AA0BD,2EAA2E;AAC3E,mDAAmD;AACnD,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAE1C,sHAAsH;AACtH,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,2DAA2D;AAC3D,MAAM,WAAW,GACf,uFAAuF,CAAC;AAE1F;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAY,EAAE,OAA0B;IAC7D,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,IAAI,KAAK,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,aAAa,CAAC,OAAuB;IACnD,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAChE,MAAM,GAAG,GAAmB;QAC1B,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK;QACnC,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI;QACjC,MAAM,EAAE,WAAW,CAAC,MAAM;KAC3B,CAAC;IACF,IAAI,KAAiC,CAAC;IACtC,IAAI,KAAuC,CAAC;IAC5C,2EAA2E;IAC3E,IAAI,KAA+C,CAAC;IACpD,IAAI,MAAmC,CAAC;IACxC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAChD,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,SAA6B,CAAC;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IAE9C,wFAAwF;IACxF,MAAM,IAAI,GAAG,KAAK,EAAK,GAAqB,EAAc,EAAE;QAC1D,IAAI,CAAC;YACH,OAAO,MAAM,GAAG,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CACH,KAAK,YAAY,WAAW;gBAC5B,KAAK,CAAC,IAAI,KAAK,SAAS;gBACxB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAC9B,EAAE,CAAC;gBACF,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAChE,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,GAAmB,EAAE;QAChC,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACnD,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC5C,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aACxC,CAAC,CAAC;YACH,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,SAAS,CAAC;gBACvB,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;oBAC5C,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;gBAClF,IAAI,KAAK,EAAE,CAAC;oBACV,8DAA8D;oBAC9D,oCAAoC;oBACpC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;oBACzD,GAAG,GAAG,GAAG;yBACN,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBAChB,GAAG,MAAM;wBACT,QAAQ,EAAE;4BACR,GAAG,MAAM,CAAC,QAAQ;4BAClB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;yBAChF;qBACF,CAAC,CAAC;yBACF,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1D,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,SAAS,CAAC;gBACxB,CAAC;YACH,CAAC;YACD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,eAAe,CACjE,CAAC;YACF,MAAM,OAAO,GAAa,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;YAChE,CAAC;YACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,MAAM,KAAK,CAAC;YACZ,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;QACzE,CAAC,CAAC,EAAE,CAAC;QACL,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YACf,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,OAA0B,EAA4B,EAAE,CACtE,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAEhF,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,OAAO,GAAG,KAAK,IAA8B,EAAE;QACnD,MAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACtB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC;IACzB,CAAC,CAAC;IAEF,2EAA2E;IAC3E,MAAM,MAAM,GAAG,CAAI,KAAa,EAAE,SAAkC,EAAc,EAAE;QAClF,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChC,MAAM,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAClE,IAAI,IAAI,GAAG,CAAC;gBAAE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACxE,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,CAAC,OAAO,CAAI,KAAK,EAAE,SAAS,CAAC,CAAC;YACtD,CAAC;oBAAS,CAAC;gBACT,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,KAAK,GAAG,SAAS,CAAC;IACpB,CAAC,CAAC;IAEF,wEAAwE;IACxE,qEAAqE;IACrE,wEAAwE;IACxE,MAAM,KAAK,GAAG,KAAK,EACjB,MAAkC,EAClC,QAAgB,EAChB,MAA6D,EAC9C,EAAE;QACjB,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,OAAO,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACxE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,OAAO,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACzB,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC/D,IAAI,EAAE,KAAK,CAAC,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YAChC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;YACzB,IAAI,KAAK,KAAK,MAAM;gBAAE,KAAK,GAAG,SAAS,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,IAA2C,EAAE;QACrE,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC;QACnD,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,aAAa,CAAC;QACtD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,MAAM,CACvB,UAAU,EACV,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAClF,CAAC;QACF,OAAO,EAAE,CAAC;QACV,sEAAsE;QACtE,SAAS,GAAG,SAAS,CAAC;QACtB,KAAK,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAsC,EAAE,CAChF,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;IAE7D,MAAM,mBAAmB,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;QACpE,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;YAAE,OAAO;QAC/D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,MAAM,EAAE,IAAI,KAAK,cAAc;YACnC,CAAC,CAAC,IAAI,WAAW,CACb,SAAS,EACT,wGAAwG,CACzG;YACH,CAAC,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,wCAAwC,CAAC,CAAC;IAC7E,CAAC,CAAC;IAEF,oFAAoF;IACpF,MAAM,MAAM,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,WAAW,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,0BAA0B,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,cAAc,GAAG,GAAG,aAAa,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;QAClF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IACE,KAAK,KAAK,SAAS;YACnB,IAAI,KAAK,SAAS;YAClB,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,EAC7C,CAAC;YACD,MAAM,IAAI,WAAW,CACnB,YAAY,EACZ,WAAW,CAAC,KAAK,KAAK,SAAS;gBAC7B,CAAC,CAAC,kFAAkF;gBACpF,CAAC,CAAC,kFAAkF,CACvF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAyB,EAAE;QAC9C,KAAK,KAAK,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;YACf,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,yEAAyE;IACzE,8DAA8D;IAC9D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuC,CAAC;IAC7D,MAAM,UAAU,GAAG,CAAC,cAAsB,EAA+B,EAAE;QACzE,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE;gBACrB,MAAM;gBACN,YAAY;gBACZ,eAAe;gBACf,cAAc;gBACd,aAAa;gBACb,GAAG,WAAW,CAAC,OAAO,MAAM,WAAW,CAAC,OAAO,EAAE;gBACjD,IAAI;gBACJ,aAAa,cAAc,EAAE;aAC9B,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACvE,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO;QACL,WAAW;QAEX,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,UAAU;YACd,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC;QAED,KAAK,CAAC,MAAM;YACV,MAAM,KAAK,SAAS;iBACjB,OAAO,CAAgC,MAAM,EAAE,EAAE,CAAC;iBAClD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBAChB,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,MAAM;YACxB,IAAI,KAAyC,CAAC;YAC9C,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;gBACxD,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,IAAI,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YACrD,kFAAkF;YAClF,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CACrF,CAAC;YACF,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC3E,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;YACrC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,MAAM,CACvB,UAAU,EACV;wBACE,QAAQ,EAAE,MAAM,CAAC,EAAE;wBACnB,IAAI,EAAE,cAAc;wBACpB,IAAI;wBACJ,IAAI,EAAE,IAAI;wBACV,SAAS,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;qBACzC,CACF,CAAC;oBACF,oEAAoE;oBACpE,mDAAmD;oBACnD,MAAM,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;oBACtD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;wBACpB,IAAI,CAAC;4BACH,MAAM,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;wBAC9C,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,4DAA4D;4BAC5D,OAAO,EAAE,CAAC;4BACV,MAAM,KAAK,CAAC;wBACd,CAAC;wBACD,iEAAiE;wBACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;wBACxE,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAC1D,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CACvC,CAAC;wBACF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC1B,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,CACH,KAAK,YAAY,WAAW;wBAC5B,KAAK,CAAC,IAAI,KAAK,SAAS;wBACxB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAChC,EAAE,CAAC;wBACF,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,sEAAsE;YACtE,yDAAyD;YACzD,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;YAC3B,MAAM,KAAK,GACT,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;gBAC/B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC;qBAChE,KAAK,CAAC,OAAO,CAAC;qBACd,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;qBAClC,IAAI,CAAC,IAAI,CAAC;gBACf,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW;oBACzB,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG;oBAC5C,CAAC,CAAC,IAAI,CAAC;YACb,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,aAAa,CAAC;gBAC5B,MAAM;gBACN,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;gBACxC,IAAI,EAAE;oBACJ,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;oBAChH,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC;iBACvD;aACF,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;YACjF,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,WAAW,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxE,MAAM,IAAI,WAAW,CACnB,WAAW,EACX,8IAA8I,EAC9I,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,OAAO,EAAE,CAAC;YACV,KAAK,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,GAAG,aAAa,CAC5B;gBACE,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,GAAG,EAAE,WAAW,CAAC,GAAG;gBACpB,MAAM,EAAE,IAAI;aACb,EACD,aAAa,EACb,IAAI,CACL,CAAC;YACF,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC;YAC1F,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI;YAC9B,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/E,MAAM,MAAM,GAAG,KAAK,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CAEtB,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC;YACzD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC;gBACV,MAAM,IAAI,WAAW,CAAC,SAAS,EAAE,8BAA8B,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9C,iEAAiE;gBACjE,mEAAmE;gBACnE,OAAO,EAAE,CAAC;gBACV,MAAM,MAAM,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7C,MAAM,IAAI,WAAW,CACnB,YAAY,EACZ,mIAAmI,CACpI,CAAC;YACJ,CAAC;YACD,qEAAqE;YACrE,MAAM,MAAM,GACV,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC;YACvF,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAC5D,MAAM,KAAK,SAAS;gBAClB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAC5F,CAAC;YACF,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ;YAC9B,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,MAAM,GAAG,KAAK,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CACvB,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAC9B,EAAE,QAAQ,EAAE,CACb,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;YACxF,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAC5D,MAAM,KAAK,SAAS,IAAI,MAAM,IAAI,IAAI;gBACpC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,GAAG,MAAM;oBACT,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,QAAQ;oBACzC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,CAAC,QAAQ;oBACtD,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,QAAQ;iBAC1D,CACN,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,OAAO;YACX,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACjF,CAAC;YACD,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,MAAM,OAAO,GAA6B,EAAE,CAAC;YAC7C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC1E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;wBACtC,IAAI,OAAO,CAAC,OAAO;4BAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;YAC7E,OAAO;gBACL,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE;gBAC1B,OAAO;gBACP,OAAO;gBACP,YAAY;gBACZ,KAAK,EACH,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;oBAChE,OAAO,CAAC,MAAM;oBACd,YAAY,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI;YACtB,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,MAAM,CAAC,aAAa,EAAE;gBAC1B,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,KAAK;gBACL,IAAI,EAAE,YAAY,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI;aACpE,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;YACV,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;QAED,KAAK,CAAC,OAAO;YACX,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC;YAC5D,IAAI,aAAa,KAAK,SAAS;gBAAE,OAAO;YACxC,MAAM,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,OAAO,EAAE,CAAC;YACV,KAAK,GAAG,SAAS,CAAC;YAClB,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,OAAO;YACX,KAAK,GAAG,SAAS,CAAC;YAClB,KAAK,GAAG,SAAS,CAAC;YAClB,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,SAAS,OAAO,CAAC,EAAmB,EAAE,IAAY,EAAE,KAAa,EAAE,IAAY;IAC7E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;IAClE,OAAO,WAAW,IAAI,IAAI,KAAK,IAAI,IAAI,SAAS,EAAE,CAAC,OAAO,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;AACnF,CAAC"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/github/session.ts"],"names":[],"mappings":"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","sourcesContent":["// A review session: one pull request's threads, placed on pages, and the\n// viewer's pending review that new comments go into.\nimport { readFileSync, realpathSync, statSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { parse } from \"smol-toml\";\nimport { formatSource, parseSource, type Anchor } from \"../place/anchor.js\";\nimport { lineMap, parseHunks, type Hunk } from \"../place/lines.js\";\nimport {\n locateThreads,\n placeOnPage,\n type LocatedThread,\n type PageRef,\n type PlacedThreads,\n} from \"../place/place.js\";\nimport { ReviewError } from \"../shared/errors.js\";\nimport { gitMaybe } from \"../shared/git.js\";\nimport type { Thread, ThreadComment } from \"../shared/types.js\";\nimport { formatSection, joinSections, PLACEHOLDER, withoutPlaceholder } from \"./marker.js\";\nimport {\n ADD_REPLY,\n ADD_REVIEW,\n ADD_THREAD,\n DELETE_COMMENT,\n DELETE_REVIEW,\n FIND_PULL_REQUEST,\n RESOLVE,\n SUBMIT_REVIEW,\n UNRESOLVE,\n UPDATE_REVIEW,\n VIEWER,\n} from \"./queries.js\";\nimport {\n markedThreads,\n readConversation,\n readFiles,\n readRestOfComments,\n readReviews,\n readReviewThreads,\n toComment,\n toThread,\n type PullRequestKey,\n type RawReview,\n type RawThread,\n} from \"./read.js\";\nimport { readCheckout, type CheckoutInfo, type RepositoryRef } from \"./repository.js\";\nimport { ghTransport, type GitHubTransport } from \"./transport.js\";\n\n/** How the local `HEAD` relates to the pull request's head commit. */\nexport type LocalState =\n /** `HEAD` is the pull request's head commit. */\n | \"same\"\n /** The pull request has commits `HEAD` doesn't: pull them. */\n | \"behind\"\n /** `HEAD` has commits the pull request doesn't: push them. */\n | \"ahead\"\n /** Both have commits the other doesn't. */\n | \"diverged\"\n /** The pull request's head commit isn't in the local repository: fetch it. */\n | \"missing\";\n\n/** The pull request for the checkout. */\nexport interface PullRequestInfo {\n /** Its GraphQL node id. */\n id: string;\n number: number;\n url: string;\n repository: RepositoryRef;\n baseRefName: string;\n baseOid: string;\n headRefName: string;\n headOid: string;\n local: LocalState;\n}\n\n/** What's in the viewer's pending review: comments only they can see until they submit. */\nexport interface PendingReview {\n /** The review's node id, or `undefined` when there's no pending review. */\n id: string | undefined;\n /** New threads. */\n threads: Thread[];\n /** Replies to existing threads. */\n replies: { threadId: string; comment: ThreadComment }[];\n /** Comments on blocks GitHub can't anchor, which go on the conversation when submitted. */\n conversation: Thread[];\n /** How many comments there are in all. */\n count: number;\n}\n\n/** How a review ends: as a comment, an approval, or a request for changes. */\nexport type ReviewEvent = \"COMMENT\" | \"APPROVE\" | \"REQUEST_CHANGES\";\n\n/** How a comment on a block would go, worked out before it's made. */\nexport type CommentTarget =\n /** As a review thread on the block's lines. */\n | { kind: \"thread\" }\n /**\n * In the pending review's body, since GitHub can't anchor it: the file\n * isn't in the pull request (`\"file\"`), or the lines are away from its\n * changes (`\"lines\"`).\n */\n | { kind: \"summary\"; reason: \"file\" | \"lines\" }\n /** Not until the block's lines are pushed (or fetched): `message` says which. */\n | { kind: \"push-first\"; message: string };\n\n/** One pull request's review, for a host and the overlay behind it. */\nexport interface ReviewSession {\n pullRequest: PullRequestInfo;\n /** The page's threads. Cached until `refresh()` or a change made through the session. */\n threads(page: PageRef): Promise<PlacedThreads>;\n /** Every thread on the pull request's files in the content root, located in the working tree. */\n allThreads(): Promise<LocatedThread[]>;\n /** The signed-in viewer's login. */\n viewer(): Promise<string>;\n /** How a comment on a block would go: as a thread, in the review's summary, or not yet. */\n commentTarget(anchor: Anchor): Promise<CommentTarget>;\n /** Comments on a block, in the pending review. */\n /**\n * Comments on a block. `quote` is the block's text as the page shows it,\n * which a comment held in the review's summary quotes; without it, the\n * comment quotes the block's source.\n */\n comment(anchor: Anchor, body: string, page: PageRef, quote?: string): Promise<Thread>;\n /** Replies to a thread: sent at once (`\"now\"`), or held in the pending review. */\n reply(threadId: string, body: string, when: \"now\" | \"withReview\"): Promise<ThreadComment>;\n /** Resolves or reopens a thread, at once. */\n resolve(threadId: string, resolved: boolean): Promise<void>;\n pending(): Promise<PendingReview>;\n /** Submits the pending review, making its comments visible. */\n submit(event: ReviewEvent, body?: string): Promise<void>;\n /** Deletes the pending review and everything in it. */\n discard(): Promise<void>;\n /** Forgets what's cached, so the next call reads from GitHub again. */\n refresh(): Promise<void>;\n}\n\n/** Options for `openReview`. */\nexport interface OpenReviewOptions {\n /** The directory holding the project's `ascribe.toml`. */\n projectDir: string;\n /**\n * The content root's path in the repository, with a trailing `/`. By\n * default it's worked out from `ascribe.toml`'s `content-root`.\n */\n contentPrefix?: string;\n /** Makes the transport for a host. By default, `ghTransport`. */\n transport?: (host: string) => GitHubTransport;\n /**\n * The least time between two requests that change something, in\n * milliseconds, to stay under GitHub's secondary rate limit. Default 1000.\n */\n mutationInterval?: number;\n}\n\n/**\n * Opens a review of the pull request for the project's checkout: the open\n * pull request whose head is the current branch. Resolves with `undefined`\n * when there's none, or `HEAD` is detached.\n */\nexport async function openReview(options: OpenReviewOptions): Promise<ReviewSession | undefined> {\n const checkout = await readCheckout(options.projectDir);\n const transportFor = options.transport ?? ((host: string) => ghTransport({ host }));\n const found = await findPullRequest(checkout, transportFor);\n if (found === undefined) return undefined;\n const contentPrefix = options.contentPrefix ?? contentPrefixOf(checkout.root, options.projectDir);\n return createSession({\n root: checkout.root,\n contentPrefix,\n pullRequest: found,\n transport: transportFor(found.repository.host),\n mutationInterval: options.mutationInterval ?? 1000,\n });\n}\n\n/** The content root's path in the repository, from the project's `ascribe.toml`. */\nexport function contentPrefixOf(root: string, projectDir: string): string {\n const configPath = path.join(projectDir, \"ascribe.toml\");\n let contentRoot = \"docs\";\n try {\n const table = parse(readFileSync(configPath, \"utf8\"));\n const project = table[\"project\"];\n if (typeof project === \"object\" && project !== null && !Array.isArray(project)) {\n const value = (project as Record<string, unknown>)[\"content-root\"];\n if (typeof value === \"string\") contentRoot = value;\n }\n } catch (error) {\n throw new ReviewError(\"not-found\", `Couldn't read ${configPath}.`, { cause: error });\n }\n const real = (p: string) => {\n try {\n return realpathSync.native(p);\n } catch {\n return path.resolve(p);\n }\n };\n const relative = path.relative(real(root), real(path.resolve(projectDir, contentRoot)));\n if (relative === \"\") return \"\";\n return `${relative.split(path.sep).join(\"/\")}/`;\n}\n\ninterface FoundPullRequest {\n id: string;\n number: number;\n url: string;\n baseRefName: string;\n baseRefOid: string;\n headRefName: string;\n headRefOid: string;\n headRepositoryOwner: { login: string } | null;\n headRepository: { name: string } | null;\n}\n\n/**\n * The open pull request whose head is the checkout's branch, looked for in an\n * `upstream` remote's repository and then in the one the branch is pushed to.\n */\nexport async function findPullRequest(\n checkout: CheckoutInfo,\n transportFor: (host: string) => GitHubTransport,\n): Promise<PullRequestInfo | undefined> {\n const head = checkout.head;\n if (checkout.headRef === undefined || head === undefined) return undefined;\n for (const base of checkout.bases) {\n const data: {\n repository: { pullRequests: { nodes: (FoundPullRequest | null)[] } } | null;\n } = await transportFor(base.host).graphql(FIND_PULL_REQUEST, {\n owner: base.owner,\n name: base.name,\n head: checkout.headRef,\n });\n const match = data.repository?.pullRequests.nodes.find(\n (node) =>\n node !== null &&\n node.headRepositoryOwner?.login.toLowerCase() === head.owner.toLowerCase() &&\n node.headRepository?.name.toLowerCase() === head.name.toLowerCase(),\n );\n if (match === undefined || match === null) continue;\n return {\n id: match.id,\n number: match.number,\n url: match.url,\n repository: base,\n baseRefName: match.baseRefName,\n baseOid: match.baseRefOid,\n headRefName: match.headRefName,\n headOid: match.headRefOid,\n local: await localState(checkout.root, checkout.headOid, match.headRefOid),\n };\n }\n return undefined;\n}\n\nasync function localState(root: string, local: string, head: string): Promise<LocalState> {\n if (local === head) return \"same\";\n if ((await gitMaybe(root, [\"cat-file\", \"-e\", `${head}^{commit}`])) === undefined) {\n return \"missing\";\n }\n if ((await gitMaybe(root, [\"merge-base\", \"--is-ancestor\", local, head])) !== undefined) {\n return \"behind\";\n }\n if ((await gitMaybe(root, [\"merge-base\", \"--is-ancestor\", head, local])) !== undefined) {\n return \"ahead\";\n }\n return \"diverged\";\n}\n\n/** What a session needs, for hosts and tests that find the pull request themselves. */\nexport interface SessionOptions {\n root: string;\n contentPrefix: string;\n pullRequest: PullRequestInfo;\n transport: GitHubTransport;\n mutationInterval: number;\n /**\n * How long to wait before reading again when GitHub fails a read with its\n * generic error, in milliseconds. Default 2000.\n */\n retryDelay?: number;\n}\n\ninterface State {\n raw: RawThread[];\n reviews: RawReview[];\n threads: Thread[];\n /** The threads located in the working tree, as its files were at `stamp`. */\n located: Promise<LocatedThread[]>;\n stamp: string;\n pendingReview: RawReview | undefined;\n}\n\n// GitHub's generic failure, which it gives for a moment after some changes\n// (deleting a pending review): worth one more try.\nconst TRANSIENT = /something went wrong/i;\n\n/** The most of a block's shown text a held comment quotes: a review's body can't be longer than 65,536 characters. */\nconst QUOTE_LIMIT = 2000;\n\n// GitHub's errors when a line can't take a review comment.\nconst CANT_ANCHOR =\n /could not be resolved|must be part of the diff|is not part of the diff|line.*outside/i;\n\n/**\n * When each file the threads are on last changed in the working tree, as one\n * string: a different one means the threads need locating again.\n */\nfunction worktreeStamp(root: string, threads: readonly Thread[]): string {\n const files = [...new Set(threads.map((thread) => thread.repositoryPath))].sort();\n return files\n .map((file) => {\n try {\n const stat = statSync(path.join(root, ...file.split(\"/\")));\n return `${file}\\0${stat.mtimeMs}\\0${stat.size}`;\n } catch {\n return `${file}\\0-`;\n }\n })\n .join(\"\\n\");\n}\n\n/** A session for a pull request already found. */\nexport function createSession(options: SessionOptions): ReviewSession {\n const { root, contentPrefix, pullRequest, transport } = options;\n const key: PullRequestKey = {\n owner: pullRequest.repository.owner,\n name: pullRequest.repository.name,\n number: pullRequest.number,\n };\n let state: Promise<State> | undefined;\n let files: Promise<Set<string>> | undefined;\n // The pending review this session made or wrote to, until a read shows it.\n let known: { id: string; body: string } | undefined;\n let viewer: Promise<string> | undefined;\n let lastMutation = 0;\n let queue: Promise<unknown> = Promise.resolve();\n // The pending review just discarded. For a moment after, GitHub can still\n // list it and its comments; reads leave them out until one doesn't.\n let discarded: string | undefined;\n const retryDelay = options.retryDelay ?? 2000;\n\n /** A read, tried once more after a wait when GitHub fails it with its generic error. */\n const read = async <T>(run: () => Promise<T>): Promise<T> => {\n try {\n return await run();\n } catch (error) {\n if (!(\n error instanceof ReviewError &&\n error.code === \"refused\" &&\n TRANSIENT.test(error.message)\n )) {\n throw error;\n }\n await new Promise((resolve) => setTimeout(resolve, retryDelay));\n return run();\n }\n };\n\n const load = (): Promise<State> => {\n state ??= (async () => {\n let [raw, conversation, reviews] = await Promise.all([\n read(() => readReviewThreads(transport, key)),\n read(() => readConversation(transport, key)),\n read(() => readReviews(transport, key)),\n ]);\n if (discarded !== undefined) {\n const gone = discarded;\n const stale =\n reviews.some((review) => review.id === gone) ||\n raw.some((thread) => thread.comments.nodes.some((c) => c?.state === \"PENDING\"));\n if (stale) {\n // The viewer has one pending review at most, so every pending\n // comment was in the one discarded.\n reviews = reviews.filter((review) => review.id !== gone);\n raw = raw\n .map((thread) => ({\n ...thread,\n comments: {\n ...thread.comments,\n nodes: thread.comments.nodes.filter((c) => c !== null && c.state !== \"PENDING\"),\n },\n }))\n .filter((thread) => thread.comments.nodes.length > 0);\n } else {\n discarded = undefined;\n }\n }\n const pendingReview = reviews.find(\n (review) => review.state === \"PENDING\" && review.viewerDidAuthor,\n );\n const threads: Thread[] = raw.map(toThread);\n for (const comment of conversation) {\n threads.push(...markedThreads(comment, contentPrefix, false));\n }\n for (const review of reviews) {\n threads.push(...markedThreads(review, contentPrefix, review.state === \"PENDING\"));\n }\n const stamp = worktreeStamp(root, threads);\n const first = locate(threads);\n await first;\n return { raw, reviews, threads, located: first, stamp, pendingReview };\n })();\n state.catch(() => {\n state = undefined;\n });\n return state;\n };\n\n const locate = (threads: readonly Thread[]): Promise<LocatedThread[]> =>\n locateThreads(threads, { root, contentPrefix, headOid: pullRequest.headOid });\n\n // The threads located in the working tree: again once one of their files\n // changed (saved), so they follow edits without reading GitHub again.\n const located = async (): Promise<LocatedThread[]> => {\n const current = await load();\n const stamp = worktreeStamp(root, current.threads);\n if (stamp !== current.stamp) {\n current.stamp = stamp;\n current.located = locate(current.threads);\n }\n return current.located;\n };\n\n // One change at a time, spaced out to stay under the secondary rate limit.\n const mutate = <T>(query: string, variables: Record<string, unknown>): Promise<T> => {\n const run = queue.then(async () => {\n const wait = lastMutation + options.mutationInterval - Date.now();\n if (wait > 0) await new Promise((resolve) => setTimeout(resolve, wait));\n lastMutation = Date.now();\n try {\n return await transport.graphql<T>(query, variables);\n } finally {\n lastMutation = Date.now();\n }\n });\n queue = run.catch(() => undefined);\n return run;\n };\n\n const changed = () => {\n state = undefined;\n };\n\n // After a change to one review thread, the cached threads take GitHub's\n // answer instead of reading every comment again. When a read started\n // since `before`, or the thread isn't in it, the next call reads again.\n const patch = async (\n before: Promise<State> | undefined,\n threadId: string,\n update: (raw: RawThread | undefined) => RawThread | undefined,\n ): Promise<void> => {\n if (before === undefined || state !== before) return changed();\n const current = await before;\n const index = current.raw.findIndex((thread) => thread.id === threadId);\n const raw = update(current.raw[index]);\n if (raw === undefined || state !== before) return changed();\n const thread = toThread(raw);\n if (index === -1) {\n current.raw.push(raw);\n current.threads.push(thread);\n } else {\n current.raw[index] = raw;\n const at = current.threads.findIndex((t) => t.id === threadId);\n if (at === -1) return changed();\n current.threads[at] = thread;\n }\n current.stamp = worktreeStamp(root, current.threads);\n current.located = locate(current.threads);\n current.located.catch(() => {\n if (state === before) state = undefined;\n });\n };\n\n const ensureReview = async (): Promise<{ id: string; body: string }> => {\n const pendingReview = (await load()).pendingReview;\n if (pendingReview !== undefined) return pendingReview;\n if (known !== undefined) return known;\n const data = await mutate<{ addPullRequestReview: { pullRequestReview: { id: string } } }>(\n ADD_REVIEW,\n { pullRequestId: pullRequest.id, commit: pullRequest.headOid, body: PLACEHOLDER },\n );\n changed();\n // A new pending review: the discarded one is gone from GitHub by now.\n discarded = undefined;\n known = { id: data.addPullRequestReview.pullRequestReview.id, body: PLACEHOLDER };\n return known;\n };\n\n const findThread = async (threadId: string): Promise<LocatedThread | undefined> =>\n (await located()).find((thread) => thread.id === threadId);\n\n const requireReviewThread = async (threadId: string): Promise<void> => {\n const state = await load();\n if (state.raw.some((thread) => thread.id === threadId)) return;\n const thread = await findThread(threadId);\n throw thread?.kind === \"conversation\"\n ? new ReviewError(\n \"refused\",\n \"This is a comment on the pull request's conversation; GitHub can't reply to or resolve it as a thread.\",\n )\n : new ReviewError(\"not-found\", \"That thread isn't in the pull request.\");\n };\n\n // A block's lines at the head commit: every one of them has to be there, unchanged.\n const atHead = async (anchor: Anchor) => {\n const range = parseSource(anchor.source);\n if (range === undefined) {\n throw new ReviewError(\"not-found\", `${anchor.source} isn't a block's source.`);\n }\n const repositoryPath = `${contentPrefix}${range.path}`;\n const map = await lineMap(root, pullRequest.headOid, repositoryPath, \"to-commit\");\n const lines: number[] = [];\n for (let line = range.first; line <= range.last; line++) {\n const mapped = map.map(line);\n if (mapped !== undefined && !mapped.replaced) lines.push(mapped.line);\n }\n const first = lines[0];\n const last = lines.at(-1);\n if (\n first === undefined ||\n last === undefined ||\n lines.length !== range.last - range.first + 1\n ) {\n throw new ReviewError(\n \"push-first\",\n pullRequest.local === \"missing\"\n ? \"The pull request's latest commit isn't in this checkout. Fetch it, then comment.\"\n : \"This block has changes that aren't in the pull request. Push them, then comment.\",\n );\n }\n return { range, repositoryPath, first, last };\n };\n\n const changedFiles = (): Promise<Set<string>> => {\n files ??= readFiles(transport, key);\n files.catch(() => {\n files = undefined;\n });\n return files;\n };\n\n // The lines of each file GitHub shows in the pull request's diff, and so\n // takes comments on: its changes and three lines around them.\n const shown = new Map<string, Promise<Hunk[] | undefined>>();\n const shownLines = (repositoryPath: string): Promise<Hunk[] | undefined> => {\n let hunks = shown.get(repositoryPath);\n if (hunks === undefined) {\n hunks = gitMaybe(root, [\n \"diff\",\n \"--no-color\",\n \"--no-ext-diff\",\n \"--no-renames\",\n \"--unified=3\",\n `${pullRequest.baseOid}...${pullRequest.headOid}`,\n \"--\",\n `:(literal)${repositoryPath}`,\n ]).then((diff) => (diff === undefined ? undefined : parseHunks(diff)));\n shown.set(repositoryPath, hunks);\n }\n return hunks;\n };\n\n return {\n pullRequest,\n\n async threads(page) {\n return placeOnPage(page, await located());\n },\n\n async allThreads() {\n return located();\n },\n\n async viewer() {\n viewer ??= transport\n .graphql<{ viewer: { login: string } }>(VIEWER, {})\n .then((data) => data.viewer.login);\n viewer.catch(() => {\n viewer = undefined;\n });\n return viewer;\n },\n\n async commentTarget(anchor) {\n let lines: Awaited<ReturnType<typeof atHead>>;\n try {\n lines = await atHead(anchor);\n } catch (error) {\n if (error instanceof ReviewError && error.code === \"push-first\") {\n return { kind: \"push-first\", message: error.message };\n }\n throw error;\n }\n if (!(await changedFiles()).has(lines.repositoryPath)) {\n return { kind: \"summary\", reason: \"file\" };\n }\n const hunks = await shownLines(lines.repositoryPath);\n // Without the base commit there's no telling: try, and hold it if GitHub refuses.\n if (hunks === undefined) return { kind: \"thread\" };\n const inOne = hunks.some(\n (hunk) => lines.first >= hunk.newStart && lines.last < hunk.newStart + hunk.newCount,\n );\n return inOne ? { kind: \"thread\" } : { kind: \"summary\", reason: \"lines\" };\n },\n\n async comment(anchor, body, page, shown) {\n const { range, repositoryPath, first, last } = await atHead(anchor);\n if ((await changedFiles()).has(repositoryPath)) {\n const review = await ensureReview();\n const before = state;\n try {\n const data = await mutate<{ addPullRequestReviewThread: { thread: RawThread | null } }>(\n ADD_THREAD,\n {\n reviewId: review.id,\n path: repositoryPath,\n body,\n line: last,\n startLine: first === last ? null : first,\n },\n );\n // GitHub answers a line away from the diff's changes with no thread\n // and no error: it can't anchor the comment there.\n const thread = data.addPullRequestReviewThread.thread;\n if (thread !== null) {\n try {\n await readRestOfComments(transport, thread);\n } catch (error) {\n // The thread is on GitHub: read it with the rest next time.\n changed();\n throw error;\n }\n // The pending review the cache read is the one the thread is in.\n const cached = before && (await before).pendingReview?.id === review.id;\n await patch(cached ? before : undefined, thread.id, (raw) =>\n raw === undefined ? thread : undefined,\n );\n return toThread(thread);\n }\n changed();\n } catch (error) {\n if (!(\n error instanceof ReviewError &&\n error.code === \"refused\" &&\n CANT_ANCHOR.test(error.message)\n )) {\n throw error;\n }\n }\n }\n // GitHub can't anchor it: hold it in the pending review's body, which\n // goes on the conversation when the review is submitted.\n const review = await ensureReview();\n const text = shown?.trim();\n const quote =\n text === undefined || text === \"\"\n ? readFileSync(path.join(root, ...repositoryPath.split(\"/\")), \"utf8\")\n .split(/\\r?\\n/)\n .slice(range.first - 1, range.last)\n .join(\"\\n\")\n : text.length > QUOTE_LIMIT\n ? `${text.slice(0, QUOTE_LIMIT).trimEnd()}…`\n : text;\n const source = formatSource(range);\n const section = formatSection({\n source,\n build: page.build,\n body,\n quote,\n shown: text !== undefined && text !== \"\",\n link: {\n label: `${range.path}, line${range.first === range.last ? ` ${range.first}` : `s ${range.first}–${range.last}`}`,\n url: blobUrl(pullRequest, repositoryPath, first, last),\n },\n });\n const held = joinSections([withoutPlaceholder(review.body), section], undefined);\n try {\n await mutate(UPDATE_REVIEW, { reviewId: review.id, body: held });\n } catch (error) {\n if (error instanceof ReviewError && /missing body/i.test(error.message)) {\n throw new ReviewError(\n \"cant-hold\",\n \"You have unsent comments started on GitHub, and GitHub can't add this comment to them. Submit or discard them on GitHub, then comment again.\",\n { cause: error },\n );\n }\n throw error;\n }\n changed();\n known = { id: review.id, body: held };\n const [thread] = markedThreads(\n {\n id: review.id,\n body: section,\n createdAt: new Date().toISOString(),\n url: pullRequest.url,\n author: null,\n },\n contentPrefix,\n true,\n );\n if (thread === undefined) throw new ReviewError(\"refused\", \"Couldn't write the comment.\");\n return thread;\n },\n\n async reply(threadId, body, when) {\n await requireReviewThread(threadId);\n const reviewId = when === \"withReview\" ? (await ensureReview()).id : undefined;\n const before = state;\n const data = await mutate<{\n addPullRequestReviewThreadReply: { comment: Parameters<typeof toComment>[0] | null };\n }>(ADD_REPLY, { threadId, body, reviewId: reviewId ?? null });\n const raw = data.addPullRequestReviewThreadReply.comment;\n if (raw === null) {\n changed();\n throw new ReviewError(\"refused\", \"GitHub didn't add the reply.\");\n }\n if (when === \"now\" && raw.state === \"PENDING\") {\n // GitHub put the reply in the viewer's pending review instead of\n // sending it. Take it back out, so nothing changes without asking.\n changed();\n await mutate(DELETE_COMMENT, { id: raw.id });\n throw new ReviewError(\n \"reply-held\",\n \"GitHub adds replies to your unsent review while you have one. Add the reply to the review, or submit or discard the review first.\",\n );\n }\n // A pending reply counts only once the cache has the review it's in.\n const cached =\n raw.state !== \"PENDING\" || (before && (await before).pendingReview?.id === reviewId);\n await patch(cached ? before : undefined, threadId, (thread) =>\n thread === undefined\n ? undefined\n : { ...thread, comments: { ...thread.comments, nodes: [...thread.comments.nodes, raw] } },\n );\n return toComment(raw);\n },\n\n async resolve(threadId, resolved) {\n await requireReviewThread(threadId);\n const before = state;\n const data = await mutate<Record<string, { thread: Partial<RawThread> | null } | undefined>>(\n resolved ? RESOLVE : UNRESOLVE,\n { threadId },\n );\n const answer = data[resolved ? \"resolveReviewThread\" : \"unresolveReviewThread\"]?.thread;\n await patch(answer ? before : undefined, threadId, (thread) =>\n thread === undefined || answer == null\n ? undefined\n : {\n ...thread,\n isResolved: answer.isResolved ?? resolved,\n viewerCanResolve: answer.viewerCanResolve ?? !resolved,\n viewerCanUnresolve: answer.viewerCanUnresolve ?? resolved,\n },\n );\n },\n\n async pending() {\n const state = await load();\n if (state.pendingReview === undefined) {\n return { id: undefined, threads: [], replies: [], conversation: [], count: 0 };\n }\n const threads: Thread[] = [];\n const replies: PendingReview[\"replies\"] = [];\n for (const raw of state.raw) {\n const thread = toThread(raw);\n if (thread.comments.length > 0 && thread.comments.every((c) => c.pending)) {\n threads.push(thread);\n } else {\n for (const comment of thread.comments) {\n if (comment.pending) replies.push({ threadId: thread.id, comment });\n }\n }\n }\n const conversation = markedThreads(state.pendingReview, contentPrefix, true);\n return {\n id: state.pendingReview.id,\n threads,\n replies,\n conversation,\n count:\n threads.reduce((sum, thread) => sum + thread.comments.length, 0) +\n replies.length +\n conversation.length,\n };\n },\n\n async submit(event, body) {\n const review = await ensureReview();\n await mutate(SUBMIT_REVIEW, {\n reviewId: review.id,\n event,\n body: joinSections([withoutPlaceholder(review.body)], body) || null,\n });\n changed();\n known = undefined;\n },\n\n async discard() {\n const pendingReview = (await load()).pendingReview ?? known;\n if (pendingReview === undefined) return;\n await mutate(DELETE_REVIEW, { reviewId: pendingReview.id });\n changed();\n known = undefined;\n discarded = pendingReview.id;\n },\n\n async refresh() {\n state = undefined;\n files = undefined;\n shown.clear();\n },\n };\n}\n\n/** A link to lines of a file at the pull request's head commit. */\nfunction blobUrl(pr: PullRequestInfo, file: string, first: number, last: number): string {\n const { host, owner, name } = pr.repository;\n const encoded = file.split(\"/\").map(encodeURIComponent).join(\"/\");\n const lines = first === last ? `L${first}` : `L${first}-L${last}`;\n return `https://${host}/${owner}/${name}/blob/${pr.headOid}/${encoded}#${lines}`;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/github/transport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/github/transport.ts"],"names":[],"mappings":"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","sourcesContent":["// How requests reach GitHub's GraphQL API: through the GitHub CLI, or with a\n// token the host supplies. Neither stores a token or puts one in an error.\nimport { spawn } from \"node:child_process\";\nimport { ReviewError, scrub } from \"../shared/errors.js\";\n\n/** Sends one GraphQL request and resolves with its `data`. */\nexport interface GitHubTransport {\n graphql<T>(query: string, variables: Record<string, unknown>): Promise<T>;\n}\n\n/** The oldest `gh` this package runs. */\nexport const MIN_GH_VERSION = \"2.0.0\";\n\n/** Options for `ghTransport`. */\nexport interface GhTransportOptions {\n /** The GitHub host: `github.com`, or a GitHub Enterprise Server host. */\n host?: string;\n /** The command to run. Defaults to `gh`, found on the path. */\n command?: string;\n}\n\n/**\n * A transport that runs `gh api graphql` with a fixed argument list: the\n * query on standard input, each variable as an argument. `gh` uses its own\n * sign-in for the host.\n */\nexport function ghTransport(options: GhTransportOptions = {}): GitHubTransport {\n const host = options.host ?? \"github.com\";\n const command = options.command ?? \"gh\";\n let checked: Promise<void> | undefined;\n return {\n async graphql<T>(query: string, variables: Record<string, unknown>): Promise<T> {\n checked ??= checkGh(command);\n try {\n await checked;\n } catch (error) {\n checked = undefined;\n throw error;\n }\n const args = [\"api\", \"graphql\", \"--hostname\", host, \"-F\", \"query=@-\"];\n for (const [name, value] of Object.entries(variables)) {\n if (value === undefined) continue;\n if (typeof value === \"string\") args.push(\"-f\", `${name}=${value}`);\n else if (typeof value === \"number\" || typeof value === \"boolean\" || value === null) {\n args.push(\"-F\", `${name}=${String(value)}`);\n } else {\n throw new TypeError(`ghTransport can't pass the variable ${name}: ${typeof value}`);\n }\n }\n const result = await run(command, args, query);\n const body = parseBody(result.stdout);\n if (result.code === 0 && body !== undefined && body.errors === undefined) {\n return body.data as T;\n }\n throw ghError(result, body, host);\n },\n };\n}\n\nasync function checkGh(command: string): Promise<void> {\n const result = await run(command, [\"--version\"], \"\");\n const version = /gh version (\\d+)\\.(\\d+)\\.(\\d+)/.exec(result.stdout);\n if (result.code !== 0 || version === null) {\n throw new ReviewError(\"gh-too-old\", \"Couldn't read the GitHub CLI's version (`gh --version`).\");\n }\n const found = version.slice(1, 4).map(Number);\n const min = MIN_GH_VERSION.split(\".\").map(Number);\n for (let i = 0; i < 3; i++) {\n const a = found[i] ?? 0;\n const b = min[i] ?? 0;\n if (a > b) return;\n if (a < b) {\n throw new ReviewError(\n \"gh-too-old\",\n `The GitHub CLI is version ${found.join(\".\")}; review needs ${MIN_GH_VERSION} or later. Update it from https://cli.github.com.`,\n );\n }\n }\n}\n\ninterface RunResult {\n code: number;\n stdout: string;\n stderr: string;\n}\n\nfunction run(command: string, args: string[], input: string): Promise<RunResult> {\n return new Promise((resolve, reject) => {\n const child = spawn(command, args, {\n stdio: [\"pipe\", \"pipe\", \"pipe\"],\n env: { ...process.env, GH_PROMPT_DISABLED: \"1\", GH_NO_UPDATE_NOTIFIER: \"1\", NO_COLOR: \"1\" },\n windowsHide: true,\n });\n const stdout: Buffer[] = [];\n const stderr: Buffer[] = [];\n child.stdout.on(\"data\", (chunk: Buffer) => stdout.push(chunk));\n child.stderr.on(\"data\", (chunk: Buffer) => stderr.push(chunk));\n child.on(\"error\", (error: NodeJS.ErrnoException) => {\n if (error.code === \"ENOENT\") {\n reject(\n new ReviewError(\n \"gh-missing\",\n \"The GitHub CLI (`gh`) isn't on the path. Install it from https://cli.github.com and run `gh auth login`.\",\n { cause: error },\n ),\n );\n } else {\n reject(\n new ReviewError(\"network\", `Couldn't run \\`gh\\`: ${error.message}`, { cause: error }),\n );\n }\n });\n child.on(\"close\", (code) => {\n resolve({\n code: code ?? 1,\n stdout: Buffer.concat(stdout).toString(\"utf8\"),\n stderr: Buffer.concat(stderr).toString(\"utf8\"),\n });\n });\n // gh may exit before reading its input; the exit code says what happened.\n child.stdin.on(\"error\", () => undefined);\n child.stdin.end(input);\n });\n}\n\ninterface GraphQLError {\n type?: string;\n message?: string;\n}\n\ninterface GraphQLBody {\n data?: unknown;\n errors?: GraphQLError[];\n message?: string;\n}\n\nfunction parseBody(text: string): GraphQLBody | undefined {\n try {\n const value: unknown = JSON.parse(text);\n return typeof value === \"object\" && value !== null ? (value as GraphQLBody) : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction ghError(result: RunResult, body: GraphQLBody | undefined, host: string): ReviewError {\n const stderr = result.stderr.replace(/^gh: /gm, \"\").trim();\n // gh exits with 4 when a command needs authentication it doesn't have.\n if (\n result.code === 4 ||\n /gh auth login|not logged in|HTTP 401|Bad credentials/i.test(result.stderr)\n ) {\n return new ReviewError(\n \"not-signed-in\",\n `The GitHub CLI isn't signed in to ${host}. Run \\`gh auth login --hostname ${host}\\`.`,\n );\n }\n if (body?.errors !== undefined) return graphqlError(body.errors);\n if (/rate limit/i.test(stderr)) return rateLimited(undefined, stderr);\n return new ReviewError(\n \"refused\",\n `GitHub refused the request: ${stderr || body?.message || `gh exited with ${result.code}`}`,\n );\n}\n\nfunction graphqlError(errors: GraphQLError[]): ReviewError {\n const message = errors.map((error) => error.message ?? \"unknown error\").join(\"; \");\n if (errors.some((error) => error.type === \"RATE_LIMITED\")) return rateLimited(undefined, message);\n if (errors.every((error) => error.type === \"NOT_FOUND\")) {\n return new ReviewError(\"not-found\", `GitHub couldn't find it: ${message}`);\n }\n return new ReviewError(\"refused\", `GitHub refused the request: ${message}`);\n}\n\nfunction rateLimited(retryAfter: number | undefined, detail: string): ReviewError {\n const wait =\n retryAfter === undefined\n ? \"Wait a minute\"\n : `Wait ${retryAfter} second${retryAfter === 1 ? \"\" : \"s\"}`;\n return new ReviewError(\n \"rate-limited\",\n `GitHub is limiting how fast requests can be made. ${wait} and try again. (${detail})`,\n retryAfter === undefined ? {} : { retryAfter },\n );\n}\n\n/** Options for `tokenTransport`. */\nexport interface TokenTransportOptions {\n /** The GitHub host: `github.com`, or a GitHub Enterprise Server host. */\n host?: string;\n /** The `fetch` to use. Defaults to the global one. */\n fetch?: typeof fetch;\n}\n\n/**\n * A transport that posts to the GraphQL API with `fetch`, using a token from\n * `getToken`, which is called for each request so the host can refresh it.\n */\nexport function tokenTransport(\n getToken: () => Promise<string | undefined> | string | undefined,\n options: TokenTransportOptions = {},\n): GitHubTransport {\n const host = options.host ?? \"github.com\";\n const url = graphqlUrl(host);\n return {\n async graphql<T>(query: string, variables: Record<string, unknown>): Promise<T> {\n const doFetch = options.fetch ?? globalThis.fetch;\n const token = await getToken();\n if (token === undefined || token === \"\") {\n throw new ReviewError(\"not-signed-in\", `There's no GitHub sign-in for ${host}.`);\n }\n let response: Response;\n try {\n response = await doFetch(url, {\n method: \"POST\",\n headers: {\n authorization: `bearer ${token}`,\n \"content-type\": \"application/json\",\n accept: \"application/json\",\n \"user-agent\": \"ascribe-review\",\n },\n body: JSON.stringify({ query, variables }),\n });\n } catch (error) {\n const detail = error instanceof Error ? error.message : String(error);\n throw new ReviewError(\"network\", `Couldn't reach ${host}: ${detail}`, { cause: error });\n }\n const text = await response.text();\n const body = parseBody(text);\n if (response.status === 401) {\n throw new ReviewError(\"not-signed-in\", `${host} didn't accept the GitHub sign-in.`);\n }\n if (response.status === 403 || response.status === 429) {\n const retryAfter = retryAfterOf(response.headers);\n if (\n response.status === 429 ||\n retryAfter !== undefined ||\n /rate limit/i.test(body?.message ?? text)\n ) {\n throw rateLimited(retryAfter, scrub(body?.message ?? `HTTP ${response.status}`));\n }\n }\n if (!response.ok) {\n throw new ReviewError(\n \"refused\",\n `GitHub refused the request (HTTP ${response.status}): ${scrub(body?.message ?? text.slice(0, 200))}`,\n );\n }\n if (body === undefined) {\n throw new ReviewError(\"network\", `${host} answered with something that isn't JSON.`);\n }\n if (body.errors !== undefined && body.errors.length > 0) throw graphqlError(body.errors);\n return body.data as T;\n },\n };\n}\n\n/** The GraphQL endpoint for a host. */\nexport function graphqlUrl(host: string): string {\n return host === \"github.com\" ? \"https://api.github.com/graphql\" : `https://${host}/api/graphql`;\n}\n\nfunction retryAfterOf(headers: Headers): number | undefined {\n const after = headers.get(\"retry-after\");\n if (after !== null && /^\\d+$/.test(after)) return Number(after);\n if (headers.get(\"x-ratelimit-remaining\") === \"0\") {\n const reset = Number(headers.get(\"x-ratelimit-reset\"));\n if (Number.isFinite(reset) && reset > 0) {\n return Math.max(0, Math.ceil(reset - Date.now() / 1000));\n }\n }\n return undefined;\n}\n"]}
|