@peteanderson/ansi 2.0.1 → 2.1.1
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 +38 -11
- package/dist/{ansi.d.ts → cjs/ansi.d.ts} +17 -16
- package/dist/cjs/ansi.d.ts.map +1 -0
- package/dist/{ansi.js → cjs/ansi.js} +3 -2
- package/dist/cjs/ansi.js.map +1 -0
- package/dist/cjs/caret.d.ts.map +1 -0
- package/dist/cjs/caret.js.map +1 -0
- package/dist/cjs/erase.d.ts.map +1 -0
- package/dist/cjs/erase.js.map +1 -0
- package/dist/cjs/features/build.d.ts.map +1 -0
- package/dist/cjs/features/build.js.map +1 -0
- package/dist/cjs/features/detect.d.ts.map +1 -0
- package/dist/cjs/features/detect.js.map +1 -0
- package/dist/cjs/features/features.d.ts.map +1 -0
- package/dist/{features → cjs/features}/features.js +1 -1
- package/dist/cjs/features/features.js.map +1 -0
- package/dist/cjs/features/index.d.ts.map +1 -0
- package/dist/cjs/features/index.js.map +1 -0
- package/dist/cjs/features/types.d.ts.map +1 -0
- package/dist/cjs/features/types.js.map +1 -0
- package/dist/cjs/index.d.ts +96 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +39 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/pad.d.ts.map +1 -0
- package/dist/cjs/pad.js.map +1 -0
- package/dist/cjs/patterns.d.ts.map +1 -0
- package/dist/{patterns.js → cjs/patterns.js} +1 -1
- package/dist/cjs/patterns.js.map +1 -0
- package/dist/cjs/scroll.d.ts.map +1 -0
- package/dist/cjs/scroll.js.map +1 -0
- package/dist/cjs/sgr/color/channel.d.ts.map +1 -0
- package/dist/cjs/sgr/color/channel.js.map +1 -0
- package/dist/cjs/sgr/color/color.d.ts.map +1 -0
- package/dist/cjs/sgr/color/color.js.map +1 -0
- package/dist/cjs/sgr/color/context.d.ts.map +1 -0
- package/dist/cjs/sgr/color/context.js.map +1 -0
- package/dist/cjs/sgr/color/index.d.ts.map +1 -0
- package/dist/cjs/sgr/color/index.js.map +1 -0
- package/dist/cjs/sgr/color/rgb.d.ts.map +1 -0
- package/dist/cjs/sgr/color/rgb.js.map +1 -0
- package/dist/cjs/sgr/color/utils.d.ts.map +1 -0
- package/dist/cjs/sgr/color/utils.js.map +1 -0
- package/dist/cjs/sgr/combine.d.ts.map +1 -0
- package/dist/cjs/sgr/combine.js.map +1 -0
- package/dist/cjs/sgr/format-builder.d.ts.map +1 -0
- package/dist/cjs/sgr/format-builder.js.map +1 -0
- package/dist/cjs/sgr/index.d.ts.map +1 -0
- package/dist/cjs/sgr/index.js.map +1 -0
- package/dist/cjs/sgr/lazy.d.ts.map +1 -0
- package/dist/cjs/sgr/lazy.js.map +1 -0
- package/dist/cjs/sgr/reset.d.ts.map +1 -0
- package/dist/cjs/sgr/reset.js.map +1 -0
- package/dist/cjs/sgr/sgr.d.ts.map +1 -0
- package/dist/cjs/sgr/sgr.js.map +1 -0
- package/dist/cjs/sgr/style.d.ts.map +1 -0
- package/dist/cjs/sgr/style.js.map +1 -0
- package/dist/cjs/sgr/types.d.ts.map +1 -0
- package/dist/{features → cjs/sgr}/types.js.map +1 -1
- package/dist/cjs/simplify/atom.d.ts.map +1 -0
- package/dist/cjs/simplify/atom.js.map +1 -0
- package/dist/cjs/simplify/index.d.ts.map +1 -0
- package/dist/cjs/simplify/index.js.map +1 -0
- package/dist/cjs/simplify/lookup.d.ts.map +1 -0
- package/dist/cjs/simplify/lookup.js.map +1 -0
- package/dist/cjs/simplify/simplify.d.ts.map +1 -0
- package/dist/{simplify → cjs/simplify}/simplify.js +4 -3
- package/dist/cjs/simplify/simplify.js.map +1 -0
- package/dist/{simplify → cjs/simplify}/state.d.ts +2 -1
- package/dist/cjs/simplify/state.d.ts.map +1 -0
- package/dist/{simplify → cjs/simplify}/state.js +32 -7
- package/dist/cjs/simplify/state.js.map +1 -0
- package/dist/cjs/simplify/types.d.ts.map +1 -0
- package/dist/cjs/simplify/types.js.map +1 -0
- package/dist/cjs/simplify/utils.d.ts.map +1 -0
- package/dist/cjs/simplify/utils.js.map +1 -0
- package/dist/cjs/slice.d.ts.map +1 -0
- package/dist/{slice.js → cjs/slice.js} +1 -1
- package/dist/cjs/slice.js.map +1 -0
- package/dist/cjs/strip.d.ts.map +1 -0
- package/dist/cjs/strip.js.map +1 -0
- package/dist/cjs/terminal.d.ts.map +1 -0
- package/dist/cjs/terminal.js.map +1 -0
- package/dist/cjs/typed-object.d.ts.map +1 -0
- package/dist/cjs/typed-object.js.map +1 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/{sgr → cjs}/types.js.map +1 -1
- package/dist/esm/ansi.d.ts +85 -0
- package/dist/esm/ansi.d.ts.map +1 -0
- package/dist/esm/ansi.js +33 -0
- package/dist/esm/ansi.js.map +1 -0
- package/dist/esm/caret.d.ts +30 -0
- package/dist/esm/caret.d.ts.map +1 -0
- package/dist/esm/caret.js +64 -0
- package/dist/{caret.js.map → esm/caret.js.map} +1 -1
- package/dist/esm/erase.d.ts +17 -0
- package/dist/esm/erase.d.ts.map +1 -0
- package/dist/esm/erase.js +28 -0
- package/dist/{erase.js.map → esm/erase.js.map} +1 -1
- package/dist/esm/features/build.d.ts +7 -0
- package/dist/esm/features/build.d.ts.map +1 -0
- package/dist/esm/features/build.js +35 -0
- package/dist/esm/features/build.js.map +1 -0
- package/dist/esm/features/detect.d.ts +4 -0
- package/dist/esm/features/detect.d.ts.map +1 -0
- package/dist/esm/features/detect.js +29 -0
- package/dist/esm/features/detect.js.map +1 -0
- package/dist/esm/features/features.d.ts +3 -0
- package/dist/esm/features/features.d.ts.map +1 -0
- package/dist/esm/features/features.js +25 -0
- package/dist/esm/features/features.js.map +1 -0
- package/dist/esm/features/index.d.ts +3 -0
- package/dist/esm/features/index.d.ts.map +1 -0
- package/dist/esm/features/index.js +2 -0
- package/dist/esm/features/index.js.map +1 -0
- package/dist/esm/features/types.d.ts +12 -0
- package/dist/esm/features/types.d.ts.map +1 -0
- package/dist/esm/features/types.js +2 -0
- package/dist/esm/features/types.js.map +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/pad.d.ts +13 -0
- package/dist/esm/pad.d.ts.map +1 -0
- package/dist/esm/pad.js +12 -0
- package/dist/esm/pad.js.map +1 -0
- package/dist/esm/patterns.d.ts +4 -0
- package/dist/esm/patterns.d.ts.map +1 -0
- package/dist/esm/patterns.js +42 -0
- package/dist/esm/patterns.js.map +1 -0
- package/dist/esm/scroll.d.ts +8 -0
- package/dist/esm/scroll.d.ts.map +1 -0
- package/dist/esm/scroll.js +10 -0
- package/dist/esm/scroll.js.map +1 -0
- package/dist/esm/sgr/color/channel.d.ts +4 -0
- package/dist/esm/sgr/color/channel.d.ts.map +1 -0
- package/dist/esm/sgr/color/channel.js +30 -0
- package/dist/esm/sgr/color/channel.js.map +1 -0
- package/dist/esm/sgr/color/color.d.ts +4 -0
- package/dist/esm/sgr/color/color.d.ts.map +1 -0
- package/dist/esm/sgr/color/color.js +18 -0
- package/dist/esm/sgr/color/color.js.map +1 -0
- package/dist/esm/sgr/color/context.d.ts +13 -0
- package/dist/esm/sgr/color/context.d.ts.map +1 -0
- package/dist/esm/sgr/color/context.js +21 -0
- package/dist/esm/sgr/color/context.js.map +1 -0
- package/dist/esm/sgr/color/index.d.ts +2 -0
- package/dist/esm/sgr/color/index.d.ts.map +1 -0
- package/dist/esm/sgr/color/index.js +2 -0
- package/dist/esm/sgr/color/index.js.map +1 -0
- package/dist/esm/sgr/color/rgb.d.ts +5 -0
- package/dist/esm/sgr/color/rgb.d.ts.map +1 -0
- package/dist/esm/sgr/color/rgb.js +28 -0
- package/dist/esm/sgr/color/rgb.js.map +1 -0
- package/dist/esm/sgr/color/utils.d.ts +7 -0
- package/dist/esm/sgr/color/utils.d.ts.map +1 -0
- package/dist/esm/sgr/color/utils.js +53 -0
- package/dist/esm/sgr/color/utils.js.map +1 -0
- package/dist/esm/sgr/combine.d.ts +3 -0
- package/dist/esm/sgr/combine.d.ts.map +1 -0
- package/dist/esm/sgr/combine.js +11 -0
- package/dist/esm/sgr/combine.js.map +1 -0
- package/dist/esm/sgr/format-builder.d.ts +3 -0
- package/dist/esm/sgr/format-builder.d.ts.map +1 -0
- package/dist/esm/sgr/format-builder.js +30 -0
- package/dist/esm/sgr/format-builder.js.map +1 -0
- package/dist/esm/sgr/index.d.ts +3 -0
- package/dist/esm/sgr/index.d.ts.map +1 -0
- package/dist/esm/sgr/index.js +2 -0
- package/dist/esm/sgr/index.js.map +1 -0
- package/dist/esm/sgr/lazy.d.ts +6 -0
- package/dist/esm/sgr/lazy.d.ts.map +1 -0
- package/dist/esm/sgr/lazy.js +14 -0
- package/dist/esm/sgr/lazy.js.map +1 -0
- package/dist/esm/sgr/reset.d.ts +2 -0
- package/dist/esm/sgr/reset.d.ts.map +1 -0
- package/dist/esm/sgr/reset.js +2 -0
- package/dist/esm/sgr/reset.js.map +1 -0
- package/dist/esm/sgr/sgr.d.ts +4 -0
- package/dist/esm/sgr/sgr.d.ts.map +1 -0
- package/dist/esm/sgr/sgr.js +47 -0
- package/dist/esm/sgr/sgr.js.map +1 -0
- package/dist/esm/sgr/style.d.ts +3 -0
- package/dist/esm/sgr/style.d.ts.map +1 -0
- package/dist/esm/sgr/style.js +29 -0
- package/dist/esm/sgr/style.js.map +1 -0
- package/dist/esm/sgr/types.d.ts +59 -0
- package/dist/esm/sgr/types.d.ts.map +1 -0
- package/dist/esm/sgr/types.js +2 -0
- package/dist/{simplify → esm/sgr}/types.js.map +1 -1
- package/dist/esm/simplify/atom.d.ts +4 -0
- package/dist/esm/simplify/atom.d.ts.map +1 -0
- package/dist/esm/simplify/atom.js +33 -0
- package/dist/esm/simplify/atom.js.map +1 -0
- package/dist/esm/simplify/index.d.ts +2 -0
- package/dist/esm/simplify/index.d.ts.map +1 -0
- package/dist/esm/simplify/index.js +2 -0
- package/dist/esm/simplify/index.js.map +1 -0
- package/dist/esm/simplify/lookup.d.ts +3 -0
- package/dist/esm/simplify/lookup.d.ts.map +1 -0
- package/dist/esm/simplify/lookup.js +70 -0
- package/dist/esm/simplify/lookup.js.map +1 -0
- package/dist/esm/simplify/simplify.d.ts +3 -0
- package/dist/esm/simplify/simplify.d.ts.map +1 -0
- package/dist/esm/simplify/simplify.js +23 -0
- package/dist/esm/simplify/simplify.js.map +1 -0
- package/dist/esm/simplify/state.d.ts +6 -0
- package/dist/esm/simplify/state.d.ts.map +1 -0
- package/dist/esm/simplify/state.js +74 -0
- package/dist/esm/simplify/state.js.map +1 -0
- package/dist/esm/simplify/types.d.ts +9 -0
- package/dist/esm/simplify/types.d.ts.map +1 -0
- package/dist/esm/simplify/types.js +2 -0
- package/dist/esm/simplify/types.js.map +1 -0
- package/dist/esm/simplify/utils.d.ts +3 -0
- package/dist/esm/simplify/utils.d.ts.map +1 -0
- package/dist/esm/simplify/utils.js +28 -0
- package/dist/esm/simplify/utils.js.map +1 -0
- package/dist/esm/slice.d.ts +22 -0
- package/dist/esm/slice.d.ts.map +1 -0
- package/dist/esm/slice.js +69 -0
- package/dist/esm/slice.js.map +1 -0
- package/dist/esm/strip.d.ts +10 -0
- package/dist/esm/strip.d.ts.map +1 -0
- package/dist/esm/strip.js +8 -0
- package/dist/esm/strip.js.map +1 -0
- package/dist/esm/terminal.d.ts +26 -0
- package/dist/esm/terminal.d.ts.map +1 -0
- package/dist/esm/terminal.js +46 -0
- package/dist/{terminal.js.map → esm/terminal.js.map} +1 -1
- package/dist/esm/typed-object.d.ts +16 -0
- package/dist/esm/typed-object.d.ts.map +1 -0
- package/dist/esm/typed-object.js +33 -0
- package/dist/esm/typed-object.js.map +1 -0
- package/dist/esm/types.d.ts +25 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/package.json +14 -7
- package/src/ansi.ts +6 -3
- package/src/index.ts +3 -1
- package/src/patterns.ts +1 -1
- package/src/require.ts +11 -0
- package/src/simplify/simplify.ts +4 -3
- package/src/simplify/state.ts +39 -8
- package/dist/ansi.d.ts.map +0 -1
- package/dist/ansi.js.map +0 -1
- package/dist/caret.d.ts.map +0 -1
- package/dist/erase.d.ts.map +0 -1
- package/dist/features/build.d.ts.map +0 -1
- package/dist/features/build.js.map +0 -1
- package/dist/features/detect.d.ts.map +0 -1
- package/dist/features/detect.js.map +0 -1
- package/dist/features/features.d.ts.map +0 -1
- package/dist/features/features.js.map +0 -1
- package/dist/features/index.d.ts.map +0 -1
- package/dist/features/index.js.map +0 -1
- package/dist/features/types.d.ts.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -24
- package/dist/index.js.map +0 -1
- package/dist/pad.d.ts.map +0 -1
- package/dist/pad.js.map +0 -1
- package/dist/patterns.d.ts.map +0 -1
- package/dist/patterns.js.map +0 -1
- package/dist/scroll.d.ts.map +0 -1
- package/dist/scroll.js.map +0 -1
- package/dist/sgr/color/channel.d.ts.map +0 -1
- package/dist/sgr/color/channel.js.map +0 -1
- package/dist/sgr/color/color.d.ts.map +0 -1
- package/dist/sgr/color/color.js.map +0 -1
- package/dist/sgr/color/context.d.ts.map +0 -1
- package/dist/sgr/color/context.js.map +0 -1
- package/dist/sgr/color/index.d.ts.map +0 -1
- package/dist/sgr/color/index.js.map +0 -1
- package/dist/sgr/color/rgb.d.ts.map +0 -1
- package/dist/sgr/color/rgb.js.map +0 -1
- package/dist/sgr/color/utils.d.ts.map +0 -1
- package/dist/sgr/color/utils.js.map +0 -1
- package/dist/sgr/combine.d.ts.map +0 -1
- package/dist/sgr/combine.js.map +0 -1
- package/dist/sgr/format-builder.d.ts.map +0 -1
- package/dist/sgr/format-builder.js.map +0 -1
- package/dist/sgr/index.d.ts.map +0 -1
- package/dist/sgr/index.js.map +0 -1
- package/dist/sgr/lazy.d.ts.map +0 -1
- package/dist/sgr/lazy.js.map +0 -1
- package/dist/sgr/reset.d.ts.map +0 -1
- package/dist/sgr/reset.js.map +0 -1
- package/dist/sgr/sgr.d.ts.map +0 -1
- package/dist/sgr/sgr.js.map +0 -1
- package/dist/sgr/style.d.ts.map +0 -1
- package/dist/sgr/style.js.map +0 -1
- package/dist/sgr/types.d.ts.map +0 -1
- package/dist/simplify/atom.d.ts.map +0 -1
- package/dist/simplify/atom.js.map +0 -1
- package/dist/simplify/index.d.ts.map +0 -1
- package/dist/simplify/index.js.map +0 -1
- package/dist/simplify/lookup.d.ts.map +0 -1
- package/dist/simplify/lookup.js.map +0 -1
- package/dist/simplify/simplify.d.ts.map +0 -1
- package/dist/simplify/simplify.js.map +0 -1
- package/dist/simplify/state.d.ts.map +0 -1
- package/dist/simplify/state.js.map +0 -1
- package/dist/simplify/types.d.ts.map +0 -1
- package/dist/simplify/utils.d.ts.map +0 -1
- package/dist/simplify/utils.js.map +0 -1
- package/dist/slice.d.ts.map +0 -1
- package/dist/slice.js.map +0 -1
- package/dist/strip.d.ts.map +0 -1
- package/dist/strip.js.map +0 -1
- package/dist/terminal.d.ts.map +0 -1
- package/dist/typed-object.d.ts.map +0 -1
- package/dist/typed-object.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{caret.d.ts → cjs/caret.d.ts} +0 -0
- /package/dist/{caret.js → cjs/caret.js} +0 -0
- /package/dist/{erase.d.ts → cjs/erase.d.ts} +0 -0
- /package/dist/{erase.js → cjs/erase.js} +0 -0
- /package/dist/{features → cjs/features}/build.d.ts +0 -0
- /package/dist/{features → cjs/features}/build.js +0 -0
- /package/dist/{features → cjs/features}/detect.d.ts +0 -0
- /package/dist/{features → cjs/features}/detect.js +0 -0
- /package/dist/{features → cjs/features}/features.d.ts +0 -0
- /package/dist/{features → cjs/features}/index.d.ts +0 -0
- /package/dist/{features → cjs/features}/index.js +0 -0
- /package/dist/{features → cjs/features}/types.d.ts +0 -0
- /package/dist/{features → cjs/features}/types.js +0 -0
- /package/dist/{pad.d.ts → cjs/pad.d.ts} +0 -0
- /package/dist/{pad.js → cjs/pad.js} +0 -0
- /package/dist/{patterns.d.ts → cjs/patterns.d.ts} +0 -0
- /package/dist/{scroll.d.ts → cjs/scroll.d.ts} +0 -0
- /package/dist/{scroll.js → cjs/scroll.js} +0 -0
- /package/dist/{sgr → cjs/sgr}/color/channel.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/color/channel.js +0 -0
- /package/dist/{sgr → cjs/sgr}/color/color.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/color/color.js +0 -0
- /package/dist/{sgr → cjs/sgr}/color/context.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/color/context.js +0 -0
- /package/dist/{sgr → cjs/sgr}/color/index.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/color/index.js +0 -0
- /package/dist/{sgr → cjs/sgr}/color/rgb.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/color/rgb.js +0 -0
- /package/dist/{sgr → cjs/sgr}/color/utils.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/color/utils.js +0 -0
- /package/dist/{sgr → cjs/sgr}/combine.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/combine.js +0 -0
- /package/dist/{sgr → cjs/sgr}/format-builder.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/format-builder.js +0 -0
- /package/dist/{sgr → cjs/sgr}/index.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/index.js +0 -0
- /package/dist/{sgr → cjs/sgr}/lazy.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/lazy.js +0 -0
- /package/dist/{sgr → cjs/sgr}/reset.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/reset.js +0 -0
- /package/dist/{sgr → cjs/sgr}/sgr.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/sgr.js +0 -0
- /package/dist/{sgr → cjs/sgr}/style.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/style.js +0 -0
- /package/dist/{sgr → cjs/sgr}/types.d.ts +0 -0
- /package/dist/{sgr → cjs/sgr}/types.js +0 -0
- /package/dist/{simplify → cjs/simplify}/atom.d.ts +0 -0
- /package/dist/{simplify → cjs/simplify}/atom.js +0 -0
- /package/dist/{simplify → cjs/simplify}/index.d.ts +0 -0
- /package/dist/{simplify → cjs/simplify}/index.js +0 -0
- /package/dist/{simplify → cjs/simplify}/lookup.d.ts +0 -0
- /package/dist/{simplify → cjs/simplify}/lookup.js +0 -0
- /package/dist/{simplify → cjs/simplify}/simplify.d.ts +0 -0
- /package/dist/{simplify → cjs/simplify}/types.d.ts +0 -0
- /package/dist/{simplify → cjs/simplify}/types.js +0 -0
- /package/dist/{simplify → cjs/simplify}/utils.d.ts +0 -0
- /package/dist/{simplify → cjs/simplify}/utils.js +0 -0
- /package/dist/{slice.d.ts → cjs/slice.d.ts} +0 -0
- /package/dist/{strip.d.ts → cjs/strip.d.ts} +0 -0
- /package/dist/{strip.js → cjs/strip.js} +0 -0
- /package/dist/{terminal.d.ts → cjs/terminal.d.ts} +0 -0
- /package/dist/{terminal.js → cjs/terminal.js} +0 -0
- /package/dist/{typed-object.d.ts → cjs/typed-object.d.ts} +0 -0
- /package/dist/{typed-object.js → cjs/typed-object.js} +0 -0
- /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
- /package/dist/{types.js → cjs/types.js} +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Socket } from "node:net";
|
|
2
|
+
export type ColorDepth = 1 | 3 | 4 | 8 | 24;
|
|
3
|
+
export interface Features {
|
|
4
|
+
colorDepth: ColorDepth;
|
|
5
|
+
style: boolean;
|
|
6
|
+
caret: boolean;
|
|
7
|
+
erase: boolean;
|
|
8
|
+
scroll: boolean;
|
|
9
|
+
terminal: boolean;
|
|
10
|
+
}
|
|
11
|
+
export type Args = [enabled: boolean, stream?: NodeJS.WriteStream] | [colorDepth: ColorDepth, stream?: NodeJS.WriteStream] | [features: Partial<Features>, stream?: NodeJS.WriteStream] | [socket: Socket] | [stream?: NodeJS.WriteStream];
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAErC,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACxB,UAAU,EAAG,UAAU,CAAC;IACxB,KAAK,EAAQ,OAAO,CAAC;IACrB,KAAK,EAAQ,OAAO,CAAC;IACrB,KAAK,EAAQ,OAAO,CAAC;IACrB,MAAM,EAAO,OAAO,CAAC;IACrB,QAAQ,EAAK,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,IAAI,GACb,CAAC,OAAO,EAAM,OAAO,EAAY,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAC7D,CAAC,UAAU,EAAG,UAAU,EAAS,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAC7D,CAAC,QAAQ,EAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAC7D,CAAC,MAAM,EAAO,MAAM,CAAC,GACrB,CAAC,MAAM,CAAC,EAAM,MAAM,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/B,cAAsB,QAAQ,CAAC;AAE/B,YAAY,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/B,cAAsB,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pad the given text at the end with the specified fill string to the target visible length without
|
|
3
|
+
* counting ANSI escape codes.
|
|
4
|
+
*/
|
|
5
|
+
export declare const padEnd: (text: string, targetLength: number, fillString?: string) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Pad the given text at the start with the specified fill string to the target visible length
|
|
8
|
+
* without counting ANSI escape codes.
|
|
9
|
+
*/
|
|
10
|
+
export declare const padStart: (text: string, targetLength: number, fillString?: string) => string;
|
|
11
|
+
export type PadEnd = typeof padEnd;
|
|
12
|
+
export type PadStart = typeof padStart;
|
|
13
|
+
//# sourceMappingURL=pad.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pad.d.ts","sourceRoot":"","sources":["../../src/pad.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,EAAE,cAAc,MAAM,EAAE,mBAAgB,KAAG,MACgB,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,cAAc,MAAM,EAAE,mBAAgB,KAAG,MACc,CAAC;AAE/F,MAAM,MAAM,MAAM,GAAK,OAAO,MAAM,CAAC;AACrC,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC"}
|
package/dist/esm/pad.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { visibleLength } from "./strip.js";
|
|
2
|
+
/**
|
|
3
|
+
* Pad the given text at the end with the specified fill string to the target visible length without
|
|
4
|
+
* counting ANSI escape codes.
|
|
5
|
+
*/
|
|
6
|
+
export const padEnd = (text, targetLength, fillString = " ") => text + fillString.repeat(Math.max(0, targetLength - visibleLength(text)) / fillString.length);
|
|
7
|
+
/**
|
|
8
|
+
* Pad the given text at the start with the specified fill string to the target visible length
|
|
9
|
+
* without counting ANSI escape codes.
|
|
10
|
+
*/
|
|
11
|
+
export const padStart = (text, targetLength, fillString = " ") => fillString.repeat(Math.max(0, targetLength - visibleLength(text)) / fillString.length) + text;
|
|
12
|
+
//# sourceMappingURL=pad.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pad.js","sourceRoot":"","sources":["../../src/pad.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,YAAoB,EAAE,UAAU,GAAG,GAAG,EAAU,EAAE,CACtF,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAE/F;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,YAAoB,EAAE,UAAU,GAAG,GAAG,EAAU,EAAE,CACxF,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/patterns.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,KAAK,kBAAuC,CAAC;AAC1D,eAAO,MAAM,KAAK,kBAA+C,CAAC;AAClE,eAAO,MAAM,QAAQ,kBAA+C,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
I'm freezing these to prevent accidental mutation of the `lastIndex` property, which could keep
|
|
3
|
+
future calls from starting at the beginning of the string.
|
|
4
|
+
|
|
5
|
+
Code using these objects will have to clone them (with `new RegExp(rx)`) before using functions
|
|
6
|
+
that modify `lastIndex` (such as `exec`). But according to my benchmarks, cloning the regex takes
|
|
7
|
+
mere nanoseconds, and it wasn't even measurable when operating on longer strings. V8 clearly uses a
|
|
8
|
+
global cache of compiled regexes. I assume that SpiderMonkey does the same thing.
|
|
9
|
+
|
|
10
|
+
Here are my `timeit` benchmark results:
|
|
11
|
+
|
|
12
|
+
```js
|
|
13
|
+
const {timeit} = require("$timeit");
|
|
14
|
+
|
|
15
|
+
const rxSGR = /\x1b\[[\d;]*m/g;
|
|
16
|
+
const short = "\x1b[31mred \x1b[32mgreen \x1b[34mblue \x1b[0m";
|
|
17
|
+
const long = short.repeat(1000);
|
|
18
|
+
|
|
19
|
+
timeit(() => short.replace(rxSGR, ""), {description: "short - no clone "});
|
|
20
|
+
timeit(() => short.replace(new RegExp(rxSGR), ""), {description: "short - clone object "});
|
|
21
|
+
timeit(() => short.replace(new RegExp(rxSGR.source, "g"), ""), {description: "short - clone source "});
|
|
22
|
+
|
|
23
|
+
console.log();
|
|
24
|
+
|
|
25
|
+
timeit(() => long .replace(rxSGR, ""), {description: "long - no clone "});
|
|
26
|
+
timeit(() => long .replace(new RegExp(rxSGR), ""), {description: "long - clone object "});
|
|
27
|
+
timeit(() => long .replace(new RegExp(rxSGR.source, "g"), ""), {description: "long - clone source "});
|
|
28
|
+
|
|
29
|
+
// Output:
|
|
30
|
+
// short - no clone : 82.73 ns (12,087,731 in 1.000016982 s)
|
|
31
|
+
// short - clone object : 142.132 ns (7,035,692 in 1.0000001770000002 s)
|
|
32
|
+
// short - clone source : 127.872 ns (7,820,293 in 1.00000017 s)
|
|
33
|
+
//
|
|
34
|
+
// long - no clone : 47.953 ųs (20,854 in 1.0000098149999999 s)
|
|
35
|
+
// long - clone object : 46.713 ųs (21,408 in 1.0000285520000003 s)
|
|
36
|
+
// long - clone source : 46.491 ųs (21,510 in 1.000026492 s)
|
|
37
|
+
```
|
|
38
|
+
*/
|
|
39
|
+
export const rxSGR = Object.freeze(/\x1b\[([\d;]*)m/g);
|
|
40
|
+
export const rxCSI = Object.freeze(/\x1b\[[0-?]*[ -/]*[@-~]/g);
|
|
41
|
+
export const rxUnsafe = Object.freeze(/\x1b\[[0-?]*[ -/]*[@-ln-~]/g); // Everything except SGR codes (m).
|
|
42
|
+
//# sourceMappingURL=patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCE;AAEF,MAAM,CAAC,MAAM,KAAK,GAAM,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,KAAK,GAAM,MAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,mCAAmC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;iBACK,MAAM,KAAG,MAAM;mBACf,MAAM,KAAG,MAAM;CAC/B,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAOnC,eAAO,MAAM,UAAU,GAAI,iBAAc,KAAG,MAAqC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const scroll = {
|
|
2
|
+
up: (lines) => `\x1b[${lines ?? 1}S`,
|
|
3
|
+
down: (lines) => `\x1b[${lines ?? 1}T`,
|
|
4
|
+
};
|
|
5
|
+
const disabled = {
|
|
6
|
+
up: () => "",
|
|
7
|
+
down: () => "",
|
|
8
|
+
};
|
|
9
|
+
export const makeScroll = (enabled = true) => enabled ? scroll : disabled;
|
|
10
|
+
//# sourceMappingURL=scroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IACd,EAAE,EAAK,CAAC,KAAc,EAAU,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG;IACxD,IAAI,EAAG,CAAC,KAAc,EAAU,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG;CACxD,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAK,GAAG,EAAE,CAAC,EAAE;IACf,IAAI,EAAG,GAAG,EAAE,CAAC,EAAE;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ColorDepth } from "../../features/index.js";
|
|
2
|
+
import type { ChainKey, Channel, ColorKey, FormatBuilder, Style } from "../types.js";
|
|
3
|
+
export declare function makeChannel(keys: ReadonlySet<ChainKey>, makeFormatter: FormatBuilder, style: Style, colorDepth: ColorDepth, channel: ColorKey): Channel;
|
|
4
|
+
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAA6C,gBAAgB,CAAC;AACtF,OAAO,KAAK,EAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAahF,wBAAgB,WAAW,CAC1B,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,KAAK,EAAW,KAAK,EACrB,UAAU,EAAM,UAAU,EAC1B,OAAO,EAAS,QAAQ,GACtB,OAAO,CAmBT"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { lazy } from "../lazy.js";
|
|
2
|
+
import { buildContext } from "./context.js";
|
|
3
|
+
import { makeRGB, makeX256 } from "./rgb.js";
|
|
4
|
+
const colors = [
|
|
5
|
+
"black",
|
|
6
|
+
"red",
|
|
7
|
+
"green",
|
|
8
|
+
"yellow",
|
|
9
|
+
"blue",
|
|
10
|
+
"magenta",
|
|
11
|
+
"cyan",
|
|
12
|
+
"white",
|
|
13
|
+
];
|
|
14
|
+
export function makeChannel(keys, makeFormatter, style, colorDepth, channel) {
|
|
15
|
+
const ctx = buildContext(keys, makeFormatter, style, colorDepth, channel);
|
|
16
|
+
const { build, bright, open, close } = ctx;
|
|
17
|
+
const rtn = {
|
|
18
|
+
rgb: makeRGB(ctx),
|
|
19
|
+
x256: makeX256(ctx),
|
|
20
|
+
default: colorDepth > 1 ? `\x1b[${close}m` : "",
|
|
21
|
+
};
|
|
22
|
+
for (let i = 0; i < colors.length; i++) {
|
|
23
|
+
const color = colors[i];
|
|
24
|
+
const brightColor = `bright${color[0].toUpperCase()}${color.slice(1)}`;
|
|
25
|
+
lazy.add(rtn, color, () => build(open + i));
|
|
26
|
+
lazy.add(rtn, brightColor, () => bright(i));
|
|
27
|
+
}
|
|
28
|
+
return rtn;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAmB,SAAS,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAW,WAAW,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAKxC,MAAM,MAAM,GAAG;IACd,OAAO;IACP,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;CACE,CAAC;AAEX,MAAM,UAAU,WAAW,CAC1B,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B,EAC1B,OAAwB;IAExB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAC,GAAG,GAAG,CAAC;IAEzC,MAAM,GAAG,GAAG;QACX,GAAG,EAAO,OAAO,CAAC,GAAG,CAAC;QACtB,IAAI,EAAM,QAAQ,CAAC,GAAG,CAAC;QACvB,OAAO,EAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;KACrC,CAAC;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAS,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ColorDepth } from "../../features/index.js";
|
|
2
|
+
import type { ChainKey, Color, FormatBuilder, Style } from "../types.js";
|
|
3
|
+
export declare function makeColor(keys: ReadonlySet<ChainKey>, makeFormatter: FormatBuilder, style: Style, colorDepth: ColorDepth): Color<any>;
|
|
4
|
+
//# sourceMappingURL=color.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/color.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAiC,gBAAgB,CAAC;AAC1E,OAAO,KAAK,EAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAIpE,wBAAgB,SAAS,CACxB,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,KAAK,EAAW,KAAK,EACrB,UAAU,EAAM,UAAU,GACxB,KAAK,CAAC,GAAG,CAAC,CAcZ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { lazy } from "../lazy.js";
|
|
3
|
+
import { makeChannel } from "./channel.js";
|
|
4
|
+
const channels = ["fg", "bg"];
|
|
5
|
+
export function makeColor(keys, makeFormatter, style, colorDepth) {
|
|
6
|
+
const rtn = {};
|
|
7
|
+
for (const channel of channels) {
|
|
8
|
+
if (keys.has(channel)) {
|
|
9
|
+
lazy.add(rtn, channel, () => {
|
|
10
|
+
const newKeys = new Set(keys);
|
|
11
|
+
newKeys.delete(channel);
|
|
12
|
+
return makeChannel(newKeys, makeFormatter, style, colorDepth, channel);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return rtn;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../src/sgr/color/color.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAC,IAAI,EAAC,MAAa,SAAS,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAKtC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAEvC,MAAM,UAAU,SAAS,CACxB,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B;IAE1B,MAAM,GAAG,GAAG,EAAgB,CAAC;IAE7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;gBAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxB,OAAO,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ColorDepth } from "../../features/index.js";
|
|
2
|
+
import type { ChainKey, Code, ColorKey, Format, FormatBuilder, Style } from "../types.js";
|
|
3
|
+
export declare function buildContext(keys: ReadonlySet<ChainKey>, makeFormatter: FormatBuilder, style: Style, colorDepth: ColorDepth, channel: ColorKey): {
|
|
4
|
+
colorDepth: ColorDepth;
|
|
5
|
+
channel: ColorKey;
|
|
6
|
+
open: number;
|
|
7
|
+
close: number;
|
|
8
|
+
build: (open: Code) => Format;
|
|
9
|
+
bright: (index: number) => Format;
|
|
10
|
+
x16ToX8: (code: number) => Format;
|
|
11
|
+
};
|
|
12
|
+
export type Context = ReturnType<typeof buildContext>;
|
|
13
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAc,aAAa,EAAE,KAAK,EAAC,MAAM,UAAU,CAAC;AAOjG,wBAAgB,YAAY,CAC3B,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,KAAK,EAAW,KAAK,EACrB,UAAU,EAAM,UAAU,EAC1B,OAAO,EAAS,QAAQ;;;;;kBAIH,IAAI,KAAG,MAAM;oBAQZ,MAAM,KAAK,MAAM;oBAQjB,MAAM,KAAK,MAAM;EAMvC;AAED,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { combineCodes } from "../combine.js";
|
|
2
|
+
const baseCodes = {
|
|
3
|
+
fg: { open: 30, close: 39 },
|
|
4
|
+
bg: { open: 40, close: 49 },
|
|
5
|
+
};
|
|
6
|
+
export function buildContext(keys, makeFormatter, style, colorDepth, channel) {
|
|
7
|
+
const { open, close } = baseCodes[channel];
|
|
8
|
+
const build = (open) => makeFormatter(keys, open, close);
|
|
9
|
+
const combine = (base, style) => makeFormatter(keys, combineCodes(base.codes.open, style.codes.open), combineCodes(base.codes.close, style.codes.close));
|
|
10
|
+
const bright = colorDepth >= 4 ? index => build(open + 60 + index) :
|
|
11
|
+
colorDepth === 3 ?
|
|
12
|
+
channel === "fg" ?
|
|
13
|
+
index => combine(style.bold, build(open + index)) :
|
|
14
|
+
index => build(open + index) :
|
|
15
|
+
() => build(0);
|
|
16
|
+
const x16ToX8 = channel === "fg" ?
|
|
17
|
+
code => code >= 60 ? combine(style.bold, build(open + code - 60)) : build(open + code) :
|
|
18
|
+
code => code >= 60 ? build(open + code - 60) : build(open + code);
|
|
19
|
+
return { colorDepth, channel, open, close, build, bright, x16ToX8 };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/sgr/color/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAKxC,MAAM,SAAS,GAAG;IACjB,EAAE,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC;IACzB,EAAE,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC;CACzB,CAAC;AAEF,MAAM,UAAU,YAAY,CAC3B,IAAqC,EACrC,aAA6B,EAC7B,KAAqB,EACrB,UAA0B,EAC1B,OAAwB;IAExB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,CAAC,IAAU,EAAU,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAEvE,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,KAAiB,EAAU,EAAE,CAAC,aAAa,CAC7E,IAAI,EACJ,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAChD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CACjD,CAAC;IAEF,MAAM,MAAM,GACX,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACrD,UAAU,KAAK,CAAC,CAAC,CAAC;YACjB,OAAO,KAAK,IAAI,CAAC,CAAC;gBACjB,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;YAChC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhB,MAAM,OAAO,GACZ,OAAO,KAAK,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAEpE,OAAO,EAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAC,CAAC;AACnE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sgr/color/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Channel, Format } from "../types.js";
|
|
2
|
+
import type { Context } from "./context.js";
|
|
3
|
+
export declare function makeRGB(ctx: Context): Channel["rgb"];
|
|
4
|
+
export declare function makeX256(ctx: Context): (...args: [number] | [number, number, number]) => Format;
|
|
5
|
+
//# sourceMappingURL=rgb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/rgb.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAc,WAAW,CAAC;AAE/C,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAapD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CA2B/F"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { clip, rgbToX256, rgbToX16, rgbToX8, x256ToRgb } from "./utils.js";
|
|
2
|
+
export function makeRGB(ctx) {
|
|
3
|
+
const { colorDepth, channel, build, open, x16ToX8 } = ctx;
|
|
4
|
+
return (colorDepth >= 24 ? (r, g, b) => build([open + 8, 2, ...clip(r, g, b)]) :
|
|
5
|
+
colorDepth >= 8 ? (r, g, b) => build([open + 8, 5, rgbToX256(...clip(r, g, b))]) :
|
|
6
|
+
colorDepth >= 4 ? (r, g, b) => build(open + rgbToX16(...clip(r, g, b))) :
|
|
7
|
+
colorDepth === 3 ?
|
|
8
|
+
channel === "fg" ?
|
|
9
|
+
(r, g, b) => x16ToX8(rgbToX16(...clip(r, g, b))) :
|
|
10
|
+
(r, g, b) => build(open + rgbToX8(...clip(r, g, b))) :
|
|
11
|
+
() => build(0));
|
|
12
|
+
}
|
|
13
|
+
export function makeX256(ctx) {
|
|
14
|
+
const { colorDepth, channel, build, open, x16ToX8 } = ctx;
|
|
15
|
+
return (colorDepth >= 8 ?
|
|
16
|
+
(...args) => build([open + 8, 5, args.length === 3 ? rgbToX256(...clip(...args)) : clip(args[0])]) :
|
|
17
|
+
colorDepth >= 4 ?
|
|
18
|
+
(...args) => build(open +
|
|
19
|
+
rgbToX16(...(args.length === 3 ? clip(...args) : x256ToRgb(clip(args[0]))))) :
|
|
20
|
+
colorDepth === 3 ?
|
|
21
|
+
channel === "fg" ?
|
|
22
|
+
(...args) => x16ToX8(args.length === 3 ?
|
|
23
|
+
rgbToX16(...clip(...args)) :
|
|
24
|
+
rgbToX16(...x256ToRgb(clip(args[0])))) :
|
|
25
|
+
(...args) => build(open + rgbToX8(...args.length === 3 ? clip(...args) : x256ToRgb(clip(args[0])))) :
|
|
26
|
+
() => build(0));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=rgb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb.js","sourceRoot":"","sources":["../../../../src/sgr/color/rgb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function rgbToX256(r: number, g: number, b: number): number;
|
|
2
|
+
export declare function x256ToRgb(code: number): [number, number, number];
|
|
3
|
+
export declare function rgbToX16(r: number, g: number, b: number): number;
|
|
4
|
+
export declare function rgbToX8(r: number, g: number, b: number): number;
|
|
5
|
+
export declare function clip(x: number): number;
|
|
6
|
+
export declare function clip(r: number, g: number, b: number): [number, number, number];
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAajE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAYhE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBhE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AACxC,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export function rgbToX256(r, g, b) {
|
|
2
|
+
if (r === g && g === b) {
|
|
3
|
+
// grayscale
|
|
4
|
+
return 232 + Math.floor(r * 24 / 256);
|
|
5
|
+
}
|
|
6
|
+
// 6x6x6 color cube
|
|
7
|
+
return (16 +
|
|
8
|
+
Math.floor(r * 6 / 256) * 36 +
|
|
9
|
+
Math.floor(g * 6 / 256) * 6 +
|
|
10
|
+
Math.floor(b * 6 / 256));
|
|
11
|
+
}
|
|
12
|
+
export function x256ToRgb(code) {
|
|
13
|
+
if (code >= 232) {
|
|
14
|
+
// grayscale
|
|
15
|
+
const gray = Math.round((code - 232) * 255 / 24);
|
|
16
|
+
return [gray, gray, gray];
|
|
17
|
+
}
|
|
18
|
+
code -= 16;
|
|
19
|
+
const r = Math.floor(code / 36) * 51;
|
|
20
|
+
const g = Math.floor((code % 36) / 6) * 51;
|
|
21
|
+
const b = (code % 6) * 51;
|
|
22
|
+
return [r, g, b];
|
|
23
|
+
}
|
|
24
|
+
export function rgbToX16(r, g, b) {
|
|
25
|
+
// First calculate it as a 4x4x4 cube.
|
|
26
|
+
r = Math.min(2, Math.floor(r / 85));
|
|
27
|
+
g = Math.min(2, Math.floor(g / 85));
|
|
28
|
+
b = Math.min(2, Math.floor(b / 85));
|
|
29
|
+
// Which channels are "on" determines the hue (ANSI color index 0–7).
|
|
30
|
+
const index = (r ? 1 : 0) | (g ? 2 : 0) | (b ? 4 : 0);
|
|
31
|
+
// The bright bit is derived from the max channel level across all three.
|
|
32
|
+
const twos = (r === 2 ? 1 : 0) + (g === 2 ? 1 : 0) + (b === 2 ? 1 : 0);
|
|
33
|
+
const ones = (r === 1 ? 1 : 0) + (g === 1 ? 1 : 0) + (b === 1 ? 1 : 0);
|
|
34
|
+
const bright = twos > 0 && twos >= ones;
|
|
35
|
+
// Return value uses the SGR offset scheme: 0–7 for normal, 60–67 for bright.
|
|
36
|
+
return index + (bright ? 60 : 0);
|
|
37
|
+
}
|
|
38
|
+
export function rgbToX8(r, g, b) {
|
|
39
|
+
r = r >= 128 ? 1 : 0;
|
|
40
|
+
g = g >= 128 ? 1 : 0;
|
|
41
|
+
b = b >= 128 ? 1 : 0;
|
|
42
|
+
return (r ? 1 : 0) | (g ? 2 : 0) | (b ? 4 : 0);
|
|
43
|
+
}
|
|
44
|
+
export function clip(...args) {
|
|
45
|
+
return args.length === 1 ?
|
|
46
|
+
Math.max(0, Math.min(255, Math.floor(args[0]))) :
|
|
47
|
+
[
|
|
48
|
+
Math.max(0, Math.min(255, Math.floor(args[0]))),
|
|
49
|
+
Math.max(0, Math.min(255, Math.floor(args[1]))),
|
|
50
|
+
Math.max(0, Math.min(255, Math.floor(args[2]))),
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/sgr/color/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACxD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,YAAY;QACZ,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB;IACnB,OAAO,CACN,EAAE;QACF,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CACvB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QACjB,YAAY;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;IACX,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3C,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACvD,sCAAsC;IAEtC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACpC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAEpC,qEAAqE;IACrE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtD,yEAAyE;IACzE,MAAM,IAAI,GAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,IAAI,GAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC;IAExC,6EAA6E;IAC7E,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACtD,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAID,MAAM,UAAU,IAAI,CAAC,GAAG,IAAyC;IAChE,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD;YACC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/sgr/combine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAUzD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function combineCodes(base, code) {
|
|
2
|
+
const set = new Set(Array.isArray(base) ? [...base] : [base]);
|
|
3
|
+
if (Array.isArray(code)) {
|
|
4
|
+
for (const c of code)
|
|
5
|
+
set.add(c);
|
|
6
|
+
}
|
|
7
|
+
else
|
|
8
|
+
set.add(code);
|
|
9
|
+
return [...set];
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=combine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/sgr/combine.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,IAAU,EAAE,IAAU;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,IAAI;YACnB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;;QACA,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEf,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-builder.d.ts","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAsC,aAAa,EAAC,MAAM,SAAS,CAAC;AAY7F,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,UAAO,GAAG,aAAa,CA+BxF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { define } from "@peteanderson/props";
|
|
2
|
+
import { lazy } from "./lazy.js";
|
|
3
|
+
const codeSequence = (code) => Array.isArray(code) ? code.join(';') : code;
|
|
4
|
+
const chain = (makeChain, keys, baseFormat) => !keys.size
|
|
5
|
+
? baseFormat
|
|
6
|
+
: lazy.add(baseFormat, "and", () => makeChain(keys, baseFormat));
|
|
7
|
+
export function makeFormatBuilder(makeChain, enabled = true) {
|
|
8
|
+
if (enabled) {
|
|
9
|
+
return (keys, open, close, reset) => {
|
|
10
|
+
const openCode = codeSequence(open);
|
|
11
|
+
const closeCode = codeSequence(close);
|
|
12
|
+
const openSequence = `\x1b[${openCode}m`;
|
|
13
|
+
const closeSequence = `\x1b[${closeCode}m`;
|
|
14
|
+
const reopenCode = reset ? `${closeCode};${openCode}` : openCode;
|
|
15
|
+
const rxClose = new RegExp(`(?<start>\\x1b\\[(?:\\d+;)*)${closeCode}(?<end>(?:;\\d+)*m)`, "g");
|
|
16
|
+
const replace = `$<start>${reopenCode}$<end>`;
|
|
17
|
+
return chain(makeChain, keys, define((s) => s ? openSequence + s.replace(rxClose, replace) + closeSequence : s, {
|
|
18
|
+
open: { value: openSequence, enumerable: true },
|
|
19
|
+
close: { value: closeSequence, enumerable: true },
|
|
20
|
+
codes: { value: { open, close }, enumerable: true },
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
return keys => chain(makeChain, keys, define((s) => s, {
|
|
25
|
+
open: { value: "", enumerable: true },
|
|
26
|
+
close: { value: "", enumerable: true },
|
|
27
|
+
codes: { value: { open: [], close: [] }, enumerable: true },
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=format-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-builder.js","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAC,IAAI,EAAC,MAAQ,QAAQ,CAAC;AAI9B,MAAM,YAAY,GAAG,CAAC,IAAU,EAAmB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAElG,MAAM,KAAK,GAAG,CACb,SAAyB,EACzB,IAA8B,EAC9B,UAAuB,EACR,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;IAC5B,CAAC,CAAC,UAA0B;IAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;AAElE,MAAM,UAAU,iBAAiB,CAAC,SAAuB,EAAE,OAAO,GAAG,IAAI;IACxE,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAQ,YAAY,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,SAAS,GAAO,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,YAAY,GAAI,QAAQ,QAAQ,GAAG,CAAC;YAC1C,MAAM,aAAa,GAAG,QAAQ,SAAS,GAAG,CAAC;YAC3C,MAAM,UAAU,GAAM,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAEpE,MAAM,OAAO,GAAG,IAAI,MAAM,CACzB,+BAA+B,SAAS,qBAAqB,EAC7D,GAAG,CACH,CAAC;YACF,MAAM,OAAO,GAAG,WAAW,UAAU,QAAQ,CAAC;YAE9C,OAAO,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CACnC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,EACjF;gBACC,IAAI,EAAI,EAAC,KAAK,EAAE,YAAY,EAAG,UAAU,EAAE,IAAI,EAAC;gBAChD,KAAK,EAAG,EAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAC;gBAChD,KAAK,EAAG,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,EAAC,EAAE,UAAU,EAAE,IAAI,EAAC;aAChD,CACD,CAAC,CAAC;QACJ,CAAC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE;QAC9D,IAAI,EAAI,EAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAC;QACrC,KAAK,EAAG,EAAC,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAC;QACrC,KAAK,EAAG,EAAC,KAAK,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC,EAAE,UAAU,EAAE,IAAI,EAAC;KACxD,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sgr/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,OAAO,EAAC,GAAG,EAAC,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sgr/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { GetterProperty } from "@peteanderson/props";
|
|
2
|
+
export declare function lazy<K extends keyof any, V>(key: K, get: () => V): GetterProperty<V>;
|
|
3
|
+
export declare namespace lazy {
|
|
4
|
+
var add: <T extends object, K extends keyof any, V>(obj: T, key: K, get: () => V) => T & { [k in K]: V; };
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=lazy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../../src/sgr/lazy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAExD,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAUpF;yBAVe,IAAI;cAYR,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,EAAE,CAAC,OAC7C,CAAC,OACD,CAAC,OACD,MAAM,CAAC,KACX,CAAC,GAAG,GAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { define } from "@peteanderson/props";
|
|
2
|
+
export function lazy(key, get) {
|
|
3
|
+
return {
|
|
4
|
+
get() {
|
|
5
|
+
const value = get();
|
|
6
|
+
define(this, key, { value, enumerable: true });
|
|
7
|
+
return value;
|
|
8
|
+
},
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
lazy.add = (obj, key, get) => define(obj, key, lazy(key, get));
|
|
14
|
+
//# sourceMappingURL=lazy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/sgr/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAI3C,MAAM,UAAU,IAAI,CAAyB,GAAM,EAAE,GAAY;IAChE,OAAO;QACN,GAAG;YACF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,EAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC;QACd,CAAC;QACD,UAAU,EAAK,IAAI;QACnB,YAAY,EAAG,IAAI;KACnB,CAAC;AACH,CAAC;AAED,IAAI,CAAC,GAAG,GAAG,CACV,GAAO,EACP,GAAO,EACP,GAAa,EACO,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,MAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,IAAI,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sgr.d.ts","sourceRoot":"","sources":["../../../src/sgr/sgr.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,QAAQ,EAAC,MAAiC,aAAa,CAAC;AACjF,OAAO,KAAK,EAA6C,GAAG,EAAC,MAAM,SAAS,CAAC;AAsB7E,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAyC/C"}
|