{"_id":"ansi-sequence-parser","_rev":"3304072","name":"ansi-sequence-parser","description":"A parser for ANSI escape sequences","dist-tags":{"latest":"1.1.1"},"maintainers":[{"name":"bmealey","email":"blakemealey@gmail.com"}],"time":{"modified":"2024-06-11T02:25:04.000Z","created":"2023-01-29T02:47:29.203Z","1.1.1":"2023-07-26T23:38:45.769Z","1.1.0":"2023-01-29T02:53:59.180Z","1.0.0":"2023-01-29T02:47:29.203Z"},"users":{},"author":{"name":"blake-mealey"},"repository":{"type":"git","url":"git+https://github.com/blake-mealey/ansi-sequence-parser.git"},"versions":{"1.1.1":{"name":"ansi-sequence-parser","description":"A parser for ANSI escape sequences","repository":{"type":"git","url":"git+https://github.com/blake-mealey/ansi-sequence-parser.git"},"homepage":"https://github.com/blake-mealey/ansi-sequence-parser#readme","version":"1.1.1","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.js"}},"keywords":["ansi","sequences","parser"],"author":{"name":"blake-mealey"},"license":"MIT","devDependencies":{"@changesets/cli":"^2.26.0","tsup":"^6.5.0","typescript":"^4.9.4","vitest":"^0.28.3"},"packageManager":"pnpm@7.18.2","scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","test":"vitest","changeset":"changeset"},"bugs":{"url":"https://github.com/blake-mealey/ansi-sequence-parser/issues"},"_id":"ansi-sequence-parser@1.1.1","_integrity":"sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==","_resolved":"/private/var/folders/15/hv9mrt8n23nfjtxmh46sm0zr0000gn/T/9cb773fc780732d3826462f00fcb4ddf/ansi-sequence-parser-1.1.1.tgz","_from":"file:ansi-sequence-parser-1.1.1.tgz","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"shasum":"e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf","size":4372,"noattachment":false,"key":"/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/ansi-sequence-parser/download/ansi-sequence-parser-1.1.1.tgz"},"_npmUser":{"name":"bmealey","email":"blakemealey@gmail.com"},"directories":{},"maintainers":[{"name":"bmealey","email":"blakemealey@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ansi-sequence-parser_1.1.1_1690414725603_0.6891993724178298"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-07-26T23:38:45.769Z","publish_time":1690414725769,"_source_registry_name":"default","_cnpm_publish_time":1690414725769},"1.1.0":{"name":"ansi-sequence-parser","description":"A parser for ANSI escape sequences","repository":{"type":"git","url":"git+https://github.com/blake-mealey/ansi-sequence-parser.git"},"homepage":"https://github.com/blake-mealey/ansi-sequence-parser#readme","version":"1.1.0","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.js"}},"keywords":["ansi","sequences","parser"],"author":{"name":"blake-mealey"},"license":"MIT","devDependencies":{"@changesets/cli":"^2.26.0","tsup":"^6.5.0","typescript":"^4.9.4","vitest":"^0.28.3"},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","test":"vitest","changeset":"changeset"},"bugs":{"url":"https://github.com/blake-mealey/ansi-sequence-parser/issues"},"_id":"ansi-sequence-parser@1.1.0","_integrity":"sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==","_resolved":"/private/var/folders/15/hv9mrt8n23nfjtxmh46sm0zr0000gn/T/9ab53e81149c90f5621cafe4e7edf8c5/ansi-sequence-parser-1.1.0.tgz","_from":"file:ansi-sequence-parser-1.1.0.tgz","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"shasum":"4d790f31236ac20366b23b3916b789e1bde39aed","size":4253,"noattachment":false,"key":"/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/ansi-sequence-parser/download/ansi-sequence-parser-1.1.0.tgz"},"_npmUser":{"name":"bmealey","email":"blakemealey@gmail.com"},"directories":{},"maintainers":[{"name":"bmealey","email":"blakemealey@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ansi-sequence-parser_1.1.0_1674960838995_0.707705296581399"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-29T02:53:59.180Z","publish_time":1674960839180,"_cnpm_publish_time":1674960839180},"1.0.0":{"name":"ansi-sequence-parser","description":"A parser for ANSI escape sequences","repository":{"type":"git","url":"git+https://github.com/blake-mealey/ansi-sequence-parser.git"},"homepage":"https://github.com/blake-mealey/ansi-sequence-parser#readme","version":"1.0.0","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.cjs","import":"./dist/index.js"}},"keywords":["ansi","sequences","parser"],"author":{"name":"blake-mealey"},"license":"MIT","devDependencies":{"@changesets/cli":"^2.26.0","tsup":"^6.5.0","typescript":"^4.9.4","vitest":"^0.28.3"},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","test":"vitest","changeset":"changeset"},"bugs":{"url":"https://github.com/blake-mealey/ansi-sequence-parser/issues"},"_id":"ansi-sequence-parser@1.0.0","_integrity":"sha512-7Lw0mFv0FjfsjfKsXOX9hwar866Fa577Fq1K1vuj63ccSMqyZcaVYPo46Z2GfS7X6uUT2lMR/1AcEDaJHgRQJA==","_resolved":"/private/var/folders/15/hv9mrt8n23nfjtxmh46sm0zr0000gn/T/9b86ae4615d80c420991b47160de8472/ansi-sequence-parser-1.0.0.tgz","_from":"file:ansi-sequence-parser-1.0.0.tgz","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"shasum":"25d2219a3c34adaed987561b8ec479ef38b3b598","size":3997,"noattachment":false,"key":"/ansi-sequence-parser/-/ansi-sequence-parser-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/ansi-sequence-parser/download/ansi-sequence-parser-1.0.0.tgz"},"_npmUser":{"name":"bmealey","email":"blakemealey@gmail.com"},"directories":{},"maintainers":[{"name":"bmealey","email":"blakemealey@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ansi-sequence-parser_1.0.0_1674960449028_0.8293819476917954"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2023-01-29T02:47:29.203Z","publish_time":1674960449203,"_cnpm_publish_time":1674960449203}},"readme":"# `ansi-sequence-parser`\n\nParse ANSI escape sequences into a readable format for things like generating pretty HTML.\n\nInstall with your favourite package manager:\n\n```sh\npnpm install ansi-sequence-parser\nyarn add ansi-sequence-parser\nnpm install ansi-sequence-parser\n```\n\n## Parsing\n\nToken format:\n\n```ts\ninterface ParseToken {\n  // The text content of the token\n  value: string;\n  // The foreground color\n  foreground: Color | null;\n  // The background color\n  background: Color | null;\n  // A Set of the applied decorations\n  decorations: Set<DecorationType>;\n}\n```\n\nParse full input at once:\n\n```ts\nimport { parseAnsiSequences } from 'ansi-sequence-parser';\n\nconst tokens = parseAnsiSequences(input);\n```\n\nIf you want to parse your input in multiple chunks, make sure to create a parser so that you can maintain\nstate between chunks:\n\n```ts\nimport { createAnsiSequenceParser } from 'ansi-sequence-parser';\n\nconst parser = createAnsiSequenceParser();\n\nconst tokensByLine = input.split(/\\r?\\n/).map((line) => parser.parse(line));\n```\n\n## Colors\n\nColors format:\n\n```ts\n// A named ANSI color, e.g. `magenta` or `brightBlue`\nexport interface NamedColor {\n  type: 'named';\n  name: ColorName;\n}\n\n// A color-table lookup\nexport interface TableColor {\n  type: 'table';\n  index: number;\n}\n\n// An RGB color\nexport interface RgbColor {\n  type: 'rgb';\n  rgb: [number, number, number];\n}\n\nexport type Color = NamedColor | TableColor | RgbColor;\n```\n\nIn order to interpret all of the above color types as a hex code, you can create a color palette:\n\n```ts\nimport { parseAnsiSequences, createColorPalette } from 'ansi-sequence-parser';\n\nconst tokens = parseAnsiSequences(input);\nconst colorPalette = createColorPalette();\n\nfor (const token of tokens) {\n  if (token.foreground) {\n    const foregroundValue = colorPalette.value(token.foreground);\n  }\n  if (token.background) {\n    const backgroundValue = colorPalette.value(token.background);\n  }\n}\n```\n\nYou can also specify a custom named colors map:\n\n```ts\nimport { parseAnsiSequences, createColorPalette } from 'ansi-sequence-parser';\n\nconst tokens = parseAnsiSequences(input);\nconst colorPalette = createColorPalette({\n  black: '#000000',\n  red: '#bb0000',\n  green: '#00bb00',\n  yellow: '#bbbb00',\n  blue: '#0000bb',\n  magenta: '#ff00ff',\n  cyan: '#00bbbb',\n  white: '#eeeeee',\n  brightBlack: '#555555',\n  brightRed: '#ff5555',\n  brightGreen: '#00ff00',\n  brightYellow: '#ffff55',\n  brightBlue: '#5555ff',\n  brightMagenta: '#ff55ff',\n  brightCyan: '#55ffff',\n  brightWhite: '#ffffff',\n});\n```\n\nIf you want to modify the default named colors map, you can import the `defaultNamedColorsMap`:\n\n```ts\nimport {\n  parseAnsiSequences,\n  createColorPalette,\n  defaultNamedColorsMap,\n} from 'ansi-sequence-parser';\n\nconst tokens = parseAnsiSequences(input);\nconst colorPalette = createColorPalette({\n  ...defaultNamedColorsMap,\n  blue: '#0000cc',\n});\n```\n","_attachments":{},"homepage":"https://github.com/blake-mealey/ansi-sequence-parser#readme","bugs":{"url":"https://github.com/blake-mealey/ansi-sequence-parser/issues"},"license":"MIT"}