bktide 1.0.1755559112 → 1.0.1755568192
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/commands/ShowBuild.js +4 -0
- package/dist/commands/ShowBuild.js.map +1 -1
- package/dist/formatters/build-detail/PlainTextFormatter.js +283 -112
- package/dist/formatters/build-detail/PlainTextFormatter.js.map +1 -1
- package/dist/formatters/builds/PlainTextFormatter.js +4 -2
- package/dist/formatters/builds/PlainTextFormatter.js.map +1 -1
- package/dist/formatters/pipelines/PlainTextFormatter.js +3 -6
- package/dist/formatters/pipelines/PlainTextFormatter.js.map +1 -1
- package/dist/graphql/queries.js +4 -0
- package/dist/graphql/queries.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/services/BuildkiteClient.js +32 -31
- package/dist/services/BuildkiteClient.js.map +1 -1
- package/dist/services/BuildkiteRestClient.js +8 -7
- package/dist/services/BuildkiteRestClient.js.map +1 -1
- package/dist/ui/theme.js +193 -8
- package/dist/ui/theme.js.map +1 -1
- package/dist/utils/terminal-links.js +165 -0
- package/dist/utils/terminal-links.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-links.js","sourceRoot":"/","sources":["utils/terminal-links.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;GAGG;AACH,SAAS,kBAAkB;IACzB,+DAA+D;IAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAEvD,gDAAgD;IAChD,MAAM,kBAAkB,GAAG;QACzB,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,OAAO;QACP,SAAS;QACT,OAAO;QACP,SAAS;QACT,OAAO;QACP,UAAU;QACV,SAAS;QACT,KAAK;KACN,CAAC;IAEF,qBAAqB;IACrB,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAgC;IAChC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,KAAK;IACZ,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,yDAAyD;IACzD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEvC,oCAAoC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,CAAC;IAExF,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAEnD,mDAAmD;IACnD,OAAO,KAAK,EAAE,IAAI,kBAAkB,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,KAAc;IACtD,MAAM,IAAI,GAAG,KAAK,IAAI,GAAG,CAAC;IAE1B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,4CAA4C;QAC5C,mDAAmD;QACnD,OAAO,WAAW,GAAG,OAAO,IAAI,cAAc,CAAC;IACjD,CAAC;IAED,sDAAsD;IACtD,uDAAuD;IACvD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,2EAA2E;IAC3E,IAAI,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAC3B,OAAO,GAAG,KAAK,KAAK,GAAG,GAAG,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,GAAG,GAAG,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAW,EACX,QAAiB,EACjB,WAAoB,EACpB,KAAc;IAEd,IAAI,GAAG,GAAG,yBAAyB,GAAG,EAAE,CAAC;IAEzC,IAAI,QAAQ,EAAE,CAAC;QACb,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;QACtB,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,IAAI,WAAW,WAAW,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,QAAyB,EACzB,KAAc;IAEd,qDAAqD;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,IAAI,OAAO,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,MAAM,GAAG,GAAG,sBAAsB,KAAK,IAAI,IAAI,SAAS,QAAQ,EAAE,CAAC;IAEnE,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,IAAI,OAAO,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0CAA0C;IAC1C,MAAM,QAAQ,GAAG,uCAAuC,CAAC;IAEzD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;QACpC,yEAAyE;QACzE,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE5C,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,QAAgB,YAAY;IAChE,OAAO,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC","sourcesContent":["/**\n * Terminal hyperlink support for clickable URLs\n * \n * Uses OSC 8 escape sequences for terminals that support it.\n * Similar to color handling, provides auto-detection with override options.\n */\n\nimport chalk from 'chalk';\n\n/**\n * Check if the terminal supports hyperlinks\n * Based on known terminal programs and environment variables\n */\nfunction supportsHyperlinks(): boolean {\n // Check for common CI environments where hyperlinks won't work\n if (process.env.CI) {\n return false;\n }\n\n const termProgram = process.env.TERM_PROGRAM?.toLowerCase() || '';\n const termName = process.env.TERM?.toLowerCase() || '';\n \n // Known terminals that support OSC 8 hyperlinks\n const supportedTerminals = [\n 'vscode',\n 'cursor',\n 'iterm.app',\n 'iterm2',\n 'hyper',\n 'wezterm',\n 'kitty',\n 'ghostty',\n 'tabby',\n 'terminus',\n 'konsole',\n 'rio',\n ];\n \n // Check TERM_PROGRAM\n if (supportedTerminals.some(t => termProgram.includes(t))) {\n return true;\n }\n \n // Check TERM for some terminals\n if (termName.includes('kitty') || termName.includes('wezterm')) {\n return true;\n }\n \n // Windows Terminal sets this\n if (process.env.WT_SESSION) {\n return true;\n }\n \n // VS Code integrated terminal\n if (process.env.VSCODE_GIT_IPC_HANDLE || process.env.VSCODE_INJECTION) {\n return true;\n }\n \n return false;\n}\n\n/**\n * Check if TTY is available (similar to color detection)\n */\nfunction isTTY(): boolean {\n return Boolean(process.stdout.isTTY);\n}\n\n/**\n * Determine if hyperlinks should be enabled\n * Follows same pattern as color detection\n */\nexport function hyperlinksEnabled(): boolean {\n // Respect NO_COLOR as it indicates plain text preference\n if (process.env.NO_COLOR) return false;\n \n // Check for explicit hyperlink mode\n const mode = process.env.BKTIDE_HYPERLINK_MODE || process.env.FORCE_HYPERLINK || 'auto';\n \n if (mode === 'never' || mode === '0') return false;\n if (mode === 'always' || mode === '1') return true;\n \n // Auto mode: check if TTY and terminal supports it\n return isTTY() && supportsHyperlinks();\n}\n\n/**\n * Format a terminal hyperlink using OSC 8 escape sequence\n * \n * @param url - The URL to link to\n * @param label - Optional label text (defaults to URL)\n * @returns Formatted string with hyperlink if supported, fallback otherwise\n */\nexport function terminalLink(url: string, label?: string): string {\n const text = label || url;\n \n if (!url) {\n return text;\n }\n \n // If hyperlinks are enabled, use OSC 8 escape sequence\n if (hyperlinksEnabled()) {\n // OSC 8 format: ESC]8;;URL\\aLABEL\\ESC]8;;\\a\n // \\x1b = ESC, \\x07 = BEL (more compatible than ST)\n return `\\x1b]8;;${url}\\x07${text}\\x1b]8;;\\x07`;\n }\n \n // Fallback: use chalk underline if colors are enabled\n // This matches the existing url formatting in theme.ts\n if (process.stdout.isTTY && !process.env.NO_COLOR) {\n return chalk.underline.cyan(text);\n }\n \n // Final fallback: plain text with angle brackets if URL differs from label\n if (label && label !== url) {\n return `${label} <${url}>`;\n }\n \n return `<${url}>`;\n}\n\n/**\n * Create a hyperlink with automatic Buildkite URL construction\n * \n * @param org - Organization slug\n * @param pipeline - Pipeline slug (optional)\n * @param buildNumber - Build number (optional)\n * @param label - Optional label text\n */\nexport function buildkiteLink(\n org: string,\n pipeline?: string,\n buildNumber?: number,\n label?: string\n): string {\n let url = `https://buildkite.com/${org}`;\n \n if (pipeline) {\n url += `/${pipeline}`;\n if (buildNumber) {\n url += `/builds/${buildNumber}`;\n }\n }\n \n return terminalLink(url, label);\n}\n\n/**\n * Create a GitHub pull request link\n * \n * @param repoUrl - Repository URL (GitHub format)\n * @param prNumber - Pull request number or ID\n * @param label - Optional label text\n */\nexport function githubPRLink(\n repoUrl: string,\n prNumber: string | number,\n label?: string\n): string {\n // Extract owner/repo from various GitHub URL formats\n const match = repoUrl.match(/github\\.com[/:]([^/]+)\\/([^/.]+)/);\n if (!match) {\n return label || `PR #${prNumber}`;\n }\n \n const [, owner, repo] = match;\n const url = `https://github.com/${owner}/${repo}/pull/${prNumber}`;\n \n return terminalLink(url, label || `PR #${prNumber}`);\n}\n\n/**\n * Parse and linkify URLs in text content\n * Useful for annotation content that might contain URLs\n * \n * @param text - Text that might contain URLs\n * @returns Text with URLs converted to hyperlinks\n */\nexport function linkifyUrls(text: string): string {\n if (!hyperlinksEnabled()) {\n return text;\n }\n \n // Simple URL regex - matches http(s) URLs\n const urlRegex = /https?:\\/\\/[^\\s<>\"\\{\\}\\|\\\\\\^\\[\\]`]+/gi;\n \n return text.replace(urlRegex, (url) => {\n // Clean up common trailing punctuation that might not be part of the URL\n const cleanUrl = url.replace(/[.,;:!?]+$/, '');\n const trailing = url.slice(cleanUrl.length);\n \n return terminalLink(cleanUrl) + trailing;\n });\n}\n\n/**\n * Format a help URL with appropriate styling\n */\nexport function helpLink(url: string, label: string = 'Learn more'): string {\n return terminalLink(url, label);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bktide",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1755568192",
|
|
4
4
|
"description": "Command-line interface for Buildkite CI/CD workflows with rich shell completions (Fish, Bash, Zsh) and Alfred workflow integration for macOS power users",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|