@peteanderson/ansi 3.7.1 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -0
- package/dist/cjs/ansi.d.ts +7 -3
- package/dist/cjs/ansi.d.ts.map +1 -1
- package/dist/cjs/ansi.js +6 -1
- package/dist/cjs/ansi.js.map +1 -1
- package/dist/cjs/code.d.ts +10 -0
- package/dist/cjs/code.d.ts.map +1 -0
- package/dist/cjs/code.js +9 -0
- package/dist/cjs/code.js.map +1 -0
- package/dist/cjs/cursor.js +30 -30
- package/dist/cjs/cursor.js.map +1 -1
- package/dist/cjs/index.d.ts +12 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/ins-del.js +16 -16
- package/dist/cjs/ins-del.js.map +1 -1
- package/dist/cjs/package.json +25 -0
- package/dist/cjs/scroll.js +9 -9
- package/dist/cjs/scroll.js.map +1 -1
- package/dist/cjs/sgr/chain/attach.d.ts +5 -0
- package/dist/cjs/sgr/chain/attach.d.ts.map +1 -0
- package/dist/cjs/sgr/chain/attach.js +10 -0
- package/dist/cjs/sgr/chain/attach.js.map +1 -0
- package/dist/cjs/sgr/chain/build.d.ts +8 -0
- package/dist/cjs/sgr/chain/build.d.ts.map +1 -0
- package/dist/cjs/sgr/chain/build.js +15 -0
- package/dist/cjs/sgr/chain/build.js.map +1 -0
- package/dist/cjs/sgr/chain/chain.d.ts +13 -0
- package/dist/cjs/sgr/chain/chain.d.ts.map +1 -0
- package/dist/cjs/sgr/chain/chain.js +36 -0
- package/dist/cjs/sgr/chain/chain.js.map +1 -0
- package/dist/cjs/sgr/chain/index.d.ts +5 -0
- package/dist/cjs/sgr/chain/index.d.ts.map +1 -0
- package/dist/cjs/sgr/chain/index.js +20 -0
- package/dist/cjs/sgr/chain/index.js.map +1 -0
- package/dist/cjs/sgr/chain/keys.d.ts +5 -0
- package/dist/cjs/sgr/chain/keys.d.ts.map +1 -0
- package/dist/cjs/sgr/chain/keys.js +8 -0
- package/dist/cjs/sgr/chain/keys.js.map +1 -0
- package/dist/cjs/sgr/color/channel.d.ts +29 -3
- package/dist/cjs/sgr/color/channel.d.ts.map +1 -1
- package/dist/cjs/sgr/color/channel.js +8 -8
- package/dist/cjs/sgr/color/channel.js.map +1 -1
- package/dist/cjs/sgr/color/color.d.ts +9 -3
- package/dist/cjs/sgr/color/color.d.ts.map +1 -1
- package/dist/cjs/sgr/color/color.js +6 -10
- package/dist/cjs/sgr/color/color.js.map +1 -1
- package/dist/cjs/sgr/color/context.d.ts +12 -8
- package/dist/cjs/sgr/color/context.d.ts.map +1 -1
- package/dist/cjs/sgr/color/context.js +28 -18
- package/dist/cjs/sgr/color/context.js.map +1 -1
- package/dist/cjs/sgr/color/rgb.d.ts +7 -4
- package/dist/cjs/sgr/color/rgb.d.ts.map +1 -1
- package/dist/cjs/sgr/color/rgb.js +12 -12
- package/dist/cjs/sgr/color/rgb.js.map +1 -1
- package/dist/cjs/sgr/combine.d.ts +1 -1
- package/dist/cjs/sgr/combine.d.ts.map +1 -1
- package/dist/cjs/sgr/context.d.ts +16 -0
- package/dist/cjs/sgr/context.d.ts.map +1 -0
- package/dist/cjs/sgr/context.js +43 -0
- package/dist/cjs/sgr/context.js.map +1 -0
- package/dist/cjs/sgr/format.d.ts +19 -0
- package/dist/cjs/sgr/format.d.ts.map +1 -0
- package/dist/cjs/sgr/format.js +35 -0
- package/dist/cjs/sgr/format.js.map +1 -0
- package/dist/cjs/sgr/index.d.ts +3 -1
- package/dist/cjs/sgr/index.d.ts.map +1 -1
- package/dist/cjs/sgr/index.js +3 -0
- package/dist/cjs/sgr/index.js.map +1 -1
- package/dist/cjs/sgr/reset.js +2 -2
- package/dist/cjs/sgr/reset.js.map +1 -1
- package/dist/cjs/sgr/sgr.d.ts +10 -2
- package/dist/cjs/sgr/sgr.d.ts.map +1 -1
- package/dist/cjs/sgr/sgr.js +7 -32
- package/dist/cjs/sgr/sgr.js.map +1 -1
- package/dist/cjs/sgr/style.d.ts +9 -2
- package/dist/cjs/sgr/style.d.ts.map +1 -1
- package/dist/cjs/sgr/style.js +13 -12
- package/dist/cjs/sgr/style.js.map +1 -1
- package/dist/cjs/simplify/simplify.d.ts.map +1 -1
- package/dist/cjs/simplify/simplify.js +4 -7
- package/dist/cjs/simplify/simplify.js.map +1 -1
- package/dist/cjs/slice.js +3 -3
- package/dist/cjs/slice.js.map +1 -1
- package/dist/cjs/strip.js +3 -3
- package/dist/cjs/strip.js.map +1 -1
- package/dist/cjs/terminal.js +13 -13
- package/dist/cjs/terminal.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils.d.ts +3 -1
- package/dist/cjs/utils.d.ts.map +1 -1
- package/dist/cjs/utils.js +9 -6
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/ansi.d.ts +7 -3
- package/dist/esm/ansi.d.ts.map +1 -1
- package/dist/esm/ansi.js +3 -2
- package/dist/esm/ansi.js.map +1 -1
- package/dist/esm/code.d.ts +10 -0
- package/dist/esm/code.d.ts.map +1 -0
- package/dist/esm/code.js +6 -0
- package/dist/esm/code.js.map +1 -0
- package/dist/esm/cursor.js +5 -5
- package/dist/esm/cursor.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/ins-del.js +1 -1
- package/dist/esm/ins-del.js.map +1 -1
- package/dist/esm/package.json +25 -1
- package/dist/esm/scroll.js +3 -3
- package/dist/esm/scroll.js.map +1 -1
- package/dist/esm/sgr/chain/attach.d.ts +5 -0
- package/dist/esm/sgr/chain/attach.d.ts.map +1 -0
- package/dist/esm/sgr/chain/attach.js +6 -0
- package/dist/esm/sgr/chain/attach.js.map +1 -0
- package/dist/esm/sgr/chain/build.d.ts +8 -0
- package/dist/esm/sgr/chain/build.d.ts.map +1 -0
- package/dist/esm/sgr/chain/build.js +12 -0
- package/dist/esm/sgr/chain/build.js.map +1 -0
- package/dist/esm/sgr/chain/chain.d.ts +13 -0
- package/dist/esm/sgr/chain/chain.d.ts.map +1 -0
- package/dist/esm/sgr/chain/chain.js +33 -0
- package/dist/esm/sgr/chain/chain.js.map +1 -0
- package/dist/esm/sgr/chain/index.d.ts +5 -0
- package/dist/esm/sgr/chain/index.d.ts.map +1 -0
- package/dist/esm/sgr/chain/index.js +4 -0
- package/dist/esm/sgr/chain/index.js.map +1 -0
- package/dist/esm/sgr/chain/keys.d.ts +5 -0
- package/dist/esm/sgr/chain/keys.d.ts.map +1 -0
- package/dist/esm/sgr/chain/keys.js +5 -0
- package/dist/esm/sgr/chain/keys.js.map +1 -0
- package/dist/esm/sgr/color/channel.d.ts +29 -3
- package/dist/esm/sgr/color/channel.d.ts.map +1 -1
- package/dist/esm/sgr/color/channel.js +9 -9
- package/dist/esm/sgr/color/channel.js.map +1 -1
- package/dist/esm/sgr/color/color.d.ts +9 -3
- package/dist/esm/sgr/color/color.d.ts.map +1 -1
- package/dist/esm/sgr/color/color.js +4 -10
- package/dist/esm/sgr/color/color.js.map +1 -1
- package/dist/esm/sgr/color/context.d.ts +12 -8
- package/dist/esm/sgr/color/context.d.ts.map +1 -1
- package/dist/esm/sgr/color/context.js +27 -17
- package/dist/esm/sgr/color/context.js.map +1 -1
- package/dist/esm/sgr/color/rgb.d.ts +7 -4
- package/dist/esm/sgr/color/rgb.d.ts.map +1 -1
- package/dist/esm/sgr/color/rgb.js +12 -12
- package/dist/esm/sgr/color/rgb.js.map +1 -1
- package/dist/esm/sgr/combine.d.ts +1 -1
- package/dist/esm/sgr/combine.d.ts.map +1 -1
- package/dist/esm/sgr/context.d.ts +16 -0
- package/dist/esm/sgr/context.d.ts.map +1 -0
- package/dist/esm/sgr/context.js +39 -0
- package/dist/esm/sgr/context.js.map +1 -0
- package/dist/esm/sgr/format.d.ts +19 -0
- package/dist/esm/sgr/format.d.ts.map +1 -0
- package/dist/esm/sgr/format.js +32 -0
- package/dist/esm/sgr/format.js.map +1 -0
- package/dist/esm/sgr/index.d.ts +3 -1
- package/dist/esm/sgr/index.d.ts.map +1 -1
- package/dist/esm/sgr/index.js +1 -0
- package/dist/esm/sgr/index.js.map +1 -1
- package/dist/esm/sgr/reset.js +1 -1
- package/dist/esm/sgr/reset.js.map +1 -1
- package/dist/esm/sgr/sgr.d.ts +10 -2
- package/dist/esm/sgr/sgr.d.ts.map +1 -1
- package/dist/esm/sgr/sgr.js +7 -32
- package/dist/esm/sgr/sgr.js.map +1 -1
- package/dist/esm/sgr/style.d.ts +9 -2
- package/dist/esm/sgr/style.d.ts.map +1 -1
- package/dist/esm/sgr/style.js +12 -12
- package/dist/esm/sgr/style.js.map +1 -1
- package/dist/esm/simplify/simplify.d.ts.map +1 -1
- package/dist/esm/simplify/simplify.js +3 -6
- package/dist/esm/simplify/simplify.js.map +1 -1
- package/dist/esm/slice.js +1 -1
- package/dist/esm/slice.js.map +1 -1
- package/dist/esm/strip.js +1 -1
- package/dist/esm/strip.js.map +1 -1
- package/dist/esm/terminal.js +1 -1
- package/dist/esm/terminal.js.map +1 -1
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +3 -1
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +7 -5
- package/dist/esm/utils.js.map +1 -1
- package/package.json +13 -5
- package/src/ansi.ts +3 -2
- package/src/code.ts +9 -0
- package/src/cursor.ts +5 -5
- package/src/index.ts +1 -1
- package/src/ins-del.ts +1 -1
- package/src/require.ts +3 -3
- package/src/scroll.ts +3 -3
- package/src/sgr/chain/attach.ts +13 -0
- package/src/sgr/chain/build.ts +25 -0
- package/src/sgr/chain/chain.ts +60 -0
- package/src/sgr/chain/index.ts +5 -0
- package/src/sgr/chain/keys.ts +8 -0
- package/src/sgr/color/channel.ts +47 -19
- package/src/sgr/color/color.ts +14 -19
- package/src/sgr/color/context.ts +37 -31
- package/src/sgr/color/rgb.ts +21 -20
- package/src/sgr/combine.ts +1 -1
- package/src/sgr/context.ts +68 -0
- package/src/sgr/format.ts +72 -0
- package/src/sgr/index.ts +4 -2
- package/src/sgr/reset.ts +1 -1
- package/src/sgr/sgr.ts +21 -49
- package/src/sgr/style.ts +31 -21
- package/src/simplify/simplify.ts +3 -6
- package/src/slice.ts +1 -1
- package/src/strip.ts +1 -1
- package/src/terminal.ts +1 -1
- package/src/types.ts +2 -1
- package/src/utils.ts +12 -7
- package/dist/cjs/sgr/format-builder.d.ts +0 -3
- package/dist/cjs/sgr/format-builder.d.ts.map +0 -1
- package/dist/cjs/sgr/format-builder.js +0 -34
- package/dist/cjs/sgr/format-builder.js.map +0 -1
- package/dist/cjs/sgr/types.d.ts +0 -61
- package/dist/cjs/sgr/types.d.ts.map +0 -1
- package/dist/cjs/sgr/types.js +0 -3
- package/dist/cjs/sgr/types.js.map +0 -1
- package/dist/esm/sgr/format-builder.d.ts +0 -3
- package/dist/esm/sgr/format-builder.d.ts.map +0 -1
- package/dist/esm/sgr/format-builder.js +0 -30
- package/dist/esm/sgr/format-builder.js.map +0 -1
- package/dist/esm/sgr/types.d.ts +0 -61
- package/dist/esm/sgr/types.d.ts.map +0 -1
- package/dist/esm/sgr/types.js +0 -2
- package/dist/esm/sgr/types.js.map +0 -1
- package/src/sgr/format-builder.ts +0 -52
- package/src/sgr/types.ts +0 -93
package/dist/esm/scroll.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { csi, count, noop } from "
|
|
1
|
+
import { csi, count, noop } from "#utils";
|
|
2
2
|
const scroll = {
|
|
3
3
|
up: count("S", "T"),
|
|
4
4
|
down: count("T", "S"),
|
|
5
5
|
setRegion: (top, bottom) => csi(!top || top < 2 ? // Omit top if we can use the default.
|
|
6
|
-
bottom :
|
|
6
|
+
bottom ?? "" :
|
|
7
7
|
!bottom ?
|
|
8
8
|
top :
|
|
9
|
-
|
|
9
|
+
[top, bottom], "r"),
|
|
10
10
|
};
|
|
11
11
|
const disabled = {
|
|
12
12
|
up: noop,
|
package/dist/esm/scroll.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/scroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,GAAG;IACd,EAAE,EAAU,KAAK,CAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,IAAI,EAAQ,KAAK,CAAmB,GAAG,EAAE,GAAG,CAAC;IAC7C,SAAS,EAAG,CAAC,GAAY,EAAE,MAAe,EAAE,EAAE,CAC7C,GAAG,CACF,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC;QACvD,MAAM,IAAI,EAAE,CAAC,CAAC;QACf,CAAC,MAAM,CAAC,CAAC;YACR,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,EAAE,MAAM,CAAC,EACb,GAAG,CACH;CACF,CAAC;AAIF,MAAM,QAAQ,GAAW;IACxB,EAAE,EAAU,IAAI;IAChB,IAAI,EAAQ,IAAI;IAChB,SAAS,EAAG,IAAI;CAChB,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,5 @@
|
|
|
1
|
+
import type { FormatContext } from "../context.js";
|
|
2
|
+
import type { Format, FormatBase } from "../format.js";
|
|
3
|
+
import type { ChainKey } from "./keys.js";
|
|
4
|
+
export declare const attachChain: <Keys extends ChainKey>(context: FormatContext<Keys>, baseFormat: FormatBase) => Format<Keys>;
|
|
5
|
+
//# sourceMappingURL=attach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/attach.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAW,YAAY,CAAC;AACnD,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAgB,QAAQ,CAAC;AAE/C,eAAO,MAAM,WAAW,GAAI,IAAI,SAAS,QAAQ,EAChD,SAAa,aAAa,CAAC,IAAI,CAAC,EAChC,YAAa,UAAU,KACrB,MAAM,CAAC,IAAI,CAEsD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { lazy } from "../lazy.js";
|
|
2
|
+
import { makeChain } from "./build.js";
|
|
3
|
+
export const attachChain = (context, baseFormat) => !context.keys.size
|
|
4
|
+
? baseFormat
|
|
5
|
+
: lazy.add(baseFormat, "and", () => makeChain(context, baseFormat));
|
|
6
|
+
//# sourceMappingURL=attach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../../src/sgr/chain/attach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAW,SAAS,CAAC;AAClC,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAMlC,MAAM,CAAC,MAAM,WAAW,GAAG,CAC1B,OAAgC,EAChC,UAAuB,EACR,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;IACpC,CAAC,CAAC,UAA0B;IAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Color } from "../color/index.js";
|
|
2
|
+
import type { FormatContext } from "../context.js";
|
|
3
|
+
import type { FormatBase } from "../format.js";
|
|
4
|
+
import type { Style } from "../style.js";
|
|
5
|
+
import type { ChainKey } from "./keys.js";
|
|
6
|
+
export type Chain<Keys extends ChainKey> = Color<Keys> & Style<Keys>;
|
|
7
|
+
export declare function makeChain<Keys extends ChainKey>(context: FormatContext<Keys>, baseFormat: FormatBase): Chain<Keys>;
|
|
8
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/build.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAc,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAS,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,KAAK,EAAC,MAAc,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAW,QAAQ,CAAC;AAE1C,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAErE,wBAAgB,SAAS,CAAC,IAAI,SAAS,QAAQ,EAC9C,OAAO,EAAM,aAAa,CAAC,IAAI,CAAC,EAChC,UAAU,EAAG,UAAU,GACrB,KAAK,CAAC,IAAI,CAAC,CASb"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { makeColor } from "../color/index.js";
|
|
2
|
+
import { combineCodes } from "../combine.js";
|
|
3
|
+
import { makeStyle } from "../style.js";
|
|
4
|
+
export function makeChain(context, baseFormat) {
|
|
5
|
+
const parentCodes = context.parentCodes ? {
|
|
6
|
+
open: combineCodes(context.parentCodes.open, baseFormat.codes.open),
|
|
7
|
+
close: combineCodes(baseFormat.codes.close, context.parentCodes.close),
|
|
8
|
+
} : baseFormat.codes;
|
|
9
|
+
const chainedContext = { ...context, parentCodes };
|
|
10
|
+
return { ...makeColor(chainedContext), ...makeStyle(chainedContext) };
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../src/sgr/chain/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAS,UAAU,CAAC;AACtC,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAS,UAAU,CAAC;AAUtC,MAAM,UAAU,SAAS,CACxB,OAAgC,EAChC,UAAuB;IAEvB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACzC,IAAI,EAAI,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;QACrE,KAAK,EAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;KACvE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;IAErB,MAAM,cAAc,GAAwB,EAAC,GAAG,OAAO,EAAE,WAAW,EAAC,CAAC;IAEtE,OAAO,EAAC,GAAG,SAAS,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,EAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Features } from "#features";
|
|
2
|
+
import type { Format, FormatBase } from "../format.js";
|
|
3
|
+
import type { ChainKey } from "./keys.js";
|
|
4
|
+
type ChainArgs<Keys extends ChainKey> = [
|
|
5
|
+
keys: ReadonlySet<Keys>,
|
|
6
|
+
baseFormat: FormatBase,
|
|
7
|
+
features?: Features
|
|
8
|
+
];
|
|
9
|
+
export declare function chain(baseFormat: FormatBase, features?: Features): Format<ChainKey>;
|
|
10
|
+
export declare function chain<Keys extends ChainKey = ChainKey>(...args: ChainArgs<Keys>): Format<Keys>;
|
|
11
|
+
export type AddChain = typeof chain;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/chain.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAgB,WAAW,CAAC;AAClD,OAAO,KAAK,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAgB,QAAQ,CAAC;AAsB/C,KAAK,SAAS,CAAC,IAAI,SAAS,QAAQ,IAAI;IACvC,IAAI,EAAS,WAAW,CAAC,IAAI,CAAC;IAC9B,UAAU,EAAG,UAAU;IACvB,QAAQ,CAAC,EAAI,QAAQ;CACrB,CAAC;AAaF,wBAAgB,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrF,wBAAgB,KAAK,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,EAAE,GAAG,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAYhG,MAAM,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { define, ownProperties } from "@peteanderson/props";
|
|
2
|
+
import { getContext } from "../context.js";
|
|
3
|
+
import { attachChain } from "./attach.js";
|
|
4
|
+
import { allKeys } from "./keys.js";
|
|
5
|
+
function cloneFormatBase(baseFormat) {
|
|
6
|
+
const clone = (text) => baseFormat(text);
|
|
7
|
+
const descriptors = ownProperties(baseFormat);
|
|
8
|
+
delete descriptors.and;
|
|
9
|
+
return define(clone, descriptors);
|
|
10
|
+
}
|
|
11
|
+
function keysMatch(a, b) {
|
|
12
|
+
if (a.size !== b.size)
|
|
13
|
+
return false;
|
|
14
|
+
for (const key of a)
|
|
15
|
+
if (!b.has(key))
|
|
16
|
+
return false;
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
const resolveArgs = (args) => args.length === 1 ?
|
|
20
|
+
[allKeys, args[0], undefined] :
|
|
21
|
+
args.length === 2 ?
|
|
22
|
+
typeof args[0] === "function"
|
|
23
|
+
? [allKeys, ...args]
|
|
24
|
+
: args :
|
|
25
|
+
args;
|
|
26
|
+
export function chain(...args) {
|
|
27
|
+
const [keys, baseFormat, features] = resolveArgs(args);
|
|
28
|
+
let context = getContext(baseFormat, features);
|
|
29
|
+
if (!keysMatch(context.keys, keys))
|
|
30
|
+
context = { ...context, keys };
|
|
31
|
+
return attachChain(context, cloneFormatBase(baseFormat));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../../src/sgr/chain/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAC,MAAiB,YAAY,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAgB,UAAU,CAAC;AAC/C,OAAO,EAAC,OAAO,EAAC,MAAoB,QAAQ,CAAC;AAM7C,SAAS,eAAe,CAAC,UAAsB;IAC9C,MAAM,KAAK,GAAS,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAE9C,OAAO,WAAW,CAAC,GAAG,CAAC;IAEvB,OAAO,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,SAAS,CAAC,CAAwB,EAAE,CAAwB;IACpE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;QACpB,OAAO,KAAK,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACd,OAAO,KAAK,CAAC;IAEf,OAAO,IAAI,CAAC;AACb,CAAC;AAUD,MAAM,WAAW,GAAG,CAAwB,IAA0B,EAAmB,EAAE,CAC1F,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAClB,CAAC,OAA4B,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU;YAC5B,CAAC,CAAC,CAAC,OAA4B,EAAE,GAAG,IAAoB,CAAC;YACzD,CAAC,CAAC,IAAuB,CAAC,CAAC;QAC7B,IAAuB,CAAC;AAKzB,MAAM,UAAU,KAAK,CAAwB,GAAG,IAA0B;IACzE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEvD,IAAI,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;QACjC,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,IAAI,EAAC,CAAC;IAE9B,OAAO,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AAEvB,YAAY,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sgr/chain/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const chainKeys: readonly ["fg", "bg", ...("italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "frame" | "overline" | "bold" | "dim" | "doubleUnderline" | "encircle")[]];
|
|
2
|
+
export type ChainKey = typeof chainKeys[number];
|
|
3
|
+
export declare const allKeys: ReadonlySet<ChainKey>;
|
|
4
|
+
export {};
|
|
5
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../../src/sgr/chain/keys.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,SAAS,wKAAuC,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAEhD,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/sgr/chain/keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAO,UAAU,CAAC;AACnC,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AAEnC,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAU,CAAC;AAIvD,MAAM,CAAC,MAAM,OAAO,GAA0B,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC"}
|
|
@@ -1,4 +1,30 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
1
|
+
import type { ChainKey } from "../chain/index.js";
|
|
2
|
+
import type { FormatContext } from "../context.js";
|
|
3
|
+
import type { Format } from "../format.js";
|
|
4
|
+
import type { ColorKey } from "./color.js";
|
|
5
|
+
export interface Channel<Keys extends ChainKey = ChainKey> {
|
|
6
|
+
black: Format<Keys>;
|
|
7
|
+
red: Format<Keys>;
|
|
8
|
+
green: Format<Keys>;
|
|
9
|
+
yellow: Format<Keys>;
|
|
10
|
+
blue: Format<Keys>;
|
|
11
|
+
magenta: Format<Keys>;
|
|
12
|
+
cyan: Format<Keys>;
|
|
13
|
+
white: Format<Keys>;
|
|
14
|
+
brightBlack: Format<Keys>;
|
|
15
|
+
brightRed: Format<Keys>;
|
|
16
|
+
brightGreen: Format<Keys>;
|
|
17
|
+
brightYellow: Format<Keys>;
|
|
18
|
+
brightBlue: Format<Keys>;
|
|
19
|
+
brightMagenta: Format<Keys>;
|
|
20
|
+
brightCyan: Format<Keys>;
|
|
21
|
+
brightWhite: Format<Keys>;
|
|
22
|
+
rgb: (r: number, g: number, b: number) => Format<Keys>;
|
|
23
|
+
x256: {
|
|
24
|
+
(code: number): Format<Keys>;
|
|
25
|
+
(r: number, g: number, b: number): Format<Keys>;
|
|
26
|
+
};
|
|
27
|
+
default: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function makeChannel<Keys extends ChainKey>(formatContext: FormatContext<Keys>, channel: ColorKey): Channel<Keys>;
|
|
4
30
|
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAW,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAa,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAW,SAAS,CAAC;AAE3C,MAAM,WAAW,OAAO,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ;IACxD,KAAK,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,EAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,EAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,EAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,WAAW,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAS,EAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,YAAY,EAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,aAAa,EAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,EAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAE7B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvD,IAAI,EAAE;QACL,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;KAChD,CAAC;IAEF,OAAO,EAAE,MAAM,CAAC;CAChB;AAaD,wBAAgB,WAAW,CAAC,IAAI,SAAS,QAAQ,EAChD,aAAa,EAAG,aAAa,CAAC,IAAI,CAAC,EACnC,OAAO,EAAS,QAAQ,GACtB,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { csi } from "
|
|
1
|
+
import { csi } from "#utils";
|
|
2
2
|
import { lazy } from "../lazy.js";
|
|
3
|
-
import {
|
|
3
|
+
import { buildChannelContext } from "./context.js";
|
|
4
4
|
import { makeRGB, makeX256 } from "./rgb.js";
|
|
5
5
|
const colors = [
|
|
6
6
|
"black",
|
|
@@ -12,18 +12,18 @@ const colors = [
|
|
|
12
12
|
"cyan",
|
|
13
13
|
"white",
|
|
14
14
|
];
|
|
15
|
-
export function makeChannel(
|
|
16
|
-
const
|
|
17
|
-
const { build, bright,
|
|
15
|
+
export function makeChannel(formatContext, channel) {
|
|
16
|
+
const channelContext = buildChannelContext(formatContext, channel);
|
|
17
|
+
const { build, bright, close, offset } = channelContext;
|
|
18
18
|
const rtn = {
|
|
19
|
-
rgb: makeRGB(
|
|
20
|
-
x256: makeX256(
|
|
21
|
-
default:
|
|
19
|
+
rgb: makeRGB(channelContext),
|
|
20
|
+
x256: makeX256(channelContext),
|
|
21
|
+
default: csi(close, "m"),
|
|
22
22
|
};
|
|
23
23
|
for (let i = 0; i < colors.length; i++) {
|
|
24
24
|
const color = colors[i];
|
|
25
25
|
const brightColor = `bright${color[0].toUpperCase()}${color.slice(1)}`;
|
|
26
|
-
lazy.add(rtn, color, () => build(
|
|
26
|
+
lazy.add(rtn, color, () => build(offset(i)));
|
|
27
27
|
lazy.add(rtn, brightColor, () => bright(i));
|
|
28
28
|
}
|
|
29
29
|
return rtn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../../../src/sgr/color/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAsB,QAAQ,CAAC;AAC3C,OAAO,EAAC,IAAI,EAAC,MAAqB,SAAS,CAAC;AAC5C,OAAO,EAAC,mBAAmB,EAAC,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAQ,OAAO,CAAC;AAoC1C,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,aAAmC,EACnC,OAAwB;IAExB,MAAM,cAAc,GAAmB,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnF,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,cAAc,CAAC;IAEtD,MAAM,GAAG,GAAG;QACX,GAAG,EAAO,OAAO,CAAC,cAAc,CAAC;QACjC,IAAI,EAAM,QAAQ,CAAC,cAAc,CAAC;QAClC,OAAO,EAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;KACG,CAAC;IAE9B,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,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,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"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
1
|
+
import type { ChainKey } from "../chain/index.js";
|
|
2
|
+
import type { FormatContext } from "../context.js";
|
|
3
|
+
import type { Channel } from "./channel.js";
|
|
4
|
+
export declare const channels: readonly ["fg", "bg"];
|
|
5
|
+
export type ColorKey = typeof channels[number];
|
|
6
|
+
export type Color<Keys extends ChainKey = ChainKey> = {
|
|
7
|
+
[K in Extract<ColorKey, Keys>]: Channel<Exclude<Keys, K>>;
|
|
8
|
+
};
|
|
9
|
+
export declare function makeColor<Keys extends ChainKey>(context: FormatContext<Keys>): Color<Keys>;
|
|
4
10
|
//# sourceMappingURL=color.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/color.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/color.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAW,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAY,WAAW,CAAC;AAE7C,eAAO,MAAM,QAAQ,uBAAwB,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE/C,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,IAAI;KACpD,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF,wBAAgB,SAAS,CAAC,IAAI,SAAS,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAS1F"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
import { lazy } from "../lazy.js";
|
|
3
2
|
import { makeChannel } from "./channel.js";
|
|
4
|
-
const channels = ["fg", "bg"];
|
|
5
|
-
export function makeColor(
|
|
3
|
+
export const channels = ["fg", "bg"];
|
|
4
|
+
export function makeColor(context) {
|
|
6
5
|
const rtn = {};
|
|
7
6
|
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
|
-
}
|
|
7
|
+
if (context.keys.has(channel))
|
|
8
|
+
lazy.add(rtn, channel, () => makeChannel(context.removeKey(channel), channel));
|
|
15
9
|
}
|
|
16
10
|
return rtn;
|
|
17
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../src/sgr/color/color.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../src/sgr/color/color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAa,SAAS,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAMtC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,CAAU,CAAC;AAQ9C,MAAM,UAAU,SAAS,CAAwB,OAA4B;IAC5E,MAAM,GAAG,GAAG,EAAiB,CAAC;IAE9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAe,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,OAAe,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { Code } from "#code";
|
|
2
|
+
import type { FormatContext } from "../context.js";
|
|
3
|
+
import type { Format } from "../format.js";
|
|
4
|
+
import type { ColorKey } from "./color.js";
|
|
5
|
+
export declare function buildChannelContext(formatContext: FormatContext, channel: ColorKey): {
|
|
6
|
+
colorDepth: import("../../features/index.js").ColorDepth;
|
|
7
|
+
channel: "fg" | "bg";
|
|
8
|
+
open: Code;
|
|
9
|
+
close: Code;
|
|
10
|
+
offset: (delta: number) => Code;
|
|
11
|
+
extended: (...args: number[]) => Code;
|
|
8
12
|
build: (open: Code) => Format;
|
|
9
13
|
bright: (index: number) => Format;
|
|
10
14
|
x16ToX8: (code: number) => Format;
|
|
11
15
|
};
|
|
12
|
-
export type
|
|
16
|
+
export type ChannelContext = ReturnType<typeof buildChannelContext>;
|
|
13
17
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAc,OAAO,CAAC;AAInC,OAAO,KAAK,EAAC,aAAa,EAAC,MAAW,YAAY,CAAC;AACnD,OAAO,KAAK,EAAC,MAAM,EAAa,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAgB,SAAS,CAAC;AAkBhD,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ;;;;;oBAb/D,MAAM,KAAG,IAAI;wBACX,MAAM,EAAE,KAAG,IAAI;kBAgBb,IAAI,KAAG,MAAM;oBAOd,MAAM,KAAK,MAAM;oBAQjB,MAAM,KAAK,MAAM;EAMvC;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -1,23 +1,33 @@
|
|
|
1
|
+
import { Code } from "#code";
|
|
1
2
|
import { combineCodes } from "../combine.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { makeFormat } from "../format.js";
|
|
4
|
+
const codes = (open) => ({
|
|
5
|
+
open: open,
|
|
6
|
+
close: open + 9,
|
|
7
|
+
offset: (delta) => open + delta,
|
|
8
|
+
extended: (...args) => [open + 8, ...args],
|
|
9
|
+
});
|
|
10
|
+
const baseCodes = { fg: codes(30), bg: codes(40) };
|
|
11
|
+
const disabledCodes = {
|
|
12
|
+
open: Code.disabled,
|
|
13
|
+
close: Code.disabled,
|
|
14
|
+
offset: () => Code.disabled,
|
|
15
|
+
extended: () => Code.disabled,
|
|
5
16
|
};
|
|
6
|
-
export function
|
|
7
|
-
const {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const bright = colorDepth >= 4 ? index => build(open + 60 + index) :
|
|
17
|
+
export function buildChannelContext(formatContext, channel) {
|
|
18
|
+
const { colorDepth } = formatContext.features;
|
|
19
|
+
const { open, close, extended, offset } = colorDepth > 1 ? baseCodes[channel] : disabledCodes;
|
|
20
|
+
const build = (open) => makeFormat(formatContext, open, close);
|
|
21
|
+
const combine = (base, style) => makeFormat(formatContext, combineCodes(base.codes.open, style.codes.open), combineCodes(base.codes.close, style.codes.close));
|
|
22
|
+
const bright = colorDepth >= 4 ? index => build(offset(60 + index)) :
|
|
13
23
|
colorDepth === 3 ?
|
|
14
24
|
channel === "fg" ?
|
|
15
|
-
index => combine(style.bold, build(
|
|
16
|
-
index => build(
|
|
17
|
-
() => build(
|
|
18
|
-
const x16ToX8 = channel === "fg"
|
|
19
|
-
code => code >= 60 ?
|
|
20
|
-
code =>
|
|
21
|
-
return { colorDepth, channel, open, close, build, bright, x16ToX8 };
|
|
25
|
+
index => combine(formatContext.style.bold, build(offset(index))) :
|
|
26
|
+
index => build(offset(index)) :
|
|
27
|
+
() => build(Code.disabled);
|
|
28
|
+
const x16ToX8 = channel === "fg"
|
|
29
|
+
? code => code >= 60 ? bright(code - 60) : build(offset(code))
|
|
30
|
+
: code => build(offset(code % 60));
|
|
31
|
+
return { colorDepth, channel, open, close, offset, extended, build, bright, x16ToX8 };
|
|
22
32
|
}
|
|
23
33
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/sgr/color/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/sgr/color/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
1
|
+
import type { Format } from "../format.js";
|
|
2
|
+
import type { Channel } from "./channel.js";
|
|
3
|
+
import type { ChannelContext } from "./context.js";
|
|
4
|
+
export declare function makeRGB(ctx: ChannelContext): Channel["rgb"];
|
|
5
|
+
type X256 = (...args: [number] | [number, number, number]) => Format;
|
|
6
|
+
export declare function makeX256(ctx: ChannelContext): X256;
|
|
7
|
+
export {};
|
|
5
8
|
//# sourceMappingURL=rgb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rgb.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/rgb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rgb.d.ts","sourceRoot":"","sources":["../../../../src/sgr/color/rgb.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAc,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAa,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAE9C,wBAAgB,OAAO,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAa3D;AAED,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAErE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAwBlD"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
+
import { Code } from "#code";
|
|
1
2
|
import { clip, rgbToX256, rgbToX16, rgbToX8, x256ToRgb } from "./utils.js";
|
|
2
3
|
export function makeRGB(ctx) {
|
|
3
|
-
const { colorDepth, channel, build,
|
|
4
|
-
return (colorDepth >= 24 ? (r, g, b) => build(
|
|
5
|
-
colorDepth >= 8 ? (r, g, b) => build(
|
|
6
|
-
colorDepth >= 4 ? (r, g, b) => build(
|
|
4
|
+
const { colorDepth, channel, build, offset, extended, x16ToX8 } = ctx;
|
|
5
|
+
return (colorDepth >= 24 ? (r, g, b) => build(extended(2, ...clip(r, g, b))) :
|
|
6
|
+
colorDepth >= 8 ? (r, g, b) => build(extended(5, rgbToX256(...clip(r, g, b)))) :
|
|
7
|
+
colorDepth >= 4 ? (r, g, b) => build(offset(rgbToX16(...clip(r, g, b)))) :
|
|
7
8
|
colorDepth === 3 ?
|
|
8
9
|
channel === "fg" ?
|
|
9
10
|
(r, g, b) => x16ToX8(rgbToX16(...clip(r, g, b))) :
|
|
10
|
-
(r, g, b) => build(
|
|
11
|
-
() => build(
|
|
11
|
+
(r, g, b) => build(offset(rgbToX8(...clip(r, g, b)))) :
|
|
12
|
+
() => build(Code.disabled));
|
|
12
13
|
}
|
|
13
14
|
export function makeX256(ctx) {
|
|
14
|
-
const { colorDepth, channel, build,
|
|
15
|
+
const { colorDepth, channel, build, offset, extended, x16ToX8 } = ctx;
|
|
15
16
|
return (colorDepth >= 8 ?
|
|
16
|
-
(...args) => build(
|
|
17
|
+
(...args) => build(extended(5, args.length === 3 ? rgbToX256(...clip(...args)) : clip(args[0]))) :
|
|
17
18
|
colorDepth >= 4 ?
|
|
18
|
-
(...args) => build(
|
|
19
|
-
rgbToX16(...(args.length === 3 ? clip(...args) : x256ToRgb(clip(args[0]))))) :
|
|
19
|
+
(...args) => build(offset(rgbToX16(...(args.length === 3 ? clip(...args) : x256ToRgb(clip(args[0])))))) :
|
|
20
20
|
colorDepth === 3 ?
|
|
21
21
|
channel === "fg" ?
|
|
22
22
|
(...args) => x16ToX8(args.length === 3 ?
|
|
23
23
|
rgbToX16(...clip(...args)) :
|
|
24
24
|
rgbToX16(...x256ToRgb(clip(args[0])))) :
|
|
25
|
-
(...args) => build(
|
|
26
|
-
() => build(
|
|
25
|
+
(...args) => build(offset(rgbToX8(...args.length === 3 ? clip(...args) : x256ToRgb(clip(args[0]))))) :
|
|
26
|
+
() => build(Code.disabled));
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=rgb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rgb.js","sourceRoot":"","sources":["../../../../src/sgr/color/rgb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"rgb.js","sourceRoot":"","sources":["../../../../src/sgr/color/rgb.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/sgr/combine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"combine.d.ts","sourceRoot":"","sources":["../../../src/sgr/combine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,OAAO,CAAC;AAEhC,eAAO,MAAM,YAAY,GAAI,MAAM,IAAI,EAAE,GAAG,OAAO,IAAI,EAAE,KAAG,IAChB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Codes } from "#code";
|
|
2
|
+
import type { Features } from "#features";
|
|
3
|
+
import type { ChainKey } from "./chain/index.js";
|
|
4
|
+
import type { FormatBase } from "./format.js";
|
|
5
|
+
import type { Style } from "./style.js";
|
|
6
|
+
export interface FormatContext<Keys extends ChainKey = ChainKey> {
|
|
7
|
+
features: Features;
|
|
8
|
+
keys: ReadonlySet<Keys>;
|
|
9
|
+
parentCodes?: Codes;
|
|
10
|
+
style: Style;
|
|
11
|
+
removeKey: <Key extends Keys>(key: Key) => FormatContext<Exclude<Keys, Key>>;
|
|
12
|
+
registerFormat: (format: FormatBase) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function getContext(format: FormatBase, features?: Features): FormatContext<any>;
|
|
15
|
+
export declare function createContext<Keys extends ChainKey = ChainKey>(features: Features, parentCodes?: Codes, keys?: ReadonlySet<Keys>): FormatContext<Keys>;
|
|
16
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/sgr/context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAW,OAAO,CAAC;AACtC,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAQ,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAQ,SAAS,CAAC;AACxC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAC,KAAK,EAAC,MAAW,SAAS,CAAC;AAExC,MAAM,WAAW,aAAa,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ;IAC9D,QAAQ,EAAS,QAAQ,CAAC;IAC1B,IAAI,EAAa,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,WAAW,CAAC,EAAK,KAAK,CAAC;IACvB,KAAK,EAAY,KAAK,CAAC;IACvB,SAAS,EAAQ,CAAC,GAAG,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACnF,cAAc,EAAG,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CAC9C;AAaD,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAmBtF;AAED,wBAAgB,aAAa,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ,EAC7D,QAAQ,EAAO,QAAQ,EACvB,WAAW,CAAC,EAAG,KAAK,EACpB,IAAI,CAAC,EAAU,WAAW,CAAC,IAAI,CAAC,GAC9B,aAAa,CAAC,IAAI,CAAC,CAYrB"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getFeatures } from "#features";
|
|
2
|
+
import { allKeys } from "./chain/index.js";
|
|
3
|
+
import { makeStyle } from "./style.js";
|
|
4
|
+
function removeKey(context, key) {
|
|
5
|
+
const keys = new Set(context.keys);
|
|
6
|
+
keys.delete(key);
|
|
7
|
+
return { ...context, keys: keys };
|
|
8
|
+
}
|
|
9
|
+
const cache = new WeakMap();
|
|
10
|
+
export function getContext(format, features) {
|
|
11
|
+
let context = cache.get(format);
|
|
12
|
+
if (context)
|
|
13
|
+
return context;
|
|
14
|
+
features ??= getFeatures(format.open ? 24 : 1);
|
|
15
|
+
context = {
|
|
16
|
+
features,
|
|
17
|
+
keys: allKeys,
|
|
18
|
+
parentCodes: format.codes,
|
|
19
|
+
style: undefined,
|
|
20
|
+
removeKey: key => removeKey(context, key),
|
|
21
|
+
registerFormat: (format) => void cache.set(format, context),
|
|
22
|
+
};
|
|
23
|
+
context.style = makeStyle(context);
|
|
24
|
+
cache.set(format, context);
|
|
25
|
+
return context;
|
|
26
|
+
}
|
|
27
|
+
export function createContext(features, parentCodes, keys) {
|
|
28
|
+
const context = {
|
|
29
|
+
features,
|
|
30
|
+
keys: keys ?? allKeys,
|
|
31
|
+
parentCodes,
|
|
32
|
+
style: undefined,
|
|
33
|
+
removeKey: key => removeKey(context, key),
|
|
34
|
+
registerFormat: format => void cache.set(format, context),
|
|
35
|
+
};
|
|
36
|
+
context.style = makeStyle(keys ? { ...context, keys: allKeys } : context);
|
|
37
|
+
return context;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/sgr/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,OAAO,EAAC,MAAU,SAAS,CAAC;AACpC,OAAO,EAAC,SAAS,EAAC,MAAQ,SAAS,CAAC;AAiBpC,SAAS,SAAS,CACjB,OAA6B,EAC7B,GAAa;IAEb,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,EAAC,GAAG,OAAO,EAAE,IAAI,EAAE,IAAkD,EAAC,CAAC;AAC/E,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,OAAO,EAAkC,CAAC;AAE5D,MAAM,UAAU,UAAU,CAAC,MAAkB,EAAE,QAAmB;IACjE,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,OAAO;QACV,OAAO,OAAO,CAAC;IAEhB,QAAQ,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,OAAO,GAAG;QACT,QAAQ;QACR,IAAI,EAAa,OAAO;QACxB,WAAW,EAAM,MAAM,CAAC,KAAK;QAC7B,KAAK,EAAY,SAA6B;QAC9C,SAAS,EAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,OAAQ,EAAE,GAAG,CAAC;QAChD,cAAc,EAAG,CAAC,MAAkB,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAQ,CAAC;KACzE,CAAC;IACF,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa,CAC5B,QAAuB,EACvB,WAAoB,EACpB,IAAgC;IAEhC,MAAM,OAAO,GAAwB;QACpC,QAAQ;QACR,IAAI,EAAa,IAAI,IAAI,OAA4B;QACrD,WAAW;QACX,KAAK,EAAY,SAA6B;QAC9C,SAAS,EAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;QAC/C,cAAc,EAAG,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;KAC1D,CAAC;IACF,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAExE,OAAO,OAAO,CAAC;AAChB,CAAC"}
|