@hcrosse/opencode-pr-tracker 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/dist/server.js +8 -4
- package/dist/server.js.map +3 -3
- package/dist/tui.js +177 -33
- package/dist/tui.js.map +4 -4
- package/package.json +1 -1
package/dist/tui.js.map
CHANGED
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
"'use strict';\n\nconst path = require('path');\nconst fs = require('graceful-fs');\nconst retry = require('retry');\nconst onExit = require('signal-exit');\nconst mtimePrecision = require('./mtime-precision');\n\nconst locks = {};\n\nfunction getLockFile(file, options) {\n return options.lockfilePath || `${file}.lock`;\n}\n\nfunction resolveCanonicalPath(file, options, callback) {\n if (!options.realpath) {\n return callback(null, path.resolve(file));\n }\n\n // Use realpath to resolve symlinks\n // It also resolves relative paths\n options.fs.realpath(file, callback);\n}\n\nfunction acquireLock(file, options, callback) {\n const lockfilePath = getLockFile(file, options);\n\n // Use mkdir to create the lockfile (atomic operation)\n options.fs.mkdir(lockfilePath, (err) => {\n if (!err) {\n // At this point, we acquired the lock!\n // Probe the mtime precision\n return mtimePrecision.probe(lockfilePath, options.fs, (err, mtime, mtimePrecision) => {\n // If it failed, try to remove the lock..\n /* istanbul ignore if */\n if (err) {\n options.fs.rmdir(lockfilePath, () => {});\n\n return callback(err);\n }\n\n callback(null, mtime, mtimePrecision);\n });\n }\n\n // If error is not EEXIST then some other error occurred while locking\n if (err.code !== 'EEXIST') {\n return callback(err);\n }\n\n // Otherwise, check if lock is stale by analyzing the file mtime\n if (options.stale <= 0) {\n return callback(Object.assign(new Error('Lock file is already being held'), { code: 'ELOCKED', file }));\n }\n\n options.fs.stat(lockfilePath, (err, stat) => {\n if (err) {\n // Retry if the lockfile has been removed (meanwhile)\n // Skip stale check to avoid recursiveness\n if (err.code === 'ENOENT') {\n return acquireLock(file, { ...options, stale: 0 }, callback);\n }\n\n return callback(err);\n }\n\n if (!isLockStale(stat, options)) {\n return callback(Object.assign(new Error('Lock file is already being held'), { code: 'ELOCKED', file }));\n }\n\n // If it's stale, remove it and try again!\n // Skip stale check to avoid recursiveness\n removeLock(file, options, (err) => {\n if (err) {\n return callback(err);\n }\n\n acquireLock(file, { ...options, stale: 0 }, callback);\n });\n });\n });\n}\n\nfunction isLockStale(stat, options) {\n return stat.mtime.getTime() < Date.now() - options.stale;\n}\n\nfunction removeLock(file, options, callback) {\n // Remove lockfile, ignoring ENOENT errors\n options.fs.rmdir(getLockFile(file, options), (err) => {\n if (err && err.code !== 'ENOENT') {\n return callback(err);\n }\n\n callback();\n });\n}\n\nfunction updateLock(file, options) {\n const lock = locks[file];\n\n // Just for safety, should never happen\n /* istanbul ignore if */\n if (lock.updateTimeout) {\n return;\n }\n\n lock.updateDelay = lock.updateDelay || options.update;\n lock.updateTimeout = setTimeout(() => {\n lock.updateTimeout = null;\n\n // Stat the file to check if mtime is still ours\n // If it is, we can still recover from a system sleep or a busy event loop\n options.fs.stat(lock.lockfilePath, (err, stat) => {\n const isOverThreshold = lock.lastUpdate + options.stale < Date.now();\n\n // If it failed to update the lockfile, keep trying unless\n // the lockfile was deleted or we are over the threshold\n if (err) {\n if (err.code === 'ENOENT' || isOverThreshold) {\n return setLockAsCompromised(file, lock, Object.assign(err, { code: 'ECOMPROMISED' }));\n }\n\n lock.updateDelay = 1000;\n\n return updateLock(file, options);\n }\n\n const isMtimeOurs = lock.mtime.getTime() === stat.mtime.getTime();\n\n if (!isMtimeOurs) {\n return setLockAsCompromised(\n file,\n lock,\n Object.assign(\n new Error('Unable to update lock within the stale threshold'),\n { code: 'ECOMPROMISED' }\n ));\n }\n\n const mtime = mtimePrecision.getMtime(lock.mtimePrecision);\n\n options.fs.utimes(lock.lockfilePath, mtime, mtime, (err) => {\n const isOverThreshold = lock.lastUpdate + options.stale < Date.now();\n\n // Ignore if the lock was released\n if (lock.released) {\n return;\n }\n\n // If it failed to update the lockfile, keep trying unless\n // the lockfile was deleted or we are over the threshold\n if (err) {\n if (err.code === 'ENOENT' || isOverThreshold) {\n return setLockAsCompromised(file, lock, Object.assign(err, { code: 'ECOMPROMISED' }));\n }\n\n lock.updateDelay = 1000;\n\n return updateLock(file, options);\n }\n\n // All ok, keep updating..\n lock.mtime = mtime;\n lock.lastUpdate = Date.now();\n lock.updateDelay = null;\n updateLock(file, options);\n });\n });\n }, lock.updateDelay);\n\n // Unref the timer so that the nodejs process can exit freely\n // This is safe because all acquired locks will be automatically released\n // on process exit\n\n // We first check that `lock.updateTimeout.unref` exists because some users\n // may be using this module outside of NodeJS (e.g., in an electron app),\n // and in those cases `setTimeout` return an integer.\n /* istanbul ignore else */\n if (lock.updateTimeout.unref) {\n lock.updateTimeout.unref();\n }\n}\n\nfunction setLockAsCompromised(file, lock, err) {\n // Signal the lock has been released\n lock.released = true;\n\n // Cancel lock mtime update\n // Just for safety, at this point updateTimeout should be null\n /* istanbul ignore if */\n if (lock.updateTimeout) {\n clearTimeout(lock.updateTimeout);\n }\n\n if (locks[file] === lock) {\n delete locks[file];\n }\n\n lock.options.onCompromised(err);\n}\n\n// ----------------------------------------------------------\n\nfunction lock(file, options, callback) {\n /* istanbul ignore next */\n options = {\n stale: 10000,\n update: null,\n realpath: true,\n retries: 0,\n fs,\n onCompromised: (err) => { throw err; },\n ...options,\n };\n\n options.retries = options.retries || 0;\n options.retries = typeof options.retries === 'number' ? { retries: options.retries } : options.retries;\n options.stale = Math.max(options.stale || 0, 2000);\n options.update = options.update == null ? options.stale / 2 : options.update || 0;\n options.update = Math.max(Math.min(options.update, options.stale / 2), 1000);\n\n // Resolve to a canonical file path\n resolveCanonicalPath(file, options, (err, file) => {\n if (err) {\n return callback(err);\n }\n\n // Attempt to acquire the lock\n const operation = retry.operation(options.retries);\n\n operation.attempt(() => {\n acquireLock(file, options, (err, mtime, mtimePrecision) => {\n if (operation.retry(err)) {\n return;\n }\n\n if (err) {\n return callback(operation.mainError());\n }\n\n // We now own the lock\n const lock = locks[file] = {\n lockfilePath: getLockFile(file, options),\n mtime,\n mtimePrecision,\n options,\n lastUpdate: Date.now(),\n };\n\n // We must keep the lock fresh to avoid staleness\n updateLock(file, options);\n\n callback(null, (releasedCallback) => {\n if (lock.released) {\n return releasedCallback &&\n releasedCallback(Object.assign(new Error('Lock is already released'), { code: 'ERELEASED' }));\n }\n\n // Not necessary to use realpath twice when unlocking\n unlock(file, { ...options, realpath: false }, releasedCallback);\n });\n });\n });\n });\n}\n\nfunction unlock(file, options, callback) {\n options = {\n fs,\n realpath: true,\n ...options,\n };\n\n // Resolve to a canonical file path\n resolveCanonicalPath(file, options, (err, file) => {\n if (err) {\n return callback(err);\n }\n\n // Skip if the lock is not acquired\n const lock = locks[file];\n\n if (!lock) {\n return callback(Object.assign(new Error('Lock is not acquired/owned by you'), { code: 'ENOTACQUIRED' }));\n }\n\n lock.updateTimeout && clearTimeout(lock.updateTimeout); // Cancel lock mtime update\n lock.released = true; // Signal the lock has been released\n delete locks[file]; // Delete from locks\n\n removeLock(file, options, callback);\n });\n}\n\nfunction check(file, options, callback) {\n options = {\n stale: 10000,\n realpath: true,\n fs,\n ...options,\n };\n\n options.stale = Math.max(options.stale || 0, 2000);\n\n // Resolve to a canonical file path\n resolveCanonicalPath(file, options, (err, file) => {\n if (err) {\n return callback(err);\n }\n\n // Check if lockfile exists\n options.fs.stat(getLockFile(file, options), (err, stat) => {\n if (err) {\n // If does not exist, file is not locked. Otherwise, callback with error\n return err.code === 'ENOENT' ? callback(null, false) : callback(err);\n }\n\n // Otherwise, check if lock is stale by analyzing the file mtime\n return callback(null, !isLockStale(stat, options));\n });\n });\n}\n\nfunction getLocks() {\n return locks;\n}\n\n// Remove acquired locks on exit\n/* istanbul ignore next */\nonExit(() => {\n for (const file in locks) {\n const options = locks[file].options;\n\n try { options.fs.rmdirSync(getLockFile(file, options)); } catch (e) { /* Empty */ }\n }\n});\n\nmodule.exports.lock = lock;\nmodule.exports.unlock = unlock;\nmodule.exports.check = check;\nmodule.exports.getLocks = getLocks;\n",
|
|
15
15
|
"'use strict';\n\nconst fs = require('graceful-fs');\n\nfunction createSyncFs(fs) {\n const methods = ['mkdir', 'realpath', 'stat', 'rmdir', 'utimes'];\n const newFs = { ...fs };\n\n methods.forEach((method) => {\n newFs[method] = (...args) => {\n const callback = args.pop();\n let ret;\n\n try {\n ret = fs[`${method}Sync`](...args);\n } catch (err) {\n return callback(err);\n }\n\n callback(null, ret);\n };\n });\n\n return newFs;\n}\n\n// ----------------------------------------------------------\n\nfunction toPromise(method) {\n return (...args) => new Promise((resolve, reject) => {\n args.push((err, result) => {\n if (err) {\n reject(err);\n } else {\n resolve(result);\n }\n });\n\n method(...args);\n });\n}\n\nfunction toSync(method) {\n return (...args) => {\n let err;\n let result;\n\n args.push((_err, _result) => {\n err = _err;\n result = _result;\n });\n\n method(...args);\n\n if (err) {\n throw err;\n }\n\n return result;\n };\n}\n\nfunction toSyncOptions(options) {\n // Shallow clone options because we are oging to mutate them\n options = { ...options };\n\n // Transform fs to use the sync methods instead\n options.fs = createSyncFs(options.fs || fs);\n\n // Retries are not allowed because it requires the flow to be sync\n if (\n (typeof options.retries === 'number' && options.retries > 0) ||\n (options.retries && typeof options.retries.retries === 'number' && options.retries.retries > 0)\n ) {\n throw Object.assign(new Error('Cannot use retries with the sync api'), { code: 'ESYNC' });\n }\n\n return options;\n}\n\nmodule.exports = {\n toPromise,\n toSync,\n toSyncOptions,\n};\n",
|
|
16
16
|
"'use strict';\n\nconst lockfile = require('./lib/lockfile');\nconst { toPromise, toSync, toSyncOptions } = require('./lib/adapter');\n\nasync function lock(file, options) {\n const release = await toPromise(lockfile.lock)(file, options);\n\n return toPromise(release);\n}\n\nfunction lockSync(file, options) {\n const release = toSync(lockfile.lock)(file, toSyncOptions(options));\n\n return toSync(release);\n}\n\nfunction unlock(file, options) {\n return toPromise(lockfile.unlock)(file, options);\n}\n\nfunction unlockSync(file, options) {\n return toSync(lockfile.unlock)(file, toSyncOptions(options));\n}\n\nfunction check(file, options) {\n return toPromise(lockfile.check)(file, options);\n}\n\nfunction checkSync(file, options) {\n return toSync(lockfile.check)(file, toSyncOptions(options));\n}\n\nmodule.exports = lock;\nmodule.exports.lock = lock;\nmodule.exports.unlock = unlock;\nmodule.exports.lockSync = lockSync;\nmodule.exports.unlockSync = unlockSync;\nmodule.exports.check = check;\nmodule.exports.checkSync = checkSync;\n",
|
|
17
|
-
"import { memo as _$memo } from \"@opentui/solid\";\nimport { createTextNode as _$createTextNode } from \"@opentui/solid\";\nimport { insertNode as _$insertNode } from \"@opentui/solid\";\nimport { setProp as _$setProp } from \"@opentui/solid\";\nimport { effect as _$effect } from \"@opentui/solid\";\nimport { insert as _$insert } from \"@opentui/solid\";\nimport { createElement as _$createElement } from \"@opentui/solid\";\nimport { createComponent as _$createComponent } from \"@opentui/solid\";\n/** @jsxImportSource @opentui/solid */\nimport { TextAttributes } from \"@opentui/core\";\nimport { createSignal, onCleanup } from \"solid-js\";\nimport { resolvePullRequestInput } from \"./attach.js\";\nimport { createGitHubClient, execFileRunner, statusAppearance } from \"./github.js\";\nimport { createStateStore } from \"./state.js\";\nimport { formatPullRequestRef, parsePullRequestUrl } from \"./url.js\";\nconst pollIntervalMilliseconds = 60_000;\nconst defaultScheduler = {\n setInterval: (task, delay) => globalThis.setInterval(task, delay),\n // SAFETY: this scheduler only receives handles returned by setInterval above.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- PollScheduler erases the host-specific handle type\n clearInterval: handle => globalThis.clearInterval(handle)\n};\nexport function attachPullRequest(store, sessionID, input) {\n const pullRequest = parsePullRequestUrl(input);\n if (!pullRequest.ok) return Promise.resolve(pullRequest);\n return store.attach(sessionID, pullRequest.value);\n}\nexport function startSessionPolling(input) {\n const scheduler = input.scheduler ?? defaultScheduler;\n const statuses = new Map();\n const controller = new AbortController();\n let timer;\n let timerRegistered = false;\n let stopped = false;\n let inFlight;\n let refreshQueued = false;\n function project(attachments) {\n return attachments.map(attachment => ({\n attachment,\n status: statuses.get(attachment.pullRequest.url) ?? {\n tag: \"Unavailable\"\n }\n }));\n }\n async function poll() {\n const attachments = await input.store.list(input.sessionID);\n if (stopped) return;\n if (!attachments.ok) {\n input.publish([]);\n input.onStateFailure(attachments.error);\n return;\n }\n const attachedUrls = new Set(attachments.value.map(attachment => attachment.pullRequest.url));\n for (const url of statuses.keys()) {\n if (!attachedUrls.has(url)) statuses.delete(url);\n }\n input.publish(project(attachments.value));\n const refreshable = attachments.value.filter(attachment => {\n const previous = statuses.get(attachment.pullRequest.url);\n return previous?.tag !== \"Available\" || previous.state.tag !== \"Merged\";\n });\n const batch = await input.github.get(refreshable.map(attachment => attachment.pullRequest), {\n signal: controller.signal\n });\n if (stopped) return;\n let batchDiagnostic;\n if (!batch.ok) {\n if (batch.error.tag === \"GitHubCancelled\") return;\n batchDiagnostic = batch.error.tag === \"GitHubBatchLimitExceeded\" ? \"GitHubUnavailable\" : batch.error.tag;\n }\n for (const [index, attachment] of refreshable.entries()) {\n const previous = statuses.get(attachment.pullRequest.url);\n const result = batch.ok ? batch.value[index] : undefined;\n if (result?.ok) {\n statuses.set(attachment.pullRequest.url, result.value);\n continue;\n }\n const diagnostic = result === undefined ? batchDiagnostic ?? \"GitHubUnavailable\" : result.error.tag;\n statuses.set(attachment.pullRequest.url, previous?.tag === \"Available\" ? {\n ...previous,\n stale: true,\n diagnostic\n } : {\n tag: \"Unavailable\",\n diagnostic\n });\n }\n if (!stopped) input.publish(project(attachments.value));\n }\n function refresh() {\n if (stopped) return Promise.resolve();\n if (inFlight) {\n refreshQueued = true;\n return inFlight;\n }\n const wrapped = poll().finally(() => {\n inFlight = undefined;\n if (refreshQueued && !stopped) {\n refreshQueued = false;\n return refresh();\n }\n return undefined;\n });\n inFlight = wrapped;\n return wrapped;\n }\n return {\n start() {\n if (stopped) return Promise.resolve();\n if (!timerRegistered) {\n timer = scheduler.setInterval(() => {\n refresh().catch(input.onError);\n }, pollIntervalMilliseconds);\n timerRegistered = true;\n }\n return refresh();\n },\n refresh,\n stop() {\n if (stopped) return;\n stopped = true;\n controller.abort();\n if (timerRegistered) scheduler.clearInterval(timer);\n }\n };\n}\nexport async function openPullRequest(pullRequest, options = {}) {\n const platform = options.platform ?? process.platform;\n const executable = platform === \"darwin\" ? \"open\" : platform === \"linux\" ? \"xdg-open\" : undefined;\n if (executable === undefined) {\n return {\n ok: false,\n error: {\n tag: \"UnsupportedPlatform\",\n message: `Opening pull requests is unsupported on ${platform}`,\n platform\n }\n };\n }\n try {\n await (options.runner ?? execFileRunner)(executable, [pullRequest.url], options.signal ? {\n signal: options.signal\n } : {});\n return {\n ok: true,\n value: undefined\n };\n } catch (cause) {\n return {\n ok: false,\n error: {\n tag: \"OpenPullRequestFailed\",\n message: \"Unable to open the pull request\",\n cause\n }\n };\n }\n}\nfunction createRefreshBus() {\n const listeners = new Map();\n return {\n emit(sessionID) {\n for (const listener of listeners.get(sessionID) ?? []) listener();\n },\n subscribe(sessionID, listener) {\n const sessionListeners = listeners.get(sessionID) ?? new Set();\n sessionListeners.add(listener);\n listeners.set(sessionID, sessionListeners);\n return () => {\n sessionListeners.delete(listener);\n if (sessionListeners.size === 0) listeners.delete(sessionID);\n };\n }\n };\n}\nfunction currentSessionID(api) {\n const route = api.route.current;\n if (route.name !== \"session\" || !(\"params\" in route)) return undefined;\n return typeof route.params?.sessionID === \"string\" ? route.params.sessionID : undefined;\n}\nfunction promptForPullRequest(api, options) {\n return new Promise(resolve => {\n const controller = new AbortController();\n const signal = AbortSignal.any([options.signal, controller.signal]);\n let finished = false;\n const finish = value => {\n if (finished) return;\n finished = true;\n controller.abort();\n api.ui.dialog.clear();\n resolve(value);\n };\n api.ui.dialog.setSize(\"medium\");\n api.ui.dialog.replace(() => {\n const [error, setError] = createSignal();\n const [busy, setBusy] = createSignal(false);\n const DialogPrompt = api.ui.DialogPrompt;\n return _$createComponent(DialogPrompt, {\n title: \"Attach pull request\",\n placeholder: \"https://github.com/owner/repository/pull/123 or 123\",\n description: () => error() ? (() => {\n var _el$ = _$createElement(\"text\");\n _$insert(_el$, error);\n _$effect(_$p => _$setProp(_el$, \"fg\", api.theme.current.error, _$p));\n return _el$;\n })() : null,\n get busy() {\n return busy();\n },\n busyText: \"Resolving repository\",\n onConfirm: value => {\n if (busy()) return;\n setBusy(true);\n void resolvePullRequestInput(value, {\n directory: options.directory,\n ...(options.runner ? {\n runner: options.runner\n } : {}),\n signal\n }).then(result => {\n if (finished) return;\n setBusy(false);\n if (result.ok) {\n finish(result.value);\n return;\n }\n if (result.error.tag === \"RepositoryResolutionCancelled\") {\n finish(undefined);\n return;\n }\n setError(result.error.message);\n });\n },\n onCancel: () => finish(undefined)\n });\n }, () => {\n if (finished) return;\n finished = true;\n controller.abort();\n resolve(undefined);\n });\n });\n}\nfunction selectPullRequest(api, title, attachments) {\n return new Promise(resolve => {\n let finished = false;\n const finish = value => {\n if (finished) return;\n finished = true;\n api.ui.dialog.clear();\n resolve(value);\n };\n api.ui.dialog.setSize(\"medium\");\n api.ui.dialog.replace(() => {\n const DialogSelect = api.ui.DialogSelect;\n return _$createComponent(DialogSelect, {\n title: title,\n get options() {\n return attachments.map(attachment => ({\n title: formatPullRequestRef(attachment.pullRequest),\n value: attachment.pullRequest,\n description: attachment.pullRequest.url\n }));\n },\n onSelect: option => finish(option.value)\n });\n }, () => {\n if (!finished) resolve(undefined);\n });\n });\n}\nfunction showStateFailure(api, failure) {\n api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: failure.message\n });\n}\nfunction toneColor(theme, tone) {\n const colors = {\n green: theme.success,\n yellow: theme.warning,\n red: theme.error,\n purple: theme.secondary,\n gray: theme.textMuted\n };\n return colors[tone];\n}\nfunction PullRequestSidebar(props) {\n const [items, setItems] = createSignal([]);\n const [failure, setFailure] = createSignal();\n const polling = startSessionPolling({\n sessionID: props.sessionID,\n store: props.dependencies.store,\n github: props.dependencies.github,\n publish: value => {\n setFailure(undefined);\n setItems(value);\n },\n onStateFailure: error => setFailure(error.message),\n onError: () => setFailure(\"Unable to refresh pull request status\")\n });\n polling.start().catch(() => setFailure(\"Unable to refresh pull request status\"));\n const unsubscribe = props.refreshBus.subscribe(props.sessionID, () => {\n polling.refresh().catch(() => setFailure(\"Unable to refresh pull request status\"));\n });\n const onAbort = () => polling.stop();\n props.api.lifecycle.signal.addEventListener(\"abort\", onAbort, {\n once: true\n });\n onCleanup(() => {\n unsubscribe();\n polling.stop();\n props.api.lifecycle.signal.removeEventListener(\"abort\", onAbort);\n });\n return (() => {\n var _el$2 = _$createElement(\"box\"),\n _el$3 = _$createElement(\"text\"),\n _el$4 = _$createElement(\"b\");\n _$insertNode(_el$2, _el$3);\n _$setProp(_el$2, \"flexDirection\", \"column\");\n _$setProp(_el$2, \"gap\", 1);\n _$insertNode(_el$3, _el$4);\n _$insertNode(_el$4, _$createTextNode(`Pull requests`));\n _$insert(_el$2, (() => {\n var _c$ = _$memo(() => !!failure());\n return () => _c$() ? (() => {\n var _el$6 = _$createElement(\"text\");\n _$insert(_el$6, failure);\n _$effect(_$p => _$setProp(_el$6, \"fg\", props.api.theme.current.error, _$p));\n return _el$6;\n })() : null;\n })(), null);\n _$insert(_el$2, (() => {\n var _c$2 = _$memo(() => !!(!failure() && items().length === 0));\n return () => _c$2() ? (() => {\n var _el$7 = _$createElement(\"text\");\n _$insertNode(_el$7, _$createTextNode(`No pull requests attached`));\n _$effect(_$p => _$setProp(_el$7, \"fg\", props.api.theme.current.textMuted, _$p));\n return _el$7;\n })() : null;\n })(), null);\n _$insert(_el$2, () => items().map(item => {\n const appearance = statusAppearance(item.status);\n const attributes = appearance.strikethrough ? TextAttributes.STRIKETHROUGH : TextAttributes.NONE;\n const title = item.status.tag === \"Available\" ? item.status.title : \"Title unavailable\";\n return (() => {\n var _el$9 = _$createElement(\"box\"),\n _el$0 = _$createElement(\"text\"),\n _el$1 = _$createElement(\"b\"),\n _el$10 = _$createTextNode(` `),\n _el$11 = _$createElement(\"text\");\n _$insertNode(_el$9, _el$0);\n _$insertNode(_el$9, _el$11);\n _$setProp(_el$9, \"flexDirection\", \"column\");\n _$setProp(_el$9, \"onMouseUp\", () => {\n openPullRequest(item.attachment.pullRequest, {\n ...(props.dependencies.runner ? {\n runner: props.dependencies.runner\n } : {}),\n signal: props.api.lifecycle.signal\n }).then(result => {\n if (!result.ok) {\n props.api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: result.error.message\n });\n }\n }).catch(() => {\n props.api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: \"Unable to open the pull request\"\n });\n });\n });\n _$insertNode(_el$0, _el$1);\n _$insertNode(_el$0, _el$10);\n _$setProp(_el$0, \"attributes\", attributes);\n _$insert(_el$1, () => formatPullRequestRef(item.attachment.pullRequest));\n _$insert(_el$0, () => appearance.label, null);\n _$setProp(_el$11, \"attributes\", attributes);\n _$insert(_el$11, title);\n _$effect(_p$ => {\n var _v$ = toneColor(props.api.theme.current, appearance.tone),\n _v$2 = props.api.theme.current.textMuted;\n _v$ !== _p$.e && (_p$.e = _$setProp(_el$0, \"fg\", _v$, _p$.e));\n _v$2 !== _p$.t && (_p$.t = _$setProp(_el$11, \"fg\", _v$2, _p$.t));\n return _p$;\n }, {\n e: undefined,\n t: undefined\n });\n return _el$9;\n })();\n }), null);\n _$effect(_$p => _$setProp(_el$3, \"fg\", props.api.theme.current.text, _$p));\n return _el$2;\n })();\n}\nexport function registerTui(api, dependencies) {\n const refreshBus = createRefreshBus();\n api.event.on(\"session.updated\", event => refreshBus.emit(event.properties.sessionID));\n api.event.on(\"message.updated\", event => refreshBus.emit(event.properties.sessionID));\n api.event.on(\"message.part.updated\", event => refreshBus.emit(event.properties.sessionID));\n const disposeCommands = api.keymap.registerLayer({\n commands: [{\n name: \"pr.attach\",\n title: \"Attach pull request\",\n category: \"Plugin\",\n namespace: \"palette\",\n slashName: \"pr-attach\",\n async run() {\n const sessionID = currentSessionID(api);\n if (sessionID === undefined) {\n api.ui.toast({\n variant: \"warning\",\n title: \"Pull request tracker\",\n message: \"Open a session first\"\n });\n return;\n }\n const pullRequest = await promptForPullRequest(api, {\n directory: api.state.path.directory,\n ...(dependencies.runner ? {\n runner: dependencies.runner\n } : {}),\n signal: api.lifecycle.signal\n });\n if (pullRequest === undefined) return;\n const result = await dependencies.store.attach(sessionID, pullRequest);\n if (!result.ok) {\n showStateFailure(api, result.error);\n return;\n }\n const message = result.value === \"added\" ? `Attached ${formatPullRequestRef(pullRequest)}` : `${formatPullRequestRef(pullRequest)} is already attached`;\n api.ui.toast({\n variant: \"success\",\n title: \"Pull request tracker\",\n message\n });\n refreshBus.emit(sessionID);\n }\n }, {\n name: \"pr.open\",\n title: \"Open pull request\",\n category: \"Plugin\",\n namespace: \"palette\",\n slashName: \"pr-open\",\n async run() {\n const sessionID = currentSessionID(api);\n if (sessionID === undefined) {\n api.ui.toast({\n variant: \"warning\",\n title: \"Pull request tracker\",\n message: \"Open a session first\"\n });\n return;\n }\n const attachments = await dependencies.store.list(sessionID);\n if (!attachments.ok) {\n showStateFailure(api, attachments.error);\n return;\n }\n if (attachments.value.length === 0) {\n api.ui.toast({\n variant: \"info\",\n title: \"Pull request tracker\",\n message: \"No pull requests are attached\"\n });\n return;\n }\n const pullRequest = await selectPullRequest(api, \"Open pull request\", attachments.value);\n if (pullRequest === undefined) return;\n const result = await openPullRequest(pullRequest, {\n ...(dependencies.runner ? {\n runner: dependencies.runner\n } : {}),\n signal: api.lifecycle.signal\n });\n if (!result.ok) {\n api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: result.error.message\n });\n }\n }\n }, {\n name: \"pr.detach\",\n title: \"Detach pull request\",\n category: \"Plugin\",\n namespace: \"palette\",\n slashName: \"pr-detach\",\n async run() {\n const sessionID = currentSessionID(api);\n if (sessionID === undefined) {\n api.ui.toast({\n variant: \"warning\",\n title: \"Pull request tracker\",\n message: \"Open a session first\"\n });\n return;\n }\n const attachments = await dependencies.store.list(sessionID);\n if (!attachments.ok) {\n showStateFailure(api, attachments.error);\n return;\n }\n if (attachments.value.length === 0) {\n api.ui.toast({\n variant: \"info\",\n title: \"Pull request tracker\",\n message: \"No pull requests are attached\"\n });\n return;\n }\n const pullRequest = await selectPullRequest(api, \"Detach pull request\", attachments.value);\n if (pullRequest === undefined) return;\n const result = await dependencies.store.detach(sessionID, pullRequest);\n if (!result.ok) {\n showStateFailure(api, result.error);\n return;\n }\n const message = result.value === \"removed\" ? `Detached ${formatPullRequestRef(pullRequest)}` : `${formatPullRequestRef(pullRequest)} was not attached`;\n api.ui.toast({\n variant: \"success\",\n title: \"Pull request tracker\",\n message\n });\n refreshBus.emit(sessionID);\n }\n }],\n bindings: []\n });\n api.lifecycle.onDispose(disposeCommands);\n api.slots.register({\n order: 250,\n slots: {\n sidebar_content(_context, value) {\n return _$createComponent(PullRequestSidebar, {\n api: api,\n get sessionID() {\n return value.session_id;\n },\n dependencies: dependencies,\n refreshBus: refreshBus\n });\n }\n }\n });\n}\nconst plugin = {\n id: \"opencode-pr-tracker\",\n async tui(api, options) {\n if (options?.enabled === false) return;\n registerTui(api, {\n store: createStateStore(),\n github: createGitHubClient()\n });\n }\n};\nexport default plugin;",
|
|
17
|
+
"import { memo as _$memo } from \"@opentui/solid\";\nimport { createTextNode as _$createTextNode } from \"@opentui/solid\";\nimport { insertNode as _$insertNode } from \"@opentui/solid\";\nimport { setProp as _$setProp } from \"@opentui/solid\";\nimport { effect as _$effect } from \"@opentui/solid\";\nimport { insert as _$insert } from \"@opentui/solid\";\nimport { createElement as _$createElement } from \"@opentui/solid\";\nimport { createComponent as _$createComponent } from \"@opentui/solid\";\n/** @jsxImportSource @opentui/solid */\nimport { TextAttributes } from \"@opentui/core\";\nimport { createSignal, onCleanup } from \"solid-js\";\nimport { resolvePullRequestInput } from \"./attach.js\";\nimport { createGitHubClient, execFileRunner, statusAppearance } from \"./github.js\";\nimport { createStateStore } from \"./state.js\";\nimport { formatPullRequestRef, parsePullRequestUrl } from \"./url.js\";\nconst pollIntervalMilliseconds = 60_000;\nconst defaultScheduler = {\n setInterval: (task, delay) => globalThis.setInterval(task, delay),\n // SAFETY: this scheduler only receives handles returned by setInterval above.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- PollScheduler erases the host-specific handle type\n clearInterval: handle => globalThis.clearInterval(handle)\n};\nexport function attachPullRequest(store, sessionID, input) {\n const pullRequest = parsePullRequestUrl(input);\n if (!pullRequest.ok) return Promise.resolve(pullRequest);\n return store.attach(sessionID, pullRequest.value);\n}\nexport function startSessionPolling(input) {\n const scheduler = input.scheduler ?? defaultScheduler;\n const statuses = new Map();\n const controller = new AbortController();\n let timer;\n let timerRegistered = false;\n let stopped = false;\n let inFlight;\n let queued;\n function project(attachments) {\n return attachments.map(attachment => ({\n attachment,\n status: statuses.get(attachment.pullRequest.url) ?? {\n tag: \"Unavailable\"\n }\n }));\n }\n async function poll() {\n const attachments = await input.store.list(input.sessionID);\n if (stopped) return {\n ok: true,\n value: \"stopped\"\n };\n if (!attachments.ok) {\n input.publish([]);\n input.onStateFailure(attachments.error);\n return attachments;\n }\n const attachedUrls = new Set(attachments.value.map(attachment => attachment.pullRequest.url));\n for (const url of statuses.keys()) {\n if (!attachedUrls.has(url)) statuses.delete(url);\n }\n input.publish(project(attachments.value));\n if (attachments.value.length === 0) return {\n ok: true,\n value: \"no_attachments\"\n };\n const refreshable = attachments.value.filter(attachment => {\n const previous = statuses.get(attachment.pullRequest.url);\n return previous?.tag !== \"Available\" || previous.state.tag !== \"Merged\";\n });\n const batch = await input.github.get(refreshable.map(attachment => attachment.pullRequest), {\n signal: controller.signal\n });\n if (stopped) return {\n ok: true,\n value: \"stopped\"\n };\n let batchDiagnostic;\n let failure;\n if (!batch.ok) {\n if (batch.error.tag === \"GitHubCancelled\") return batch;\n batchDiagnostic = batch.error.tag === \"GitHubBatchLimitExceeded\" ? \"GitHubUnavailable\" : batch.error.tag;\n failure = batch.error;\n }\n for (const [index, attachment] of refreshable.entries()) {\n const previous = statuses.get(attachment.pullRequest.url);\n const result = batch.ok ? batch.value[index] : undefined;\n if (result?.ok) {\n statuses.set(attachment.pullRequest.url, result.value);\n continue;\n }\n const diagnostic = result === undefined ? batchDiagnostic ?? \"GitHubUnavailable\" : result.error.tag;\n if (result !== undefined && !result.ok) failure ??= result.error;\n statuses.set(attachment.pullRequest.url, previous?.tag === \"Available\" ? {\n ...previous,\n stale: true,\n diagnostic\n } : {\n tag: \"Unavailable\",\n diagnostic\n });\n }\n if (!stopped) input.publish(project(attachments.value));\n return failure === undefined ? {\n ok: true,\n value: \"refreshed\"\n } : {\n ok: false,\n error: failure\n };\n }\n function startQueuedRefresh() {\n inFlight = undefined;\n const next = queued;\n queued = undefined;\n if (next === undefined) return;\n if (stopped) {\n next.resolve({\n ok: true,\n value: \"stopped\"\n });\n return;\n }\n void requestRefresh().then(result => next.resolve(result), error => next.reject(error));\n }\n function requestRefresh() {\n if (stopped) return Promise.resolve({\n ok: true,\n value: \"stopped\"\n });\n if (inFlight) {\n if (queued !== undefined) return queued.promise;\n let resolve;\n let reject;\n const promise = new Promise((resolvePromise, rejectPromise) => {\n resolve = resolvePromise;\n reject = rejectPromise;\n });\n queued = {\n promise,\n resolve,\n reject\n };\n return promise;\n }\n const current = poll();\n inFlight = current;\n void current.then(startQueuedRefresh, startQueuedRefresh);\n return current;\n }\n function scheduledRefresh() {\n return requestRefresh().then(() => undefined);\n }\n return {\n start() {\n if (stopped) return Promise.resolve();\n if (!timerRegistered) {\n timer = scheduler.setInterval(() => {\n scheduledRefresh().catch(input.onError);\n }, pollIntervalMilliseconds);\n timerRegistered = true;\n }\n return scheduledRefresh();\n },\n refresh: scheduledRefresh,\n forceRefresh: requestRefresh,\n stop() {\n if (stopped) return;\n stopped = true;\n controller.abort();\n if (timerRegistered) scheduler.clearInterval(timer);\n }\n };\n}\nexport async function openPullRequest(pullRequest, options = {}) {\n const platform = options.platform ?? process.platform;\n const executable = platform === \"darwin\" ? \"open\" : platform === \"linux\" ? \"xdg-open\" : undefined;\n if (executable === undefined) {\n return {\n ok: false,\n error: {\n tag: \"UnsupportedPlatform\",\n message: `Opening pull requests is unsupported on ${platform}`,\n platform\n }\n };\n }\n try {\n await (options.runner ?? execFileRunner)(executable, [pullRequest.url], options.signal ? {\n signal: options.signal\n } : {});\n return {\n ok: true,\n value: undefined\n };\n } catch (cause) {\n return {\n ok: false,\n error: {\n tag: \"OpenPullRequestFailed\",\n message: \"Unable to open the pull request\",\n cause\n }\n };\n }\n}\nfunction createRefreshBus() {\n const listeners = new Map();\n return {\n emit(sessionID) {\n for (const listener of listeners.get(sessionID) ?? []) listener.refresh();\n },\n async forceRefresh(sessionID) {\n const sessionListeners = listeners.get(sessionID);\n if (sessionListeners === undefined || sessionListeners.size === 0) return undefined;\n const settled = await Promise.allSettled([...sessionListeners].map(listener => listener.forceRefresh()));\n const rejected = settled.find(result => result.status === \"rejected\");\n if (rejected !== undefined) throw rejected.reason;\n const results = settled.flatMap(result => result.status === \"fulfilled\" ? [result.value] : []);\n return results.find(result => !result.ok) ?? results.find(result => result.ok && result.value === \"refreshed\") ?? results[0];\n },\n subscribe(sessionID, listener) {\n const sessionListeners = listeners.get(sessionID) ?? new Set();\n sessionListeners.add(listener);\n listeners.set(sessionID, sessionListeners);\n return () => {\n sessionListeners.delete(listener);\n if (sessionListeners.size === 0) listeners.delete(sessionID);\n };\n }\n };\n}\nfunction currentSessionID(api) {\n const route = api.route.current;\n if (route.name !== \"session\" || !(\"params\" in route)) return undefined;\n return typeof route.params?.sessionID === \"string\" ? route.params.sessionID : undefined;\n}\nfunction promptForPullRequest(api, options) {\n return new Promise(resolve => {\n const controller = new AbortController();\n const signal = AbortSignal.any([options.signal, controller.signal]);\n let finished = false;\n const finish = value => {\n if (finished) return;\n finished = true;\n controller.abort();\n api.ui.dialog.clear();\n resolve(value);\n };\n api.ui.dialog.setSize(\"medium\");\n api.ui.dialog.replace(() => {\n const [error, setError] = createSignal();\n const [busy, setBusy] = createSignal(false);\n const DialogPrompt = api.ui.DialogPrompt;\n return _$createComponent(DialogPrompt, {\n title: \"Attach pull request\",\n placeholder: \"https://github.com/owner/repository/pull/123 or 123\",\n description: () => error() ? (() => {\n var _el$ = _$createElement(\"text\");\n _$insert(_el$, error);\n _$effect(_$p => _$setProp(_el$, \"fg\", api.theme.current.error, _$p));\n return _el$;\n })() : null,\n get busy() {\n return busy();\n },\n busyText: \"Resolving repository\",\n onConfirm: value => {\n if (busy()) return;\n setBusy(true);\n void resolvePullRequestInput(value, {\n directory: options.directory,\n ...(options.runner ? {\n runner: options.runner\n } : {}),\n signal\n }).then(result => {\n if (finished) return;\n setBusy(false);\n if (result.ok) {\n finish(result.value);\n return;\n }\n if (result.error.tag === \"RepositoryResolutionCancelled\") {\n finish(undefined);\n return;\n }\n setError(result.error.message);\n });\n },\n onCancel: () => finish(undefined)\n });\n }, () => {\n if (finished) return;\n finished = true;\n controller.abort();\n resolve(undefined);\n });\n });\n}\nfunction selectPullRequest(api, title, attachments) {\n return new Promise(resolve => {\n let finished = false;\n const finish = value => {\n if (finished) return;\n finished = true;\n api.ui.dialog.clear();\n resolve(value);\n };\n api.ui.dialog.setSize(\"medium\");\n api.ui.dialog.replace(() => {\n const DialogSelect = api.ui.DialogSelect;\n return _$createComponent(DialogSelect, {\n title: title,\n get options() {\n return attachments.map(attachment => ({\n title: formatPullRequestRef(attachment.pullRequest),\n value: attachment.pullRequest,\n description: attachment.pullRequest.url\n }));\n },\n onSelect: option => finish(option.value)\n });\n }, () => {\n if (!finished) resolve(undefined);\n });\n });\n}\nfunction showStateFailure(api, failure) {\n api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: failure.message\n });\n}\nfunction toneColor(theme, tone) {\n const colors = {\n green: theme.success,\n yellow: theme.warning,\n red: theme.error,\n purple: theme.secondary,\n gray: theme.textMuted\n };\n return colors[tone];\n}\nfunction PullRequestSidebar(props) {\n const [items, setItems] = createSignal([]);\n const [failure, setFailure] = createSignal();\n const polling = startSessionPolling({\n sessionID: props.sessionID,\n store: props.dependencies.store,\n github: props.dependencies.github,\n publish: value => {\n setFailure(undefined);\n setItems(value);\n },\n onStateFailure: error => setFailure(error.message),\n onError: () => setFailure(\"Unable to refresh pull request status\")\n });\n polling.start().catch(() => setFailure(\"Unable to refresh pull request status\"));\n const unsubscribe = props.refreshBus.subscribe(props.sessionID, {\n refresh() {\n polling.refresh().catch(() => setFailure(\"Unable to refresh pull request status\"));\n },\n async forceRefresh() {\n try {\n return await polling.forceRefresh();\n } catch (error) {\n setFailure(\"Unable to refresh pull request status\");\n throw error;\n }\n }\n });\n const onAbort = () => polling.stop();\n props.api.lifecycle.signal.addEventListener(\"abort\", onAbort, {\n once: true\n });\n onCleanup(() => {\n unsubscribe();\n polling.stop();\n props.api.lifecycle.signal.removeEventListener(\"abort\", onAbort);\n });\n return (() => {\n var _el$2 = _$createElement(\"box\"),\n _el$3 = _$createElement(\"text\"),\n _el$4 = _$createElement(\"b\");\n _$insertNode(_el$2, _el$3);\n _$setProp(_el$2, \"flexDirection\", \"column\");\n _$setProp(_el$2, \"gap\", 1);\n _$insertNode(_el$3, _el$4);\n _$insertNode(_el$4, _$createTextNode(`Pull requests`));\n _$insert(_el$2, (() => {\n var _c$ = _$memo(() => !!failure());\n return () => _c$() ? (() => {\n var _el$6 = _$createElement(\"text\");\n _$insert(_el$6, failure);\n _$effect(_$p => _$setProp(_el$6, \"fg\", props.api.theme.current.error, _$p));\n return _el$6;\n })() : null;\n })(), null);\n _$insert(_el$2, (() => {\n var _c$2 = _$memo(() => !!(!failure() && items().length === 0));\n return () => _c$2() ? (() => {\n var _el$7 = _$createElement(\"text\");\n _$insertNode(_el$7, _$createTextNode(`No pull requests attached`));\n _$effect(_$p => _$setProp(_el$7, \"fg\", props.api.theme.current.textMuted, _$p));\n return _el$7;\n })() : null;\n })(), null);\n _$insert(_el$2, () => items().map(item => {\n const appearance = statusAppearance(item.status);\n const attributes = appearance.strikethrough ? TextAttributes.STRIKETHROUGH : TextAttributes.NONE;\n const title = item.status.tag === \"Available\" ? item.status.title : \"Title unavailable\";\n return (() => {\n var _el$9 = _$createElement(\"box\"),\n _el$0 = _$createElement(\"text\"),\n _el$1 = _$createElement(\"b\"),\n _el$10 = _$createTextNode(` `),\n _el$11 = _$createElement(\"text\");\n _$insertNode(_el$9, _el$0);\n _$insertNode(_el$9, _el$11);\n _$setProp(_el$9, \"flexDirection\", \"column\");\n _$setProp(_el$9, \"onMouseUp\", () => {\n openPullRequest(item.attachment.pullRequest, {\n ...(props.dependencies.runner ? {\n runner: props.dependencies.runner\n } : {}),\n signal: props.api.lifecycle.signal\n }).then(result => {\n if (!result.ok) {\n props.api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: result.error.message\n });\n }\n }).catch(() => {\n props.api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: \"Unable to open the pull request\"\n });\n });\n });\n _$insertNode(_el$0, _el$1);\n _$insertNode(_el$0, _el$10);\n _$setProp(_el$0, \"attributes\", attributes);\n _$insert(_el$1, () => formatPullRequestRef(item.attachment.pullRequest));\n _$insert(_el$0, () => appearance.label, null);\n _$setProp(_el$11, \"attributes\", attributes);\n _$insert(_el$11, title);\n _$effect(_p$ => {\n var _v$ = toneColor(props.api.theme.current, appearance.tone),\n _v$2 = props.api.theme.current.textMuted;\n _v$ !== _p$.e && (_p$.e = _$setProp(_el$0, \"fg\", _v$, _p$.e));\n _v$2 !== _p$.t && (_p$.t = _$setProp(_el$11, \"fg\", _v$2, _p$.t));\n return _p$;\n }, {\n e: undefined,\n t: undefined\n });\n return _el$9;\n })();\n }), null);\n _$effect(_$p => _$setProp(_el$3, \"fg\", props.api.theme.current.text, _$p));\n return _el$2;\n })();\n}\nexport function registerTui(api, dependencies) {\n const refreshBus = dependencies.refreshBus ?? createRefreshBus();\n const disposeEvents = [api.event.on(\"session.updated\", event => refreshBus.emit(event.properties.sessionID)), api.event.on(\"message.updated\", event => refreshBus.emit(event.properties.sessionID)), api.event.on(\"message.part.updated\", event => refreshBus.emit(event.properties.sessionID))];\n const disposeCommands = api.keymap.registerLayer({\n commands: [{\n name: \"pr.attach\",\n title: \"Attach pull request\",\n category: \"Plugin\",\n namespace: \"palette\",\n slashName: \"pr-attach\",\n async run() {\n const sessionID = currentSessionID(api);\n if (sessionID === undefined) {\n api.ui.toast({\n variant: \"warning\",\n title: \"Pull request tracker\",\n message: \"Open a session first\"\n });\n return;\n }\n const pullRequest = await promptForPullRequest(api, {\n directory: api.state.path.directory,\n ...(dependencies.runner ? {\n runner: dependencies.runner\n } : {}),\n signal: api.lifecycle.signal\n });\n if (pullRequest === undefined) return;\n const result = await dependencies.store.attach(sessionID, pullRequest);\n if (!result.ok) {\n showStateFailure(api, result.error);\n return;\n }\n const message = result.value === \"added\" ? `Attached ${formatPullRequestRef(pullRequest)}` : `${formatPullRequestRef(pullRequest)} is already attached`;\n api.ui.toast({\n variant: \"success\",\n title: \"Pull request tracker\",\n message\n });\n refreshBus.emit(sessionID);\n }\n }, {\n name: \"pr.open\",\n title: \"Open pull request\",\n category: \"Plugin\",\n namespace: \"palette\",\n slashName: \"pr-open\",\n async run() {\n const sessionID = currentSessionID(api);\n if (sessionID === undefined) {\n api.ui.toast({\n variant: \"warning\",\n title: \"Pull request tracker\",\n message: \"Open a session first\"\n });\n return;\n }\n const attachments = await dependencies.store.list(sessionID);\n if (!attachments.ok) {\n showStateFailure(api, attachments.error);\n return;\n }\n if (attachments.value.length === 0) {\n api.ui.toast({\n variant: \"info\",\n title: \"Pull request tracker\",\n message: \"No pull requests are attached\"\n });\n return;\n }\n const pullRequest = await selectPullRequest(api, \"Open pull request\", attachments.value);\n if (pullRequest === undefined) return;\n const result = await openPullRequest(pullRequest, {\n ...(dependencies.runner ? {\n runner: dependencies.runner\n } : {}),\n signal: api.lifecycle.signal\n });\n if (!result.ok) {\n api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: result.error.message\n });\n }\n }\n }, {\n name: \"pr.detach\",\n title: \"Detach pull request\",\n category: \"Plugin\",\n namespace: \"palette\",\n slashName: \"pr-detach\",\n async run() {\n const sessionID = currentSessionID(api);\n if (sessionID === undefined) {\n api.ui.toast({\n variant: \"warning\",\n title: \"Pull request tracker\",\n message: \"Open a session first\"\n });\n return;\n }\n const attachments = await dependencies.store.list(sessionID);\n if (!attachments.ok) {\n showStateFailure(api, attachments.error);\n return;\n }\n if (attachments.value.length === 0) {\n api.ui.toast({\n variant: \"info\",\n title: \"Pull request tracker\",\n message: \"No pull requests are attached\"\n });\n return;\n }\n const pullRequest = await selectPullRequest(api, \"Detach pull request\", attachments.value);\n if (pullRequest === undefined) return;\n const result = await dependencies.store.detach(sessionID, pullRequest);\n if (!result.ok) {\n showStateFailure(api, result.error);\n return;\n }\n const message = result.value === \"removed\" ? `Detached ${formatPullRequestRef(pullRequest)}` : `${formatPullRequestRef(pullRequest)} was not attached`;\n api.ui.toast({\n variant: \"success\",\n title: \"Pull request tracker\",\n message\n });\n refreshBus.emit(sessionID);\n }\n }, {\n name: \"pr.sync\",\n title: \"Sync pull request status\",\n category: \"Plugin\",\n namespace: \"palette\",\n slashName: \"pr-sync\",\n async run() {\n const sessionID = currentSessionID(api);\n if (sessionID === undefined) {\n api.ui.toast({\n variant: \"warning\",\n title: \"Pull request tracker\",\n message: \"Open a session first\"\n });\n return;\n }\n try {\n const result = await refreshBus.forceRefresh(sessionID);\n if (result === undefined) {\n api.ui.toast({\n variant: \"warning\",\n title: \"Pull request tracker\",\n message: \"Pull request sidebar is not available\"\n });\n return;\n }\n if (!result.ok) {\n api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: result.error.message\n });\n return;\n }\n switch (result.value) {\n case \"refreshed\":\n api.ui.toast({\n variant: \"success\",\n title: \"Pull request tracker\",\n message: \"Pull request status synced\"\n });\n return;\n case \"no_attachments\":\n api.ui.toast({\n variant: \"info\",\n title: \"Pull request tracker\",\n message: \"No pull requests are attached\"\n });\n return;\n case \"stopped\":\n api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: \"Unable to refresh pull request status\"\n });\n return;\n }\n } catch {\n api.ui.toast({\n variant: \"error\",\n title: \"Pull request tracker\",\n message: \"Unable to refresh pull request status\"\n });\n }\n }\n }],\n bindings: []\n });\n api.lifecycle.onDispose(() => {\n disposeCommands();\n for (const disposeEvent of disposeEvents) disposeEvent();\n });\n api.slots.register({\n order: 250,\n slots: {\n sidebar_content(_context, value) {\n return _$createComponent(PullRequestSidebar, {\n api: api,\n get sessionID() {\n return value.session_id;\n },\n dependencies: dependencies,\n refreshBus: refreshBus\n });\n }\n }\n });\n}\nconst plugin = {\n id: \"opencode-pr-tracker\",\n async tui(api, options) {\n if (options?.enabled === false) return;\n registerTui(api, {\n store: createStateStore(),\n github: createGitHubClient()\n });\n }\n};\nexport default plugin;",
|
|
18
18
|
"import { execFile } from \"node:child_process\"\n\nimport { casesHandled } from \"./exhaustive.js\"\nimport { parsePullRequestUrl, type PullRequestUrl, type Result } from \"./url.js\"\n\nexport type PullRequestCi = \"passed\" | \"pending\" | \"failed\" | \"none\"\nexport type PullRequestMergeability = \"mergeable\" | \"conflicting\" | \"unknown\"\n\nexport type PullRequestState =\n | Readonly<{ tag: \"Open\"; ci: PullRequestCi; mergeability: PullRequestMergeability }>\n | Readonly<{ tag: \"Merged\" }>\n | Readonly<{ tag: \"Closed\" }>\n\nexport type AvailablePullRequestStatus = Readonly<{\n tag: \"Available\"\n pullRequest: PullRequestUrl\n title: string\n state: PullRequestState\n}> &\n (Readonly<{ stale: false }> | Readonly<{ stale: true; diagnostic: PullRequestDiagnostic }>)\n\nexport type PullRequestStatus =\n | AvailablePullRequestStatus\n | Readonly<{ tag: \"Unavailable\"; diagnostic?: PullRequestDiagnostic }>\n\nexport type GitHubUnavailable = Readonly<{\n tag: \"GitHubUnavailable\"\n message: \"GitHub status unavailable\"\n cause: unknown\n}>\n\nexport type GitHubCliMissing = Readonly<{\n tag: \"GitHubCliMissing\"\n message: \"GitHub CLI is not installed\"\n cause: unknown\n}>\n\nexport type GitHubAuthenticationRequired = Readonly<{\n tag: \"GitHubAuthenticationRequired\"\n message: \"GitHub CLI authentication required\"\n cause: unknown\n}>\n\nexport type GitHubCancelled = Readonly<{\n tag: \"GitHubCancelled\"\n message: \"GitHub status request cancelled\"\n cause: unknown\n}>\n\nexport type InvalidGitHubResponse = Readonly<{\n tag: \"InvalidGitHubResponse\"\n message: \"GitHub returned an invalid pull request response\"\n}>\n\nexport type GitHubBatchLimitExceeded = Readonly<{\n tag: \"GitHubBatchLimitExceeded\"\n limit: 20\n message: \"GitHub batch cannot contain more than 20 pull requests\"\n}>\n\nexport type GitHubFailure =\n | GitHubCliMissing\n | GitHubAuthenticationRequired\n | GitHubUnavailable\n | GitHubCancelled\n | InvalidGitHubResponse\n | GitHubBatchLimitExceeded\n\nexport type GitHubBatch = readonly Result<AvailablePullRequestStatus, InvalidGitHubResponse>[]\n\nexport type PullRequestDiagnostic = Exclude<GitHubFailure, GitHubCancelled | GitHubBatchLimitExceeded>[\"tag\"]\n\nexport type ProcessRunner = (\n file: string,\n args: readonly string[],\n options: Readonly<{ signal?: AbortSignal; cwd?: string }>,\n) => Promise<Readonly<{ stdout: string }>>\n\nexport type GitHubClient = Readonly<{\n get(\n pullRequests: readonly PullRequestUrl[],\n options?: Readonly<{ signal?: AbortSignal }>,\n ): Promise<Result<GitHubBatch, GitHubFailure>>\n}>\n\nconst invalidGitHubResponse: Result<never, InvalidGitHubResponse> = {\n ok: false,\n error: {\n tag: \"InvalidGitHubResponse\",\n message: \"GitHub returned an invalid pull request response\",\n },\n}\nconst githubBatchLimitExceeded: Result<never, GitHubBatchLimitExceeded> = {\n ok: false,\n error: {\n tag: \"GitHubBatchLimitExceeded\",\n limit: 20,\n message: \"GitHub batch cannot contain more than 20 pull requests\",\n },\n}\n\nconst checkRunPending = new Set([\"QUEUED\", \"IN_PROGRESS\", \"WAITING\", \"PENDING\"])\nconst checkRunPassed = new Set([\"SUCCESS\"])\nconst checkRunFailed = new Set([\"FAILURE\", \"CANCELLED\", \"TIMED_OUT\", \"ACTION_REQUIRED\", \"STARTUP_FAILURE\", \"STALE\"])\nconst checkRunIgnored = new Set([\"NEUTRAL\", \"SKIPPED\"])\nconst statusContextPending = new Set([\"EXPECTED\", \"PENDING\"])\nconst statusContextPassed = new Set([\"SUCCESS\"])\nconst statusContextFailed = new Set([\"ERROR\", \"FAILURE\"])\nconst maximumPullRequestsPerBatch = 20\nconst pullRequestSelection = `__typename ... on PullRequest { title state url mergedAt mergeable statusCheckRollup { contexts(first: 1) { checkRunCount statusContextCount checkRunCountsByState { state count } statusContextCountsByState { state count } } } }`\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n}\n\ntype CheckBucket = \"passed\" | \"pending\" | \"failed\" | \"ignored\"\n\ntype ProcessExecutionFailed = Readonly<{\n tag: \"ProcessExecutionFailed\"\n code: string | number | null\n stderr: string\n stdout: string\n cause: unknown\n}>\n\nfunction parseProcessExecutionFailed(value: unknown): ProcessExecutionFailed | undefined {\n if (\n !isRecord(value) ||\n value.tag !== \"ProcessExecutionFailed\" ||\n (value.code !== null && typeof value.code !== \"string\" && typeof value.code !== \"number\") ||\n typeof value.stderr !== \"string\" ||\n typeof value.stdout !== \"string\" ||\n !(\"cause\" in value)\n ) {\n return undefined\n }\n\n return {\n tag: \"ProcessExecutionFailed\",\n code: value.code,\n stderr: value.stderr,\n stdout: value.stdout,\n cause: value.cause,\n }\n}\n\nfunction classifyCountState(\n state: string,\n states: Readonly<{\n passed: ReadonlySet<string>\n pending: ReadonlySet<string>\n failed: ReadonlySet<string>\n ignored?: ReadonlySet<string>\n }>,\n): CheckBucket | undefined {\n if (states.failed.has(state)) return \"failed\"\n if (states.pending.has(state)) return \"pending\"\n if (states.passed.has(state)) return \"passed\"\n if (states.ignored?.has(state)) return \"ignored\"\n return undefined\n}\n\nfunction aggregateCounts(\n input: unknown,\n expectedTotal: unknown,\n states: Parameters<typeof classifyCountState>[1],\n): Result<ReadonlySet<CheckBucket>, InvalidGitHubResponse> {\n if (!Array.isArray(input) || !Number.isInteger(expectedTotal) || Number(expectedTotal) < 0) {\n return invalidGitHubResponse\n }\n const buckets = new Set<CheckBucket>()\n const seenStates = new Set<string>()\n let total = 0\n for (const item of input) {\n if (\n !isRecord(item) ||\n typeof item.state !== \"string\" ||\n !Number.isInteger(item.count) ||\n Number(item.count) < 0 ||\n seenStates.has(item.state)\n ) {\n return invalidGitHubResponse\n }\n const bucket = classifyCountState(item.state, states)\n if (bucket === undefined && Number(item.count) > 0) return invalidGitHubResponse\n seenStates.add(item.state)\n total += Number(item.count)\n if (bucket !== undefined && Number(item.count) > 0) buckets.add(bucket)\n }\n return total === expectedTotal ? { ok: true, value: buckets } : invalidGitHubResponse\n}\n\nfunction parseStatusCheckRollup(input: unknown): Result<PullRequestCi, InvalidGitHubResponse> {\n if (input === null) return { ok: true, value: \"none\" }\n if (!isRecord(input) || !isRecord(input.contexts)) return invalidGitHubResponse\n const contexts = input.contexts\n const checkRuns = aggregateCounts(contexts.checkRunCountsByState, contexts.checkRunCount, {\n passed: checkRunPassed,\n pending: checkRunPending,\n failed: checkRunFailed,\n ignored: checkRunIgnored,\n })\n if (!checkRuns.ok) return checkRuns\n const statusContexts = aggregateCounts(contexts.statusContextCountsByState, contexts.statusContextCount, {\n passed: statusContextPassed,\n pending: statusContextPending,\n failed: statusContextFailed,\n })\n if (!statusContexts.ok) return statusContexts\n const buckets = new Set([...checkRuns.value, ...statusContexts.value])\n if (buckets.has(\"failed\")) return { ok: true, value: \"failed\" }\n if (buckets.has(\"pending\")) return { ok: true, value: \"pending\" }\n if (buckets.has(\"passed\")) return { ok: true, value: \"passed\" }\n return { ok: true, value: \"none\" }\n}\n\nfunction samePullRequest(left: PullRequestUrl, right: PullRequestUrl): boolean {\n return (\n left.number === right.number &&\n left.owner.toLowerCase() === right.owner.toLowerCase() &&\n left.repository.toLowerCase() === right.repository.toLowerCase()\n )\n}\n\nfunction parseMergeability(input: unknown): Result<PullRequestMergeability, InvalidGitHubResponse> {\n switch (input) {\n case \"MERGEABLE\":\n return { ok: true, value: \"mergeable\" }\n case \"CONFLICTING\":\n return { ok: true, value: \"conflicting\" }\n case \"UNKNOWN\":\n return { ok: true, value: \"unknown\" }\n default:\n return invalidGitHubResponse\n }\n}\n\nfunction parseResponse(\n input: unknown,\n pullRequest: PullRequestUrl,\n): Result<AvailablePullRequestStatus, InvalidGitHubResponse> {\n if (\n !isRecord(input) ||\n input.__typename !== \"PullRequest\" ||\n typeof input.title !== \"string\" ||\n input.title.trim() === \"\"\n ) {\n return invalidGitHubResponse\n }\n if (input.state !== \"OPEN\" && input.state !== \"CLOSED\" && input.state !== \"MERGED\") {\n return invalidGitHubResponse\n }\n if (input.mergedAt !== null && typeof input.mergedAt !== \"string\") return invalidGitHubResponse\n if (typeof input.mergedAt === \"string\" && Number.isNaN(new Date(input.mergedAt).valueOf())) {\n return invalidGitHubResponse\n }\n if (input.state === \"MERGED\" && typeof input.mergedAt !== \"string\") return invalidGitHubResponse\n if (input.state !== \"MERGED\" && input.mergedAt !== null) return invalidGitHubResponse\n if (typeof input.url !== \"string\") return invalidGitHubResponse\n\n const responseUrl = parsePullRequestUrl(input.url)\n if (!responseUrl.ok || !samePullRequest(responseUrl.value, pullRequest)) return invalidGitHubResponse\n\n const ci = parseStatusCheckRollup(input.statusCheckRollup)\n if (!ci.ok) return ci\n const mergeability = parseMergeability(input.mergeable)\n if (!mergeability.ok) return mergeability\n\n let state: PullRequestState\n switch (input.state) {\n case \"OPEN\":\n state = { tag: \"Open\", ci: ci.value, mergeability: mergeability.value }\n break\n case \"MERGED\":\n state = { tag: \"Merged\" }\n break\n case \"CLOSED\":\n state = { tag: \"Closed\" }\n break\n default:\n return casesHandled(input.state)\n }\n\n return {\n ok: true,\n value: {\n tag: \"Available\",\n pullRequest,\n title: input.title,\n state,\n stale: false,\n },\n }\n}\n\nfunction createBatchQuery(size: number): string {\n const variables = Array.from({ length: size }, (_, index) => `$url${index}: URI!`).join(\", \")\n const fields = Array.from(\n { length: size },\n (_, index) => `pr${index}: resource(url: $url${index}) { ${pullRequestSelection} }`,\n ).join(\" \")\n return `query BatchPullRequests(${variables}) { ${fields} }`\n}\n\nfunction parseGraphqlErrorAliases(input: unknown, size: number): Result<ReadonlySet<number>, InvalidGitHubResponse> {\n if (input === undefined) return { ok: true, value: new Set() }\n if (!Array.isArray(input)) return invalidGitHubResponse\n const aliases = new Set<number>()\n for (const error of input) {\n if (\n !isRecord(error) ||\n typeof error.message !== \"string\" ||\n !Array.isArray(error.path) ||\n typeof error.path[0] !== \"string\"\n ) {\n return invalidGitHubResponse\n }\n const match = /^pr([0-9]+)$/.exec(error.path[0])\n if (match === null) return invalidGitHubResponse\n const index = Number(match[1])\n if (!Number.isInteger(index) || index < 0 || index >= size) return invalidGitHubResponse\n aliases.add(index)\n }\n return { ok: true, value: aliases }\n}\n\nfunction parseBatchResponse(\n input: unknown,\n pullRequests: readonly PullRequestUrl[],\n): Result<GitHubBatch, InvalidGitHubResponse> {\n if (!isRecord(input) || !isRecord(input.data)) return invalidGitHubResponse\n const data = input.data\n const errorAliases = parseGraphqlErrorAliases(input.errors, pullRequests.length)\n if (!errorAliases.ok) return errorAliases\n return {\n ok: true,\n value: pullRequests.map((pullRequest, index) =>\n errorAliases.value.has(index) ? invalidGitHubResponse : parseResponse(data[`pr${index}`], pullRequest),\n ),\n }\n}\n\nfunction isCancellation(cause: unknown, signal: AbortSignal | undefined): boolean {\n if (signal?.aborted) return true\n const originalCause = parseProcessExecutionFailed(cause)?.cause ?? cause\n return originalCause instanceof Error && originalCause.name === \"AbortError\"\n}\n\nconst authenticationFailureMarkers = [\"http 401\", \"bad credentials\", \"not logged into\", \"gh auth login\"] as const\n\nfunction isAuthenticationFailure(failure: ProcessExecutionFailed): boolean {\n if (failure.code === 4) return true\n const stderr = failure.stderr.toLowerCase()\n return authenticationFailureMarkers.some((marker) => stderr.includes(marker))\n}\n\nfunction classifyProcessFailure(cause: unknown): GitHubCliMissing | GitHubAuthenticationRequired | GitHubUnavailable {\n const failure = parseProcessExecutionFailed(cause)\n if (failure?.code === \"ENOENT\") {\n return { tag: \"GitHubCliMissing\", message: \"GitHub CLI is not installed\", cause }\n }\n if (failure && isAuthenticationFailure(failure)) {\n return { tag: \"GitHubAuthenticationRequired\", message: \"GitHub CLI authentication required\", cause }\n }\n return { tag: \"GitHubUnavailable\", message: \"GitHub status unavailable\", cause }\n}\n\nfunction processFailureStdout(cause: unknown): string | undefined {\n if (!isRecord(cause) || typeof cause.stdout !== \"string\" || cause.stdout.trim() === \"\") return undefined\n return cause.stdout\n}\n\nexport const execFileRunner: ProcessRunner = (file, args, options) =>\n new Promise((resolve, reject) => {\n execFile(\n file,\n [...args],\n {\n encoding: \"utf8\",\n ...(options.signal ? { signal: options.signal } : {}),\n ...(options.cwd ? { cwd: options.cwd } : {}),\n },\n (error, stdout, stderr) => {\n if (error) {\n reject({\n tag: \"ProcessExecutionFailed\",\n code: error.code ?? null,\n stderr,\n stdout,\n cause: error,\n } satisfies ProcessExecutionFailed)\n return\n }\n resolve({ stdout })\n },\n )\n })\n\nexport function createGitHubClient(runner: ProcessRunner = execFileRunner): GitHubClient {\n return {\n async get(pullRequests, options = {}) {\n if (pullRequests.length === 0) return { ok: true, value: [] }\n if (pullRequests.length > maximumPullRequestsPerBatch) return githubBatchLimitExceeded\n const query = createBatchQuery(pullRequests.length)\n const args = [\"api\", \"graphql\", \"--method\", \"POST\", \"-f\", `query=${query}`]\n for (const [index, pullRequest] of pullRequests.entries()) {\n args.push(\"-f\", `url${index}=${pullRequest.url}`)\n }\n let stdout: string\n let processFailure: GitHubCliMissing | GitHubAuthenticationRequired | GitHubUnavailable | undefined\n try {\n const output = await runner(\"gh\", args, options)\n stdout = output.stdout\n } catch (cause) {\n if (isCancellation(cause, options.signal)) {\n return {\n ok: false,\n error: {\n tag: \"GitHubCancelled\",\n message: \"GitHub status request cancelled\",\n cause,\n },\n }\n }\n processFailure = classifyProcessFailure(cause)\n const partialStdout = processFailureStdout(cause)\n if (partialStdout !== undefined) {\n stdout = partialStdout\n } else {\n return { ok: false, error: processFailure }\n }\n }\n\n let decoded: unknown\n try {\n decoded = JSON.parse(stdout)\n } catch {\n return processFailure === undefined ? invalidGitHubResponse : { ok: false, error: processFailure }\n }\n const parsed = parseBatchResponse(decoded, pullRequests)\n if (processFailure === undefined || parsed.ok) return parsed\n return { ok: false, error: processFailure }\n },\n }\n}\n\nexport type StatusAppearance = Readonly<{\n tone: \"green\" | \"yellow\" | \"red\" | \"purple\" | \"gray\"\n label: string\n strikethrough: boolean\n}>\n\nconst openAppearances = {\n passed: { tone: \"green\", label: \"checks passed\", strikethrough: false },\n pending: { tone: \"yellow\", label: \"checks pending\", strikethrough: false },\n failed: { tone: \"red\", label: \"checks failed\", strikethrough: false },\n none: { tone: \"gray\", label: \"no checks\", strikethrough: false },\n} satisfies Record<PullRequestCi, StatusAppearance>\n\nconst diagnosticLabels = {\n GitHubCliMissing: \"install gh\",\n GitHubAuthenticationRequired: \"run gh auth login\",\n GitHubUnavailable: \"GitHub unavailable\",\n InvalidGitHubResponse: \"invalid GitHub response\",\n} satisfies Record<PullRequestDiagnostic, string>\n\nfunction stateAppearance(state: PullRequestState): StatusAppearance {\n switch (state.tag) {\n case \"Open\": {\n switch (state.mergeability) {\n case \"conflicting\":\n return { tone: \"red\", label: \"merge conflict\", strikethrough: false }\n case \"mergeable\":\n case \"unknown\":\n return openAppearances[state.ci]\n default:\n return casesHandled(state.mergeability)\n }\n }\n case \"Merged\":\n return { tone: \"purple\", label: \"merged\", strikethrough: true }\n case \"Closed\":\n return { tone: \"red\", label: \"closed\", strikethrough: true }\n default:\n return casesHandled(state)\n }\n}\n\nexport function statusAppearance(status: PullRequestStatus): StatusAppearance {\n if (status.tag === \"Unavailable\") {\n return {\n tone: \"gray\",\n label: status.diagnostic === undefined ? \"status unavailable\" : diagnosticLabels[status.diagnostic],\n strikethrough: false,\n }\n }\n\n const appearance = stateAppearance(status.state)\n return status.stale\n ? { ...appearance, label: `${appearance.label} (stale; ${diagnosticLabels[status.diagnostic]})` }\n : appearance\n}\n",
|
|
19
19
|
"export function casesHandled(value: never): never {\n throw new Error(`Unhandled case: ${String(value)}`)\n}\n",
|
|
20
|
-
"declare const pullRequestUrlBrand: unique symbol\ndeclare const pullRequestBrand: unique symbol\n\nexport type CanonicalPullRequestUrl = string & {\n readonly [pullRequestUrlBrand]: \"CanonicalPullRequestUrl\"\n}\n\nexport type PullRequestUrl = Readonly<{\n url: CanonicalPullRequestUrl\n owner: string\n repository: string\n number: number\n readonly [pullRequestBrand]: \"PullRequestUrl\"\n}>\n\nexport type InvalidPullRequestUrl = Readonly<{\n tag: \"InvalidPullRequestUrl\"\n message: \"Expected https://github.com/<owner>/<repository>/pull/<positive-integer>\"\n}>\n\nexport type Result<Value, Failure> = Readonly<{ ok: true; value: Value }> | Readonly<{ ok: false; error: Failure }>\n\nconst invalidPullRequestUrl: Result<never, InvalidPullRequestUrl> = {\n ok: false,\n error: {\n tag: \"InvalidPullRequestUrl\",\n message: \"Expected https://github.com/<owner>/<repository>/pull/<positive-integer>\",\n },\n}\n\nconst segmentPattern = /^[A-Za-z0-9._-]+$/\n\nexport function parsePullRequestUrl(input: string): Result<PullRequestUrl, InvalidPullRequestUrl> {\n if (input.trim() !== input) return invalidPullRequestUrl\n if (!input.startsWith(\"https://\")) return invalidPullRequestUrl\n\n const authorityEnd = input.indexOf(\"/\", \"https://\".length)\n if (authorityEnd === -1) return invalidPullRequestUrl\n if (input.slice(\"https://\".length, authorityEnd).toLowerCase() !== \"github.com\") {\n return invalidPullRequestUrl\n }\n\n const rawPath = input.slice(authorityEnd).split(/[?#]/, 1).join(\"\")\n for (const segment of rawPath.split(\"/\")) {\n let decoded: string\n try {\n decoded = decodeURIComponent(segment)\n } catch {\n return invalidPullRequestUrl\n }\n if (decoded === \".\" || decoded === \"..\") return invalidPullRequestUrl\n }\n\n let parsed: URL\n try {\n parsed = new URL(input)\n } catch {\n return invalidPullRequestUrl\n }\n\n if (\n parsed.protocol !== \"https:\" ||\n parsed.hostname !== \"github.com\" ||\n parsed.username !== \"\" ||\n parsed.password !== \"\" ||\n parsed.port !== \"\" ||\n parsed.search !== \"\" ||\n parsed.hash !== \"\"\n ) {\n return invalidPullRequestUrl\n }\n\n const segments = parsed.pathname.split(\"/\")\n if (segments.length !== 5 || segments[0] !== \"\" || segments[3] !== \"pull\") {\n return invalidPullRequestUrl\n }\n\n const
|
|
20
|
+
"declare const pullRequestUrlBrand: unique symbol\ndeclare const pullRequestBrand: unique symbol\n\nexport type CanonicalPullRequestUrl = string & {\n readonly [pullRequestUrlBrand]: \"CanonicalPullRequestUrl\"\n}\n\nexport type PullRequestUrl = Readonly<{\n url: CanonicalPullRequestUrl\n owner: string\n repository: string\n number: number\n readonly [pullRequestBrand]: \"PullRequestUrl\"\n}>\n\nexport type InvalidPullRequestUrl = Readonly<{\n tag: \"InvalidPullRequestUrl\"\n message: \"Expected https://github.com/<owner>/<repository>/pull/<positive-integer>\"\n}>\n\nexport type Result<Value, Failure> = Readonly<{ ok: true; value: Value }> | Readonly<{ ok: false; error: Failure }>\n\nconst invalidPullRequestUrl: Result<never, InvalidPullRequestUrl> = {\n ok: false,\n error: {\n tag: \"InvalidPullRequestUrl\",\n message: \"Expected https://github.com/<owner>/<repository>/pull/<positive-integer>\",\n },\n}\n\nconst segmentPattern = /^[A-Za-z0-9._-]+$/\n\nexport function parsePullRequestUrl(input: string): Result<PullRequestUrl, InvalidPullRequestUrl> {\n if (input.trim() !== input) return invalidPullRequestUrl\n if (input.includes(\"\\\\\")) return invalidPullRequestUrl\n if (!input.startsWith(\"https://\")) return invalidPullRequestUrl\n\n const authorityEnd = input.indexOf(\"/\", \"https://\".length)\n if (authorityEnd === -1) return invalidPullRequestUrl\n if (input.slice(\"https://\".length, authorityEnd).toLowerCase() !== \"github.com\") {\n return invalidPullRequestUrl\n }\n\n const rawPath = input.slice(authorityEnd).split(/[?#]/, 1).join(\"\")\n for (const segment of rawPath.split(\"/\")) {\n let decoded: string\n try {\n decoded = decodeURIComponent(segment)\n } catch {\n return invalidPullRequestUrl\n }\n if (decoded === \".\" || decoded === \"..\") return invalidPullRequestUrl\n }\n\n let parsed: URL\n try {\n parsed = new URL(input)\n } catch {\n return invalidPullRequestUrl\n }\n\n if (\n parsed.protocol !== \"https:\" ||\n parsed.hostname !== \"github.com\" ||\n parsed.username !== \"\" ||\n parsed.password !== \"\" ||\n parsed.port !== \"\" ||\n parsed.search !== \"\" ||\n parsed.hash !== \"\"\n ) {\n return invalidPullRequestUrl\n }\n\n const segments = parsed.pathname.split(\"/\")\n if (segments.length !== 5 || segments[0] !== \"\" || segments[3] !== \"pull\") {\n return invalidPullRequestUrl\n }\n\n const rawOwner = segments[1]\n const rawRepository = segments[2]\n const numberText = segments[4]\n if (\n rawOwner === undefined ||\n rawRepository === undefined ||\n numberText === undefined ||\n !segmentPattern.test(rawOwner) ||\n !segmentPattern.test(rawRepository) ||\n !/^\\d+$/.test(numberText)\n ) {\n return invalidPullRequestUrl\n }\n\n const number = Number(numberText)\n if (!Number.isSafeInteger(number) || number <= 0) return invalidPullRequestUrl\n\n const owner = rawOwner.toLowerCase()\n const repository = rawRepository.toLowerCase()\n // SAFETY: every URL component passed the canonical GitHub PR checks above.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- the parser establishes the brand invariant\n const url = `https://github.com/${owner}/${repository}/pull/${number}` as CanonicalPullRequestUrl\n const value = { url, owner, repository, number }\n // SAFETY: the parser established canonical URL and component consistency.\n // oxlint-disable-next-line typescript/no-unsafe-type-assertion -- parser establishes the object brand\n return { ok: true, value: value as PullRequestUrl }\n}\n\nexport function formatPullRequestRef(pullRequest: PullRequestUrl): string {\n return `${pullRequest.owner}/${pullRequest.repository}#${pullRequest.number}`\n}\n",
|
|
21
21
|
"import { execFileRunner, type ProcessRunner } from \"./github.js\"\nimport { parsePullRequestUrl, type PullRequestUrl, type Result } from \"./url.js\"\n\nexport type InvalidPullRequestInput = Readonly<{\n tag: \"InvalidPullRequestInput\"\n message: \"Expected https://github.com/<owner>/<repository>/pull/<positive-integer> or a positive pull request number\"\n}>\n\nexport type RepositoryResolutionFailed = Readonly<{\n tag: \"RepositoryResolutionFailed\"\n message: \"Unable to resolve the current GitHub repository with gh; attach with a full URL instead\"\n cause?: unknown\n}>\n\nexport type RepositoryResolutionCancelled = Readonly<{\n tag: \"RepositoryResolutionCancelled\"\n}>\n\nexport type PullRequestInputFailure =\n | InvalidPullRequestInput\n | RepositoryResolutionFailed\n | RepositoryResolutionCancelled\n\nconst invalidPullRequestInput: Result<never, InvalidPullRequestInput> = {\n ok: false,\n error: {\n tag: \"InvalidPullRequestInput\",\n message:\n \"Expected https://github.com/<owner>/<repository>/pull/<positive-integer> or a positive pull request number\",\n },\n}\n\nconst repositoryResolutionFailed: RepositoryResolutionFailed = {\n tag: \"RepositoryResolutionFailed\",\n message: \"Unable to resolve the current GitHub repository with gh; attach with a full URL instead\",\n}\n\nconst repositoryResolutionCancelled: Result<never, RepositoryResolutionCancelled> = {\n ok: false,\n error: { tag: \"RepositoryResolutionCancelled\" },\n}\n\nfunction isCancellation(cause: unknown, signal: AbortSignal | undefined): boolean {\n if (signal?.aborted) return true\n return cause instanceof Error && cause.name === \"AbortError\"\n}\n\nfunction parseRepositoryPullRequest(\n stdout: string,\n number: number,\n): Result<PullRequestUrl, RepositoryResolutionFailed> {\n let decoded: unknown\n try {\n decoded = JSON.parse(stdout)\n } catch {\n return { ok: false, error: repositoryResolutionFailed }\n }\n if (\n decoded === null ||\n typeof decoded !== \"object\" ||\n !(\"url\" in decoded) ||\n typeof decoded.url !== \"string\" ||\n decoded.url === \"\"\n ) {\n return { ok: false, error: repositoryResolutionFailed }\n }\n\n const repositoryUrl = decoded.url.endsWith(\"/\") ? decoded.url.slice(0, -1) : decoded.url\n const pullRequest = parsePullRequestUrl(`${repositoryUrl}/pull/${number}`)\n return pullRequest.ok ? pullRequest : { ok: false, error: repositoryResolutionFailed }\n}\n\nexport async function resolvePullRequestInput(\n input: string,\n options: Readonly<{\n directory: string\n runner?: ProcessRunner\n signal?: AbortSignal\n }>,\n): Promise<Result<PullRequestUrl, PullRequestInputFailure>> {\n const direct = parsePullRequestUrl(input)\n if (direct.ok) return direct\n if (input.trim() !== input || !/^\\d+$/.test(input)) return invalidPullRequestInput\n\n const number = Number(input)\n if (!Number.isSafeInteger(number) || number <= 0) return invalidPullRequestInput\n\n let stdout: string\n try {\n const result = await (options.runner ?? execFileRunner)(\"gh\", [\"repo\", \"view\", \"--json\", \"url\"], {\n cwd: options.directory,\n ...(options.signal ? { signal: options.signal } : {}),\n })\n stdout = result.stdout\n } catch (cause) {\n if (isCancellation(cause, options.signal)) return repositoryResolutionCancelled\n return { ok: false, error: { ...repositoryResolutionFailed, cause } }\n }\n\n return parseRepositoryPullRequest(stdout, number)\n}\n",
|
|
22
22
|
"import { createHash, randomUUID } from \"node:crypto\"\nimport { mkdir, readFile, rename, rm, writeFile } from \"node:fs/promises\"\nimport { homedir } from \"node:os\"\nimport { join } from \"node:path\"\nimport { lock as lockFile } from \"proper-lockfile\"\n\nimport { parsePullRequestUrl, type PullRequestUrl, type Result } from \"./url.js\"\n\nexport const maximumPullRequestsPerSession = 20\n\nexport type PullRequestAttachment = Readonly<{\n pullRequest: PullRequestUrl\n attachedAt: string\n}>\n\nexport type InvalidStateFile = Readonly<{\n tag: \"InvalidStateFile\"\n message: \"The session pull request state file is invalid\"\n}>\n\nexport type StateUnavailable = Readonly<{\n tag: \"StateUnavailable\"\n operation: \"read\" | \"write\"\n message: string\n cause: unknown\n}>\n\nexport type AttachmentLimitReached = Readonly<{\n tag: \"AttachmentLimitReached\"\n limit: 20\n message: \"A session can track at most 20 pull requests\"\n}>\n\nexport type StateFailure = InvalidStateFile | StateUnavailable\nexport type AttachFailure = StateFailure | AttachmentLimitReached\nexport type DetachByNumberOutcome =\n | Readonly<{ tag: \"removed\"; pullRequest: PullRequestUrl }>\n | Readonly<{ tag: \"absent\" }>\n | Readonly<{ tag: \"ambiguous\"; pullRequests: readonly PullRequestUrl[] }>\n\nexport type StateStore = Readonly<{\n list(sessionID: string): Promise<Result<readonly PullRequestAttachment[], StateFailure>>\n attach(sessionID: string, pullRequest: PullRequestUrl): Promise<Result<\"added\" | \"already_attached\", AttachFailure>>\n detach(sessionID: string, pullRequest: PullRequestUrl): Promise<Result<\"removed\" | \"absent\", StateFailure>>\n detachByNumber(sessionID: string, number: number): Promise<Result<DetachByNumberOutcome, StateFailure>>\n removeSession(sessionID: string): Promise<Result<\"removed\" | \"absent\", StateFailure>>\n}>\n\ntype PersistedState = Readonly<{\n version: 1\n pullRequests: readonly Readonly<{ url: string; attachedAt: string }>[]\n}>\n\nconst invalidStateFile: Result<never, InvalidStateFile> = {\n ok: false,\n error: {\n tag: \"InvalidStateFile\",\n message: \"The session pull request state file is invalid\",\n },\n}\n\nconst lockStaleMilliseconds = 10_000\nconst lockUpdateMilliseconds = 2_000\n\nfunction stateUnavailable(operation: \"read\" | \"write\", message: string, cause: unknown): StateUnavailable {\n return { tag: \"StateUnavailable\", operation, message, cause }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value)\n}\n\nfunction hasExactKeys(value: Record<string, unknown>, keys: readonly string[]): boolean {\n const actual = Object.keys(value)\n return actual.length === keys.length && keys.every((key) => Object.hasOwn(value, key))\n}\n\nfunction parseState(input: unknown): Result<readonly PullRequestAttachment[], InvalidStateFile> {\n if (!isRecord(input) || !hasExactKeys(input, [\"version\", \"pullRequests\"])) return invalidStateFile\n if (input.version !== 1 || !Array.isArray(input.pullRequests)) return invalidStateFile\n if (input.pullRequests.length > maximumPullRequestsPerSession) return invalidStateFile\n\n const attachments: PullRequestAttachment[] = []\n const seen = new Set<string>()\n for (const item of input.pullRequests) {\n if (!isRecord(item) || !hasExactKeys(item, [\"url\", \"attachedAt\"])) return invalidStateFile\n if (typeof item.url !== \"string\" || typeof item.attachedAt !== \"string\") return invalidStateFile\n\n const parsed = parsePullRequestUrl(item.url)\n if (!parsed.ok || parsed.value.url !== item.url || seen.has(item.url)) return invalidStateFile\n\n const attachedAt = new Date(item.attachedAt)\n if (Number.isNaN(attachedAt.valueOf()) || attachedAt.toISOString() !== item.attachedAt) return invalidStateFile\n\n seen.add(item.url)\n attachments.push({ pullRequest: parsed.value, attachedAt: item.attachedAt })\n }\n\n return { ok: true, value: attachments }\n}\n\nfunction isMissingFile(cause: unknown): boolean {\n return cause instanceof Error && \"code\" in cause && cause.code === \"ENOENT\"\n}\n\nfunction fileName(sessionID: string): string {\n return `${createHash(\"sha256\").update(sessionID).digest(\"hex\")}.json`\n}\n\nexport function defaultStateDirectory(\n environment: Readonly<Record<string, string | undefined>> = process.env,\n home: string = homedir(),\n): string {\n const dataHome = environment.XDG_DATA_HOME || join(home, \".local\", \"share\")\n return join(dataHome, \"opencode\", \"opencode-pr-tracker\")\n}\n\nexport function createStateStore(options: Readonly<{ directory?: string; now?: () => Date }> = {}): StateStore {\n const directory = options.directory ?? defaultStateDirectory()\n const now = options.now ?? (() => new Date())\n\n async function acquireLock(sessionID: string): Promise<\n Result<\n Readonly<{\n release(): Promise<void>\n compromised(): Error | undefined\n }>,\n StateUnavailable\n >\n > {\n const stateFile = join(directory, fileName(sessionID))\n let compromised: Error | undefined\n try {\n await mkdir(directory, { recursive: true })\n const release = await lockFile(stateFile, {\n realpath: false,\n stale: lockStaleMilliseconds,\n update: lockUpdateMilliseconds,\n retries: { retries: 50, factor: 1, minTimeout: 10, maxTimeout: 100 },\n onCompromised: (error) => {\n compromised = error\n },\n })\n return { ok: true, value: { release, compromised: () => compromised } }\n } catch (cause) {\n return {\n ok: false,\n error: stateUnavailable(\"write\", \"Unable to lock the session pull request state\", cause),\n }\n }\n }\n\n async function withLock<Value, Failure>(\n sessionID: string,\n operation: () => Promise<Result<Value, Failure>>,\n ): Promise<Result<Value, Failure | StateUnavailable>> {\n const lock = await acquireLock(sessionID)\n if (!lock.ok) return lock\n let result: Result<Value, Failure>\n try {\n result = await operation()\n } catch (cause) {\n await lock.value.release().catch(() => undefined)\n throw cause\n }\n\n try {\n await lock.value.release()\n } catch (cause) {\n return {\n ok: false,\n error: stateUnavailable(\"write\", \"Unable to unlock the session pull request state\", cause),\n }\n }\n\n const compromise = lock.value.compromised()\n if (compromise !== undefined) {\n return {\n ok: false,\n error: stateUnavailable(\"write\", \"The session pull request state lock was compromised\", compromise),\n }\n }\n return result\n }\n\n async function readExisting(\n sessionID: string,\n ): Promise<Result<readonly PullRequestAttachment[] | undefined, StateFailure>> {\n const path = join(directory, fileName(sessionID))\n let content: string\n try {\n content = await readFile(path, \"utf8\")\n } catch (cause) {\n if (isMissingFile(cause)) return { ok: true, value: undefined }\n return {\n ok: false,\n error: stateUnavailable(\"read\", \"Unable to read the session pull request state\", cause),\n }\n }\n\n let decoded: unknown\n try {\n decoded = JSON.parse(content)\n } catch {\n return invalidStateFile\n }\n return parseState(decoded)\n }\n\n async function read(sessionID: string): Promise<Result<readonly PullRequestAttachment[], StateFailure>> {\n const result = await readExisting(sessionID)\n if (!result.ok) return result\n return { ok: true, value: result.value ?? [] }\n }\n\n async function write(\n sessionID: string,\n attachments: readonly PullRequestAttachment[],\n ): Promise<Result<void, StateUnavailable>> {\n const destination = join(directory, fileName(sessionID))\n const temporary = `${destination}.${process.pid}.${randomUUID()}.tmp`\n const state: PersistedState = {\n version: 1,\n pullRequests: attachments.map((attachment) => ({\n url: attachment.pullRequest.url,\n attachedAt: attachment.attachedAt,\n })),\n }\n\n try {\n await mkdir(directory, { recursive: true })\n await writeFile(temporary, `${JSON.stringify(state, null, 2)}\\n`, { mode: 0o600 })\n await rename(temporary, destination)\n return { ok: true, value: undefined }\n } catch (cause) {\n await rm(temporary, { force: true }).catch(() => undefined)\n return {\n ok: false,\n error: stateUnavailable(\"write\", \"Unable to write the session pull request state\", cause),\n }\n }\n }\n\n return {\n list: read,\n async attach(sessionID, pullRequest) {\n return withLock<\"added\" | \"already_attached\", AttachFailure>(sessionID, async () => {\n const current = await read(sessionID)\n if (!current.ok) return current\n if (current.value.some((attachment) => attachment.pullRequest.url === pullRequest.url)) {\n return { ok: true, value: \"already_attached\" } as const\n }\n if (current.value.length >= maximumPullRequestsPerSession) {\n return {\n ok: false,\n error: {\n tag: \"AttachmentLimitReached\",\n limit: maximumPullRequestsPerSession,\n message: \"A session can track at most 20 pull requests\",\n },\n } as const\n }\n\n const written = await write(sessionID, [...current.value, { pullRequest, attachedAt: now().toISOString() }])\n if (!written.ok) return written\n return { ok: true, value: \"added\" } as const\n })\n },\n async detach(sessionID, pullRequest) {\n return withLock<\"removed\" | \"absent\", StateFailure>(sessionID, async () => {\n const current = await read(sessionID)\n if (!current.ok) return current\n const next = current.value.filter((attachment) => attachment.pullRequest.url !== pullRequest.url)\n if (next.length === current.value.length) return { ok: true, value: \"absent\" } as const\n\n const written = await write(sessionID, next)\n if (!written.ok) return written\n return { ok: true, value: \"removed\" } as const\n })\n },\n async detachByNumber(sessionID, number) {\n return withLock<DetachByNumberOutcome, StateFailure>(sessionID, async () => {\n const current = await read(sessionID)\n if (!current.ok) return current\n const matches = current.value.filter((attachment) => attachment.pullRequest.number === number)\n if (matches.length === 0) return { ok: true, value: { tag: \"absent\" } } as const\n if (matches.length > 1) {\n return {\n ok: true,\n value: { tag: \"ambiguous\", pullRequests: matches.map((attachment) => attachment.pullRequest) },\n } as const\n }\n\n const match = matches[0]\n if (match === undefined) return { ok: true, value: { tag: \"absent\" } } as const\n const next = current.value.filter((attachment) => attachment.pullRequest.url !== match.pullRequest.url)\n const written = await write(sessionID, next)\n if (!written.ok) return written\n return { ok: true, value: { tag: \"removed\", pullRequest: match.pullRequest } } as const\n })\n },\n async removeSession(sessionID) {\n return withLock<\"removed\" | \"absent\", StateFailure>(sessionID, async () => {\n const current = await readExisting(sessionID)\n if (!current.ok) return current\n if (current.value === undefined) return { ok: true, value: \"absent\" } as const\n try {\n await rm(join(directory, fileName(sessionID)), { force: true })\n return { ok: true, value: \"removed\" } as const\n } catch (cause) {\n return {\n ok: false,\n error: stateUnavailable(\"write\", \"Unable to remove the session pull request state\", cause),\n } as const\n }\n })\n },\n }\n}\n"
|
|
23
23
|
],
|
|
24
|
-
"mappings": "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",
|
|
25
|
-
"debugId": "
|
|
24
|
+
"mappings": "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",
|
|
25
|
+
"debugId": "4A2A207709F4E99D64756E2164756E21",
|
|
26
26
|
"names": []
|
|
27
27
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@hcrosse/opencode-pr-tracker",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.2.0",
|
|
5
5
|
"description": "Track GitHub pull requests in the OpenCode sidebar.",
|
|
6
6
|
"homepage": "https://github.com/hcrosse/opencode-pr-tracker#readme",
|
|
7
7
|
"bugs": {
|