terminal-pilot 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +40 -0
  2. package/dist/ansi.js +68 -63
  3. package/dist/ansi.js.map +7 -0
  4. package/dist/cli.d.ts +2 -0
  5. package/dist/cli.js +1807 -0
  6. package/dist/cli.js.map +7 -0
  7. package/dist/commands/close-session.d.ts +12 -0
  8. package/dist/commands/close-session.js +1264 -0
  9. package/dist/commands/close-session.js.map +7 -0
  10. package/dist/commands/create-session.d.ts +26 -0
  11. package/dist/commands/create-session.js +1271 -0
  12. package/dist/commands/create-session.js.map +7 -0
  13. package/dist/commands/fill.d.ts +10 -0
  14. package/dist/commands/fill.js +1267 -0
  15. package/dist/commands/fill.js.map +7 -0
  16. package/dist/commands/get-session.d.ts +18 -0
  17. package/dist/commands/get-session.js +1269 -0
  18. package/dist/commands/get-session.js.map +7 -0
  19. package/dist/commands/index.d.ts +242 -0
  20. package/dist/commands/index.js +1781 -0
  21. package/dist/commands/index.js.map +7 -0
  22. package/dist/commands/install.d.ts +20 -0
  23. package/dist/commands/install.js +119 -0
  24. package/dist/commands/install.js.map +7 -0
  25. package/dist/commands/installer.d.ts +43 -0
  26. package/dist/commands/installer.js +123 -0
  27. package/dist/commands/installer.js.map +7 -0
  28. package/dist/commands/list-sessions.d.ts +16 -0
  29. package/dist/commands/list-sessions.js +1268 -0
  30. package/dist/commands/list-sessions.js.map +7 -0
  31. package/dist/commands/press-key.d.ts +10 -0
  32. package/dist/commands/press-key.js +1267 -0
  33. package/dist/commands/press-key.js.map +7 -0
  34. package/dist/commands/read-history.d.ts +16 -0
  35. package/dist/commands/read-history.js +1266 -0
  36. package/dist/commands/read-history.js.map +7 -0
  37. package/dist/commands/read-screen.d.ts +21 -0
  38. package/dist/commands/read-screen.js +1270 -0
  39. package/dist/commands/read-screen.js.map +7 -0
  40. package/dist/commands/resize.d.ts +12 -0
  41. package/dist/commands/resize.js +1267 -0
  42. package/dist/commands/resize.js.map +7 -0
  43. package/dist/commands/runtime.d.ts +36 -0
  44. package/dist/commands/runtime.js +1256 -0
  45. package/dist/commands/runtime.js.map +7 -0
  46. package/dist/commands/screenshot.d.ts +14 -0
  47. package/dist/commands/screenshot.js +1274 -0
  48. package/dist/commands/screenshot.js.map +7 -0
  49. package/dist/commands/send-signal.d.ts +10 -0
  50. package/dist/commands/send-signal.js +1267 -0
  51. package/dist/commands/send-signal.js.map +7 -0
  52. package/dist/commands/type.d.ts +10 -0
  53. package/dist/commands/type.js +1267 -0
  54. package/dist/commands/type.js.map +7 -0
  55. package/dist/commands/uninstall.d.ts +14 -0
  56. package/dist/commands/uninstall.js +124 -0
  57. package/dist/commands/uninstall.js.map +7 -0
  58. package/dist/commands/wait-for-exit.d.ts +14 -0
  59. package/dist/commands/wait-for-exit.js +1268 -0
  60. package/dist/commands/wait-for-exit.js.map +7 -0
  61. package/dist/commands/wait-for.d.ts +20 -0
  62. package/dist/commands/wait-for.js +1275 -0
  63. package/dist/commands/wait-for.js.map +7 -0
  64. package/dist/exports.compile-check.js +1 -1
  65. package/dist/exports.compile-check.js.map +7 -0
  66. package/dist/index.js +1118 -5
  67. package/dist/index.js.map +7 -0
  68. package/dist/keys.js +58 -49
  69. package/dist/keys.js.map +7 -0
  70. package/dist/templates/terminal-pilot.md +45 -0
  71. package/dist/terminal-buffer.d.ts +9 -1
  72. package/dist/terminal-buffer.js +525 -425
  73. package/dist/terminal-buffer.js.map +7 -0
  74. package/dist/terminal-pilot.js +1105 -35
  75. package/dist/terminal-pilot.js.map +7 -0
  76. package/dist/terminal-screen.js +108 -26
  77. package/dist/terminal-screen.js.map +7 -0
  78. package/dist/terminal-session.js +1020 -292
  79. package/dist/terminal-session.js.map +7 -0
  80. package/dist/testing/cli-repl.d.ts +15 -0
  81. package/dist/testing/cli-repl.js +1911 -0
  82. package/dist/testing/cli-repl.js.map +7 -0
  83. package/dist/testing/qa-cli.d.ts +1 -0
  84. package/dist/testing/qa-cli.js +2828 -0
  85. package/dist/testing/qa-cli.js.map +7 -0
  86. package/package.json +26 -5
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/terminal-buffer.ts"],
4
+ "sourcesContent": ["type Cell = ([number, string] & { style?: string }) | null;\ntype Row = Cell[];\n\ninterface SgrStyleState {\n bold: boolean;\n dim: boolean;\n italic: boolean;\n underline: boolean;\n inverse: boolean;\n strikethrough: boolean;\n fg?: number[];\n bg?: number[];\n}\n\nconst RESET_SGR = \"\\x1b[0m\";\n\nconst enum State {\n Normal,\n Escape,\n Csi,\n Osc,\n Str,\n EscCharset,\n EscHash,\n}\n\nexport class TerminalBuffer {\n private _cols: number;\n private _rows: number;\n private _screen: Row[];\n private _cursorX = 0;\n private _cursorY = 0;\n private _savedCursor = { x: 0, y: 0 };\n private _scrollTop = 0;\n private _scrollBottom: number;\n private _state = State.Normal;\n private _csiParams = \"\";\n private _csiPrivate = \"\";\n private _style: SgrStyleState = createDefaultStyleState();\n private _styleSequence = \"\";\n\n readonly displayBuffer: {\n readonly cursorX: number;\n readonly cursorY: number;\n readonly data: Array<Row | undefined>;\n };\n\n constructor(cols: number, rows: number) {\n this._cols = cols;\n this._rows = rows;\n this._scrollBottom = rows - 1;\n this._screen = this._makeScreen(cols, rows);\n\n this.displayBuffer = Object.defineProperties(\n {} as { readonly cursorX: number; readonly cursorY: number; readonly data: Array<Row | undefined> },\n {\n cursorX: { get: () => this._cursorX, enumerable: true },\n cursorY: { get: () => this._cursorY, enumerable: true },\n data: { get: () => this._screen as Array<Row | undefined>, enumerable: true },\n }\n );\n }\n\n write(data: string): void {\n for (const ch of data) {\n this._feed(ch);\n }\n }\n\n renderLine(row: number): string {\n const cells = this._screen[row] ?? [];\n let lastVisibleCell = -1;\n\n for (let index = cells.length - 1; index >= 0; index -= 1) {\n if (cells[index] !== null) {\n lastVisibleCell = index;\n break;\n }\n }\n\n if (lastVisibleCell === -1) {\n return \"\";\n }\n\n let line = \"\";\n let activeStyle = \"\";\n\n for (let index = 0; index <= lastVisibleCell; index += 1) {\n const cell = cells[index];\n const cellStyle = cell?.style ?? \"\";\n\n if (cellStyle !== activeStyle) {\n line += cellStyle.length > 0 ? cellStyle : RESET_SGR;\n activeStyle = cellStyle;\n }\n\n line += cell?.[1] ?? \" \";\n }\n\n if (activeStyle.length > 0) {\n line += RESET_SGR;\n }\n\n return line;\n }\n\n resize(cols: number, rows: number): void {\n // Adjust row count\n while (this._screen.length < rows) {\n this._screen.push(this._makeRow(cols));\n }\n this._screen.length = rows;\n\n // Adjust col count for each row\n for (let y = 0; y < rows; y++) {\n const row = this._screen[y] ?? this._makeRow(cols);\n while (row.length < cols) row.push(null);\n row.length = cols;\n this._screen[y] = row;\n }\n\n this._cols = cols;\n this._rows = rows;\n this._scrollTop = 0;\n this._scrollBottom = rows - 1;\n this._cursorX = this._clamp(this._cursorX, 0, cols - 1);\n this._cursorY = this._clamp(this._cursorY, 0, rows - 1);\n }\n\n private _makeScreen(cols: number, rows: number): Row[] {\n return Array.from({ length: rows }, () => this._makeRow(cols));\n }\n\n private _makeRow(cols: number): Row {\n return Array(cols).fill(null) as Row;\n }\n\n private _clamp(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(max, value));\n }\n\n private _setChar(y: number, x: number, ch: string): void {\n const row = this._screen[y];\n if (row && x >= 0 && x < this._cols) {\n const cell = [ch.charCodeAt(0), ch] as Exclude<Cell, null>;\n\n if (this._styleSequence.length > 0) {\n Object.defineProperty(cell, \"style\", {\n value: this._styleSequence,\n writable: true,\n configurable: true\n });\n }\n\n row[x] = cell;\n }\n }\n\n private _eraseLine(y: number, fromX: number, toX: number): void {\n const row = this._screen[y];\n if (!row) return;\n for (let x = fromX; x <= toX && x < this._cols; x++) {\n row[x] = null;\n }\n }\n\n private _scrollUp(count: number): void {\n for (let i = 0; i < count; i++) {\n this._screen.splice(this._scrollTop, 1);\n this._screen.splice(this._scrollBottom, 0, this._makeRow(this._cols));\n }\n }\n\n private _scrollDown(count: number): void {\n for (let i = 0; i < count; i++) {\n this._screen.splice(this._scrollBottom, 1);\n this._screen.splice(this._scrollTop, 0, this._makeRow(this._cols));\n }\n }\n\n private _newline(): void {\n if (this._cursorY === this._scrollBottom) {\n this._scrollUp(1);\n } else {\n this._cursorY = Math.min(this._cursorY + 1, this._rows - 1);\n }\n }\n\n private _parseCsiParams(): number[] {\n if (!this._csiParams) return [];\n return this._csiParams.split(\";\").map((s) => (s === \"\" ? 0 : parseInt(s, 10)));\n }\n\n private _execCsi(final: string): void {\n const params = this._parseCsiParams();\n const p0 = params[0] ?? 0;\n const p1 = params[1] ?? 0;\n\n if (this._csiPrivate === \"?\") {\n if (final === \"h\" || final === \"l\") {\n // Only handle alt screen (1049) \u2014 ignore everything else\n if (params.includes(1049)) {\n if (final === \"h\") {\n this._screen = this._makeScreen(this._cols, this._rows);\n this._cursorX = 0;\n this._cursorY = 0;\n } else {\n this._screen = this._makeScreen(this._cols, this._rows);\n this._cursorX = 0;\n this._cursorY = 0;\n }\n this._resetStyle();\n }\n }\n return;\n }\n\n switch (final) {\n case \"A\": // cursor up\n this._cursorY = this._clamp(this._cursorY - Math.max(1, p0), 0, this._rows - 1);\n break;\n case \"B\": // cursor down\n this._cursorY = this._clamp(this._cursorY + Math.max(1, p0), 0, this._rows - 1);\n break;\n case \"C\": // cursor forward\n case \"a\":\n this._cursorX = this._clamp(this._cursorX + Math.max(1, p0), 0, this._cols - 1);\n break;\n case \"D\": // cursor backward\n this._cursorX = this._clamp(this._cursorX - Math.max(1, p0), 0, this._cols - 1);\n break;\n case \"E\": // cursor next line\n this._cursorY = this._clamp(this._cursorY + Math.max(1, p0), 0, this._rows - 1);\n this._cursorX = 0;\n break;\n case \"F\": // cursor preceding line\n this._cursorY = this._clamp(this._cursorY - Math.max(1, p0), 0, this._rows - 1);\n this._cursorX = 0;\n break;\n case \"G\": // cursor horizontal absolute\n case \"`\":\n this._cursorX = this._clamp(Math.max(1, p0) - 1, 0, this._cols - 1);\n break;\n case \"H\": // cursor position\n case \"f\":\n this._cursorY = this._clamp(Math.max(1, p0) - 1, 0, this._rows - 1);\n this._cursorX = this._clamp(Math.max(1, p1) - 1, 0, this._cols - 1);\n break;\n case \"I\": // cursor forward tabulation\n for (let i = 0; i < Math.max(1, p0); i++) {\n this._cursorX = Math.min(this._cols - 1, (Math.floor(this._cursorX / 8) + 1) * 8);\n }\n break;\n case \"J\": // erase in display\n if (p0 === 0) {\n this._eraseLine(this._cursorY, this._cursorX, this._cols - 1);\n for (let y = this._cursorY + 1; y < this._rows; y++) this._eraseLine(y, 0, this._cols - 1);\n } else if (p0 === 1) {\n for (let y = 0; y < this._cursorY; y++) this._eraseLine(y, 0, this._cols - 1);\n this._eraseLine(this._cursorY, 0, this._cursorX);\n } else if (p0 === 2 || p0 === 3) {\n for (let y = 0; y < this._rows; y++) this._eraseLine(y, 0, this._cols - 1);\n }\n break;\n case \"K\": // erase in line\n if (p0 === 0) this._eraseLine(this._cursorY, this._cursorX, this._cols - 1);\n else if (p0 === 1) this._eraseLine(this._cursorY, 0, this._cursorX);\n else if (p0 === 2) this._eraseLine(this._cursorY, 0, this._cols - 1);\n break;\n case \"X\": // erase characters (ECH)\n this._eraseLine(this._cursorY, this._cursorX, this._cursorX + Math.max(1, p0) - 1);\n break;\n case \"L\": { // insert lines\n const n = Math.max(1, p0);\n for (let i = 0; i < n; i++) {\n this._screen.splice(this._scrollBottom, 1);\n this._screen.splice(this._cursorY, 0, this._makeRow(this._cols));\n }\n break;\n }\n case \"M\": { // delete lines\n const n = Math.max(1, p0);\n for (let i = 0; i < n; i++) {\n this._screen.splice(this._cursorY, 1);\n this._screen.splice(this._scrollBottom, 0, this._makeRow(this._cols));\n }\n break;\n }\n case \"P\": { // delete characters\n const row = this._screen[this._cursorY];\n if (row) {\n const n = Math.max(1, p0);\n row.splice(this._cursorX, n);\n while (row.length < this._cols) row.push(null);\n }\n break;\n }\n case \"@\": { // insert blank characters\n const row = this._screen[this._cursorY];\n if (row) {\n const n = Math.max(1, p0);\n for (let i = 0; i < n; i++) row.splice(this._cursorX, 0, null);\n row.splice(this._cols);\n }\n break;\n }\n case \"S\": // scroll up\n this._scrollUp(Math.max(1, p0));\n break;\n case \"T\": // scroll down\n if (params.length <= 1) this._scrollDown(Math.max(1, p0));\n break;\n case \"Z\": { // cursor backward tabulation\n const n = Math.max(1, p0);\n for (let i = 0; i < n; i++) {\n this._cursorX = Math.max(0, (Math.ceil(this._cursorX / 8) - 1) * 8);\n }\n break;\n }\n case \"d\": // line position absolute\n this._cursorY = this._clamp(Math.max(1, p0) - 1, 0, this._rows - 1);\n break;\n case \"e\": // vertical position relative\n this._cursorY = this._clamp(this._cursorY + Math.max(1, p0), 0, this._rows - 1);\n break;\n case \"r\": { // set scrolling region\n const top = this._clamp(Math.max(1, p0) - 1, 0, this._rows - 1);\n const bottom = this._clamp((p1 === 0 ? this._rows : p1) - 1, 0, this._rows - 1);\n if (top < bottom) {\n this._scrollTop = top;\n this._scrollBottom = bottom;\n }\n this._cursorX = 0;\n this._cursorY = 0;\n break;\n }\n case \"s\": // save cursor\n this._savedCursor = { x: this._cursorX, y: this._cursorY };\n break;\n case \"u\": // restore cursor\n this._cursorX = this._clamp(this._savedCursor.x, 0, this._cols - 1);\n this._cursorY = this._clamp(this._savedCursor.y, 0, this._rows - 1);\n break;\n case \"m\":\n this._applySgr(params);\n break;\n default:\n break;\n }\n }\n\n private _feed(ch: string): void {\n const code = ch.charCodeAt(0);\n\n switch (this._state) {\n case State.Normal:\n this._feedNormal(ch, code);\n break;\n case State.Escape:\n this._feedEscape(ch, code);\n break;\n case State.Csi:\n this._feedCsi(ch, code);\n break;\n case State.Osc:\n // consume until BEL or ESC (ESC \\ = ST)\n if (code === 0x07 || code === 0x9c) {\n this._state = State.Normal;\n } else if (code === 0x1b) {\n // next char should be `\\` \u2014 just return to normal, it will be consumed\n this._state = State.Normal;\n }\n break;\n case State.Str:\n // consume until ST (0x9c) or BEL\n if (code === 0x9c || code === 0x07) {\n this._state = State.Normal;\n } else if (code === 0x1b) {\n this._state = State.Normal;\n }\n break;\n case State.EscCharset:\n // consume one character for charset designation\n this._state = State.Normal;\n break;\n case State.EscHash:\n // consume one character for line attributes\n this._state = State.Normal;\n break;\n }\n }\n\n private _feedNormal(ch: string, code: number): void {\n if (code === 0x1b) {\n this._state = State.Escape;\n } else if (code === 0x9b) {\n // C1 CSI\n this._csiParams = \"\";\n this._csiPrivate = \"\";\n this._state = State.Csi;\n } else if (code === 0x9d) {\n // C1 OSC\n this._state = State.Osc;\n } else if (code === 0x90 || code === 0x98 || code === 0x9e || code === 0x9f) {\n // DCS, SOS, PM, APC\n this._state = State.Str;\n } else if (code === 0x07 || code === 0x05 || code === 0x06) {\n // BEL, ENQ, ACK \u2014 ignore\n } else if (code === 0x08) {\n // BS\n if (this._cursorX > 0) this._cursorX--;\n } else if (code === 0x7f) {\n // DEL\n if (this._cursorX > 0) {\n this._cursorX--;\n this._setChar(this._cursorY, this._cursorX, \" \");\n }\n } else if (code === 0x09) {\n // HT\n this._cursorX = Math.min(this._cols - 1, (Math.floor(this._cursorX / 8) + 1) * 8);\n } else if (code === 0x0a || code === 0x0b || code === 0x0c) {\n // LF, VT, FF\n this._newline();\n } else if (code === 0x0d) {\n // CR\n this._cursorX = 0;\n } else if (code === 0x0e || code === 0x0f) {\n // SO, SI \u2014 charset switch, ignore\n } else if (code >= 0x20 && code !== 0x7f) {\n // Printable character (including multi-byte Unicode via code points)\n this._setChar(this._cursorY, this._cursorX, ch);\n this._cursorX++;\n if (this._cursorX >= this._cols) {\n // Auto-wrap\n this._cursorX = 0;\n this._newline();\n }\n }\n }\n\n private _feedEscape(ch: string, code: number): void {\n this._state = State.Normal;\n\n if (code === 0x5b) {\n // ESC [ = CSI\n this._csiParams = \"\";\n this._csiPrivate = \"\";\n this._state = State.Csi;\n } else if (code === 0x5d) {\n // ESC ] = OSC\n this._state = State.Osc;\n } else if (code === 0x50 || code === 0x58 || code === 0x5e || code === 0x5f) {\n // DCS, SOS, PM, APC\n this._state = State.Str;\n } else if (code === 0x28 || code === 0x29 || code === 0x2a || code === 0x2b || code === 0x2d || code === 0x2e) {\n // ESC ( ) * + - . = charset designation (consume next char)\n this._state = State.EscCharset;\n } else if (code === 0x23) {\n // ESC # = line attributes (consume next char)\n this._state = State.EscHash;\n } else if (code === 0x37) {\n // ESC 7 = save cursor\n this._savedCursor = { x: this._cursorX, y: this._cursorY };\n } else if (code === 0x38) {\n // ESC 8 = restore cursor\n this._cursorX = this._clamp(this._savedCursor.x, 0, this._cols - 1);\n this._cursorY = this._clamp(this._savedCursor.y, 0, this._rows - 1);\n } else if (code === 0x44) {\n // ESC D = index (LF)\n this._newline();\n } else if (code === 0x45) {\n // ESC E = next line\n this._cursorX = 0;\n this._newline();\n } else if (code === 0x4d) {\n // ESC M = reverse index\n if (this._cursorY === this._scrollTop) {\n this._scrollDown(1);\n } else {\n this._cursorY = Math.max(0, this._cursorY - 1);\n }\n } else if (code === 0x48) {\n // ESC H = tab set (ignore)\n } else if (code === 0x63) {\n // ESC c = full reset\n this._screen = this._makeScreen(this._cols, this._rows);\n this._cursorX = 0;\n this._cursorY = 0;\n this._savedCursor = { x: 0, y: 0 };\n this._scrollTop = 0;\n this._scrollBottom = this._rows - 1;\n this._resetStyle();\n }\n // All other ESC sequences: two-char, already consumed \u2014 ignore\n }\n\n private _feedCsi(ch: string, code: number): void {\n if (code >= 0x40 && code <= 0x7e) {\n // Final byte\n this._execCsi(ch);\n this._state = State.Normal;\n } else if (code === 0x3f || code === 0x21 || code === 0x3e || code === 0x20) {\n // Private/intermediate marker (?, !, >, space)\n this._csiPrivate = ch;\n } else if ((code >= 0x30 && code <= 0x39) || code === 0x3b) {\n // Digit or semicolon \u2014 parameter byte\n this._csiParams += ch;\n }\n // Other bytes ignored\n }\n\n private _resetStyle(): void {\n this._style = createDefaultStyleState();\n this._styleSequence = \"\";\n }\n\n private _applySgr(params: number[]): void {\n const normalizedParams = params.length === 0 ? [0] : params;\n\n for (let index = 0; index < normalizedParams.length; index += 1) {\n const value = normalizedParams[index] ?? 0;\n\n switch (value) {\n case 0:\n this._resetStyle();\n break;\n case 1:\n this._style.bold = true;\n break;\n case 2:\n this._style.dim = true;\n break;\n case 3:\n this._style.italic = true;\n break;\n case 4:\n this._style.underline = true;\n break;\n case 7:\n this._style.inverse = true;\n break;\n case 9:\n this._style.strikethrough = true;\n break;\n case 21:\n case 22:\n this._style.bold = false;\n this._style.dim = false;\n break;\n case 23:\n this._style.italic = false;\n break;\n case 24:\n this._style.underline = false;\n break;\n case 27:\n this._style.inverse = false;\n break;\n case 29:\n this._style.strikethrough = false;\n break;\n case 39:\n this._style.fg = undefined;\n break;\n case 49:\n this._style.bg = undefined;\n break;\n case 38:\n case 48:\n index = this._applyExtendedColor(value, normalizedParams, index);\n break;\n default:\n if ((value >= 30 && value <= 37) || (value >= 90 && value <= 97)) {\n this._style.fg = [value];\n } else if ((value >= 40 && value <= 47) || (value >= 100 && value <= 107)) {\n this._style.bg = [value];\n }\n break;\n }\n }\n\n this._styleSequence = serializeStyleState(this._style);\n }\n\n private _applyExtendedColor(control: 38 | 48, params: number[], index: number): number {\n const mode = params[index + 1];\n const target = control === 38 ? \"fg\" : \"bg\";\n\n if (mode === 5) {\n const paletteIndex = params[index + 2];\n if (paletteIndex !== undefined) {\n this._style[target] = [control, 5, paletteIndex];\n return index + 2;\n }\n\n return index;\n }\n\n if (mode === 2) {\n const red = params[index + 2];\n const green = params[index + 3];\n const blue = params[index + 4];\n if (red !== undefined && green !== undefined && blue !== undefined) {\n this._style[target] = [control, 2, red, green, blue];\n return index + 4;\n }\n }\n\n return index;\n }\n}\n\nfunction createDefaultStyleState(): SgrStyleState {\n return {\n bold: false,\n dim: false,\n italic: false,\n underline: false,\n inverse: false,\n strikethrough: false\n };\n}\n\nfunction serializeStyleState(state: SgrStyleState): string {\n const codes: number[] = [];\n\n if (state.bold) {\n codes.push(1);\n }\n if (state.dim) {\n codes.push(2);\n }\n if (state.italic) {\n codes.push(3);\n }\n if (state.underline) {\n codes.push(4);\n }\n if (state.inverse) {\n codes.push(7);\n }\n if (state.strikethrough) {\n codes.push(9);\n }\n if (state.fg !== undefined) {\n codes.push(...state.fg);\n }\n if (state.bg !== undefined) {\n codes.push(...state.bg);\n }\n\n return codes.length === 0 ? \"\" : `\\x1b[${codes.join(\";\")}m`;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }