@peteanderson/ansi 2.2.0 → 2.3.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 +12 -0
- package/dist/cjs/sgr/color/context.d.ts.map +1 -1
- package/dist/cjs/sgr/color/context.js +4 -2
- package/dist/cjs/sgr/color/context.js.map +1 -1
- package/dist/cjs/sgr/color/rgb.js +2 -2
- 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/combine.js +3 -12
- package/dist/cjs/sgr/combine.js.map +1 -1
- package/dist/cjs/sgr/format-builder.d.ts +1 -1
- package/dist/cjs/sgr/format-builder.d.ts.map +1 -1
- package/dist/cjs/sgr/format-builder.js +22 -28
- package/dist/cjs/sgr/format-builder.js.map +1 -1
- package/dist/cjs/sgr/reset.d.ts.map +1 -1
- package/dist/cjs/sgr/reset.js +1 -1
- package/dist/cjs/sgr/reset.js.map +1 -1
- package/dist/cjs/sgr/sgr.d.ts.map +1 -1
- package/dist/cjs/sgr/sgr.js +9 -10
- package/dist/cjs/sgr/sgr.js.map +1 -1
- package/dist/cjs/sgr/style.d.ts.map +1 -1
- package/dist/cjs/sgr/style.js +1 -1
- package/dist/cjs/sgr/style.js.map +1 -1
- package/dist/cjs/sgr/types.d.ts +2 -1
- package/dist/cjs/sgr/types.d.ts.map +1 -1
- package/dist/cjs/simplify/lookup.d.ts +2 -2
- package/dist/cjs/simplify/lookup.d.ts.map +1 -1
- package/dist/cjs/simplify/lookup.js +1 -0
- package/dist/cjs/simplify/lookup.js.map +1 -1
- package/dist/cjs/simplify/simplify.js +2 -2
- package/dist/cjs/simplify/simplify.js.map +1 -1
- package/dist/cjs/simplify/state.d.ts +3 -3
- package/dist/cjs/simplify/state.d.ts.map +1 -1
- package/dist/cjs/simplify/state.js.map +1 -1
- package/dist/cjs/simplify/types.d.ts +5 -4
- package/dist/cjs/simplify/types.d.ts.map +1 -1
- package/dist/cjs/simplify/utils.d.ts +3 -2
- package/dist/cjs/simplify/utils.d.ts.map +1 -1
- package/dist/cjs/simplify/utils.js.map +1 -1
- package/dist/esm/sgr/color/context.d.ts.map +1 -1
- package/dist/esm/sgr/color/context.js +4 -2
- package/dist/esm/sgr/color/context.js.map +1 -1
- package/dist/esm/sgr/color/rgb.js +2 -2
- 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/combine.js +2 -12
- package/dist/esm/sgr/combine.js.map +1 -1
- package/dist/esm/sgr/format-builder.d.ts +1 -1
- package/dist/esm/sgr/format-builder.d.ts.map +1 -1
- package/dist/esm/sgr/format-builder.js +20 -27
- package/dist/esm/sgr/format-builder.js.map +1 -1
- package/dist/esm/sgr/reset.d.ts.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.map +1 -1
- package/dist/esm/sgr/sgr.js +9 -10
- package/dist/esm/sgr/sgr.js.map +1 -1
- package/dist/esm/sgr/style.d.ts.map +1 -1
- package/dist/esm/sgr/style.js +1 -1
- package/dist/esm/sgr/style.js.map +1 -1
- package/dist/esm/sgr/types.d.ts +2 -1
- package/dist/esm/sgr/types.d.ts.map +1 -1
- package/dist/esm/simplify/lookup.d.ts +2 -2
- package/dist/esm/simplify/lookup.d.ts.map +1 -1
- package/dist/esm/simplify/lookup.js +1 -0
- package/dist/esm/simplify/lookup.js.map +1 -1
- package/dist/esm/simplify/simplify.js +2 -2
- package/dist/esm/simplify/simplify.js.map +1 -1
- package/dist/esm/simplify/state.d.ts +3 -3
- package/dist/esm/simplify/state.d.ts.map +1 -1
- package/dist/esm/simplify/state.js.map +1 -1
- package/dist/esm/simplify/types.d.ts +5 -4
- package/dist/esm/simplify/types.d.ts.map +1 -1
- package/dist/esm/simplify/utils.d.ts +3 -2
- package/dist/esm/simplify/utils.d.ts.map +1 -1
- package/dist/esm/simplify/utils.js.map +1 -1
- package/package.json +1 -1
- package/src/sgr/color/context.ts +4 -2
- package/src/sgr/color/rgb.ts +2 -2
- package/src/sgr/combine.ts +4 -13
- package/src/sgr/format-builder.ts +32 -39
- package/src/sgr/reset.ts +1 -1
- package/src/sgr/sgr.ts +10 -16
- package/src/sgr/style.ts +3 -3
- package/src/sgr/types.ts +2 -1
- package/src/simplify/lookup.ts +4 -3
- package/src/simplify/simplify.ts +3 -3
- package/src/simplify/state.ts +5 -5
- package/src/simplify/types.ts +7 -4
- package/src/simplify/utils.ts +7 -2
- package/src/utility-types.d.ts +5 -1
package/dist/esm/sgr/combine.js
CHANGED
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
for (const code of codes) {
|
|
4
|
-
if (Array.isArray(code)) {
|
|
5
|
-
for (const c of code)
|
|
6
|
-
set.add(c);
|
|
7
|
-
}
|
|
8
|
-
else
|
|
9
|
-
set.add(code);
|
|
10
|
-
}
|
|
11
|
-
return [...set];
|
|
12
|
-
}
|
|
1
|
+
import { State } from "../simplify/state.js";
|
|
2
|
+
export const combineCodes = (base, ...codes) => new State().update([base, ...codes].flat());
|
|
13
3
|
//# sourceMappingURL=combine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/sgr/combine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"combine.js","sourceRoot":"","sources":["../../../src/sgr/combine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,mBAAmB,CAAC;AAIxC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAU,EAAE,GAAG,KAAa,EAAQ,EAAE,CAClE,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ChainBuilder, FormatBuilder } from "./types.js";
|
|
2
|
-
export declare
|
|
2
|
+
export declare const makeFormatBuilder: (makeChain: ChainBuilder) => FormatBuilder;
|
|
3
3
|
//# sourceMappingURL=format-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-builder.d.ts","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAsC,aAAa,EAAC,MAAM,SAAS,CAAC;AAY7F,
|
|
1
|
+
{"version":3,"file":"format-builder.d.ts","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAsC,aAAa,EAAC,MAAM,SAAS,CAAC;AAY7F,eAAO,MAAM,iBAAiB,GAAI,WAAW,YAAY,KAAG,aAkC1D,CAAC"}
|
|
@@ -5,32 +5,25 @@ const codeSequence = (code) => Array.isArray(code) ? code.join(';') : code;
|
|
|
5
5
|
const chain = (makeChain, keys, baseFormat) => !keys.size
|
|
6
6
|
? baseFormat
|
|
7
7
|
: lazy.add(baseFormat, "and", () => makeChain(keys, baseFormat));
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
return keys => chain(makeChain, keys, define((s) => s, {
|
|
30
|
-
open: { value: "", enumerable: true },
|
|
31
|
-
close: { value: "", enumerable: true },
|
|
32
|
-
codes: { value: { open: [], close: [] }, enumerable: true },
|
|
33
|
-
combine: { value() { return this; }, enumerable: true },
|
|
8
|
+
export const makeFormatBuilder = (makeChain) => function format(keys, open, close, reset) {
|
|
9
|
+
const empty = Array.isArray(open) && !open.length;
|
|
10
|
+
const openCode = empty ? "" : codeSequence(open);
|
|
11
|
+
const closeCode = empty ? "" : codeSequence(close);
|
|
12
|
+
const openSequence = empty ? "" : `\x1b[${openCode}m`;
|
|
13
|
+
const closeSequence = empty ? "" : `\x1b[${closeCode}m`;
|
|
14
|
+
const reopenCode = reset && !empty ? `${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(empty
|
|
18
|
+
? (s) => s
|
|
19
|
+
: (s) => s ? openSequence + s.replace(rxClose, replace) + closeSequence : s, {
|
|
20
|
+
open: { value: openSequence, enumerable: true },
|
|
21
|
+
close: { value: closeSequence, enumerable: true },
|
|
22
|
+
codes: { value: { open, close }, enumerable: true },
|
|
23
|
+
combine: {
|
|
24
|
+
value: (...formats) => format(keys, combineCodes(open, ...formats.map(f => f.codes.open)), combineCodes(close, ...formats.map(f => f.codes.close)), reset),
|
|
25
|
+
enumerable: true,
|
|
26
|
+
},
|
|
34
27
|
}));
|
|
35
|
-
}
|
|
28
|
+
};
|
|
36
29
|
//# sourceMappingURL=format-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-builder.js","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAY,qBAAqB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,IAAI,EAAC,MAAc,QAAQ,CAAC;AAIpC,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,
|
|
1
|
+
{"version":3,"file":"format-builder.js","sourceRoot":"","sources":["../../../src/sgr/format-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,
|
|
1
|
+
{"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/sgr/reset.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,iBAAc,KAAG,MAAiC,CAAC"}
|
package/dist/esm/sgr/reset.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const makeReset = (enabled = true) => enabled ? "\x1b[
|
|
1
|
+
export const makeReset = (enabled = true) => enabled ? "\x1b[m" : "";
|
|
2
2
|
//# sourceMappingURL=reset.js.map
|
|
@@ -1 +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,
|
|
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,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC"}
|
|
@@ -1 +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,
|
|
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,CAmC/C"}
|
package/dist/esm/sgr/sgr.js
CHANGED
|
@@ -25,20 +25,19 @@ export function makeSGR(features) {
|
|
|
25
25
|
const cacheKey = `${features.colorDepth}.${features.style}`;
|
|
26
26
|
if (cache[cacheKey])
|
|
27
27
|
return cache[cacheKey];
|
|
28
|
-
const
|
|
29
|
-
const
|
|
30
|
-
const style = makeStyle(allKeys, styleFormat, features.style);
|
|
28
|
+
const makeFormat = makeFormatBuilder(makeChain);
|
|
29
|
+
const style = makeStyle(allKeys, makeFormat, features.style);
|
|
31
30
|
function makeChain(keys, baseFormat) {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
...
|
|
36
|
-
|
|
37
|
-
});
|
|
31
|
+
const makeChainedFormat = (keys, open, close, reset) => makeFormat(keys, combineCodes(baseFormat.codes.open, open), combineCodes(baseFormat.codes.close, close), reset);
|
|
32
|
+
return {
|
|
33
|
+
...makeColor(keys, makeChainedFormat, style, features.colorDepth),
|
|
34
|
+
...makeStyle(keys, makeChainedFormat, features.style),
|
|
35
|
+
};
|
|
38
36
|
}
|
|
39
37
|
const rtn = {
|
|
40
|
-
...makeColor(allKeys,
|
|
38
|
+
...makeColor(allKeys, makeFormat, style, features.colorDepth),
|
|
41
39
|
style,
|
|
40
|
+
plain: makeFormat(allKeys, [], []),
|
|
42
41
|
reset: makeReset(features.colorDepth > 1 || features.style),
|
|
43
42
|
};
|
|
44
43
|
cache[cacheKey] = rtn;
|
package/dist/esm/sgr/sgr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sgr.js","sourceRoot":"","sources":["../../../src/sgr/sgr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAY,iBAAiB,CAAC;AAClD,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAW,WAAW,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAK1C,MAAM,MAAM,GAAgC;IAC3C,EAAE,EAAgB,SAAS;IAC3B,EAAE,EAAgB,SAAS;IAC3B,IAAI,EAAc,SAAS;IAC3B,GAAG,EAAe,SAAS;IAC3B,MAAM,EAAY,SAAS;IAC3B,SAAS,EAAS,SAAS;IAC3B,OAAO,EAAW,SAAS;IAC3B,MAAM,EAAY,SAAS;IAC3B,aAAa,EAAK,SAAS;IAC3B,eAAe,EAAG,SAAS;IAC3B,KAAK,EAAa,SAAS;IAC3B,QAAQ,EAAU,SAAS;IAC3B,QAAQ,EAAU,SAAS;CAC3B,CAAC;AAEF,MAAM,OAAO,GAA0B,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,MAAM,KAAK,GAAqD,EAAE,CAAC;AAEnE,MAAM,UAAU,OAAO,CAAC,QAAkB;IACzC,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,EAAW,CAAC;IACrE,IAAI,KAAK,CAAC,QAAQ,CAAC;QAClB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAExB,MAAM,
|
|
1
|
+
{"version":3,"file":"sgr.js","sourceRoot":"","sources":["../../../src/sgr/sgr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAY,iBAAiB,CAAC;AAClD,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAW,WAAW,CAAC;AAC5C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAC1C,OAAO,EAAC,SAAS,EAAC,MAAc,SAAS,CAAC;AAK1C,MAAM,MAAM,GAAgC;IAC3C,EAAE,EAAgB,SAAS;IAC3B,EAAE,EAAgB,SAAS;IAC3B,IAAI,EAAc,SAAS;IAC3B,GAAG,EAAe,SAAS;IAC3B,MAAM,EAAY,SAAS;IAC3B,SAAS,EAAS,SAAS;IAC3B,OAAO,EAAW,SAAS;IAC3B,MAAM,EAAY,SAAS;IAC3B,aAAa,EAAK,SAAS;IAC3B,eAAe,EAAG,SAAS;IAC3B,KAAK,EAAa,SAAS;IAC3B,QAAQ,EAAU,SAAS;IAC3B,QAAQ,EAAU,SAAS;CAC3B,CAAC;AAEF,MAAM,OAAO,GAA0B,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,MAAM,KAAK,GAAqD,EAAE,CAAC;AAEnE,MAAM,UAAU,OAAO,CAAC,QAAkB;IACzC,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,EAAW,CAAC;IACrE,IAAI,KAAK,CAAC,QAAQ,CAAC;QAClB,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;IAExB,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,KAAK,GAAQ,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,SAAS,SAAS,CACjB,IAA8B,EAC9B,UAAuB;QAEvB,MAAM,iBAAiB,GAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAChF,IAAI,EACJ,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EACzC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAC3C,KAAK,CACL,CAAC;QAEF,OAAO;YACN,GAAG,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC;YACjE,GAAG,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC;SACrD,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAQ;QAChB,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC;QAC7D,KAAK;QACL,KAAK,EAAG,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;QACnC,KAAK,EAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC;KAC5D,CAAC;IAEF,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;IAEtB,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/sgr/style.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/sgr/style.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAW,MAAM,SAAS,CAAC;AAgBtE,wBAAgB,SAAS,CACxB,IAAI,EAAY,WAAW,CAAC,QAAQ,CAAC,EACrC,aAAa,EAAG,aAAa,EAC7B,OAAO,EAAS,OAAO,GACrB,KAAK,CAAC,GAAG,CAAC,CAcZ"}
|
package/dist/esm/sgr/style.js
CHANGED
|
@@ -20,7 +20,7 @@ export function makeStyle(keys, makeFormatter, enabled) {
|
|
|
20
20
|
lazy.add(rtn, key, () => {
|
|
21
21
|
const newKeys = new Set(keys);
|
|
22
22
|
newKeys.delete(key);
|
|
23
|
-
return enabled ? makeFormatter(newKeys, ...args) : makeFormatter(newKeys,
|
|
23
|
+
return enabled ? makeFormatter(newKeys, ...args) : makeFormatter(newKeys, [], []);
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/sgr/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAa,QAAQ,CAAC;AAInC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/sgr/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAa,QAAQ,CAAC;AAInC,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAyD;IAC9F,IAAI,EAAc,CAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;IAChC,GAAG,EAAe,CAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;IAChC,MAAM,EAAY,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,SAAS,EAAS,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,OAAO,EAAW,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,MAAM,EAAY,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,aAAa,EAAK,CAAE,CAAC,EAAE,EAAE,CAAC;IAC1B,eAAe,EAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IAC1B,KAAK,EAAa,CAAC,EAAE,EAAE,EAAE,CAAC;IAC1B,QAAQ,EAAU,CAAC,EAAE,EAAE,EAAE,CAAC;IAC1B,QAAQ,EAAU,CAAC,EAAE,EAAE,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS,CACxB,IAAqC,EACrC,aAA6B,EAC7B,OAAuB;IAEvB,MAAM,GAAG,GAAG,EAAgB,CAAC;IAE7B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;gBACvB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpB,OAAO,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
package/dist/esm/sgr/types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export type StyleKey = "bold" | "dim" | "italic" | "underline" | "inverse" | "hi
|
|
|
3
3
|
export type ChainKey = ColorKey | StyleKey;
|
|
4
4
|
export type Chain<Keys extends ChainKey> = Color<Keys> & Style<Keys>;
|
|
5
5
|
export type ChainBuilder = <Keys extends ChainKey>(keys: ReadonlySet<Keys>, baseFormat: FormatBase) => Chain<Keys>;
|
|
6
|
-
export type Code = number | number
|
|
6
|
+
export type Code = number | "" | ReadonlyArray<number | "">;
|
|
7
7
|
export interface FormatBase {
|
|
8
8
|
(text: string): string;
|
|
9
9
|
open: string;
|
|
@@ -55,6 +55,7 @@ export interface SGR {
|
|
|
55
55
|
fg: Channel<Exclude<ChainKey, "fg">>;
|
|
56
56
|
bg: Channel<Exclude<ChainKey, "bg">>;
|
|
57
57
|
style: Style;
|
|
58
|
+
plain: Format<ChainKey>;
|
|
58
59
|
reset: string;
|
|
59
60
|
}
|
|
60
61
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sgr/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,QAAQ,GACjB,MAAM,GACN,KAAK,GACL,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,eAAe,GACf,iBAAiB,GACjB,OAAO,GACP,UAAU,GACV,UAAU,CAAC;AAEd,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3C,MAAM,MAAM,KAAK,CAAC,IAAI,SAAS,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAErE,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,SAAS,QAAQ,EAChD,IAAI,EAAS,WAAW,CAAC,IAAI,CAAC,EAC9B,UAAU,EAAG,UAAU,KACnB,KAAK,CAAC,IAAI,CAAC,CAAC;AAEjB,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sgr/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { Atom, AttributeMap } from "./types.js";
|
|
2
|
-
export declare function lookUpAtom(codes:
|
|
1
|
+
import type { Atom, AttributeMap, CodeArray } from "./types.js";
|
|
2
|
+
export declare function lookUpAtom(codes: CodeArray, index: number, state: AttributeMap): Atom;
|
|
3
3
|
//# sourceMappingURL=lookup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../../src/simplify/lookup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,IAAI,EAAa,YAAY,
|
|
1
|
+
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../../src/simplify/lookup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,IAAI,EAAa,YAAY,EAAa,SAAS,EAAC,MAAM,SAAS,CAAC;AA8DjF,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAarF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/simplify/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAE,kBAAkB,EAAC,MAAM,QAAQ,CAAC;AAIlE,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/simplify/lookup.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,11 @@ export function simplify(text) {
|
|
|
6
6
|
const state = new State();
|
|
7
7
|
let result = parts[0];
|
|
8
8
|
for (let i = 1; i < parts.length;) {
|
|
9
|
-
|
|
9
|
+
const codes = parts[i++].split(";").map(s => s ? Number(s) : "");
|
|
10
10
|
let chunk = parts[i++];
|
|
11
11
|
while (!chunk && i < parts.length) {
|
|
12
12
|
// Merge consecutive SGR sequences with no text between them.
|
|
13
|
-
codes.push(...parts[i++].split(";").map(Number));
|
|
13
|
+
codes.push(...parts[i++].split(";").map(s => s ? Number(s) : ""));
|
|
14
14
|
chunk = parts[i++];
|
|
15
15
|
}
|
|
16
16
|
const newCodes = state.update(codes);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simplify.js","sourceRoot":"","sources":["../../../src/simplify/simplify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,QAAQ,CAAC,IAAY;IACpC,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAI,IAAI,KAAK,EAAE,CAAC;IAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAI,CAAC;QACpC,
|
|
1
|
+
{"version":3,"file":"simplify.js","sourceRoot":"","sources":["../../../src/simplify/simplify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAClC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,QAAQ,CAAC,IAAY;IACpC,sEAAsE;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAI,IAAI,KAAK,EAAE,CAAC;IAC3B,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAI,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,IAAM,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAEzB,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACnC,6DAA6D;YAC7D,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM;YAClB,MAAM,IAAI,QAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Attribute, AttributeMap } from "./types.js";
|
|
2
|
-
export declare class State extends Map<Attribute,
|
|
1
|
+
import type { Attribute, AttributeMap, CodeArray } from "./types.js";
|
|
2
|
+
export declare class State extends Map<Attribute, CodeArray> implements AttributeMap {
|
|
3
3
|
#private;
|
|
4
|
-
update(codes:
|
|
4
|
+
update(codes: CodeArray): CodeArray;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=state.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/simplify/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/simplify/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAC,MAAM,SAAS,CAAC;AAehE,qBAAa,KAAM,SAAQ,GAAG,CAAC,SAAS,EAAE,SAAS,CAAE,YAAW,YAAY;;IAa3E,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;CA8DnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/simplify/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAA4B,UAAU,CAAC;AAC1D,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAIzD,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/simplify/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export type
|
|
1
|
+
export type CodeArray = ReadonlyArray<number | "">;
|
|
2
|
+
export type Attribute = "intensity" | "italic" | "underline" | "inverse" | "hidden" | "strikethrough" | "fg" | "bg" | "frame" | "overline" | "reset" | number | "";
|
|
3
|
+
export type AttributeMap = Map<Attribute, CodeArray>;
|
|
3
4
|
export interface Atom {
|
|
4
5
|
attribute: Attribute;
|
|
5
|
-
code:
|
|
6
|
+
code: CodeArray;
|
|
6
7
|
skip?: number;
|
|
7
8
|
}
|
|
8
|
-
export type BuildAtom = (attribute: Attribute, codes:
|
|
9
|
+
export type BuildAtom = (attribute: Attribute, codes: CodeArray, index: number, state: AttributeMap) => Atom;
|
|
9
10
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/simplify/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAClB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,eAAe,GACf,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/simplify/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEnD,MAAM,MAAM,SAAS,GAClB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,SAAS,GACT,QAAQ,GACR,eAAe,GACf,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GACN,EAAE,CAAC;AAEN,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AAErD,MAAM,WAAW,IAAI;IACpB,SAAS,EAAG,SAAS,CAAC;IACtB,IAAI,EAAQ,SAAS,CAAC;IACtB,IAAI,CAAC,EAAO,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,SAAS,GAAG,CACvB,SAAS,EAAG,SAAS,EACrB,KAAK,EAAO,SAAS,EACrB,KAAK,EAAO,MAAM,EAClB,KAAK,EAAO,YAAY,KACpB,IAAI,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function
|
|
1
|
+
import type { CodeArray } from "./types.js";
|
|
2
|
+
export declare function arraysEqual<T>(a: readonly T[] | undefined, b: readonly T[] | undefined): boolean;
|
|
3
|
+
export declare function transitionIntensity(previous: CodeArray | undefined, current: CodeArray): CodeArray;
|
|
3
4
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/simplify/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/simplify/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAEvC,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,GAAG,OAAO,CAahG;AAED,wBAAgB,mBAAmB,CAClC,QAAQ,EAAG,SAAS,GAAG,SAAS,EAChC,OAAO,EAAI,SAAS,GAClB,SAAS,CAmBX"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/simplify/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/simplify/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAI,CAA2B,EAAE,CAA2B;IACtF,IAAI,CAAC,KAAK,CAAC;QACV,OAAO,IAAI,CAAC;IAEb,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QACpC,OAAO,KAAK,CAAC;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB,CAClC,QAAgC,EAChC,OAAoB;IAEpB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE;QACvD,OAAO,OAAO,CAAC;IAEhB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,MAAM,GAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,MAAM,GAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,MAAM;QAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,IAAI,OAAO,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhB,OAAO,MAAM,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
package/src/sgr/color/context.ts
CHANGED
|
@@ -17,7 +17,9 @@ export function buildContext(
|
|
|
17
17
|
) {
|
|
18
18
|
const {open, close} = baseCodes[channel];
|
|
19
19
|
|
|
20
|
-
const build =
|
|
20
|
+
const build = colorDepth > 1
|
|
21
|
+
? (open: Code): Format => makeFormatter(keys, open, close)
|
|
22
|
+
: () => makeFormatter(keys, [], []);
|
|
21
23
|
|
|
22
24
|
const combine = (base: FormatBase, style: FormatBase): Format => makeFormatter(
|
|
23
25
|
keys,
|
|
@@ -31,7 +33,7 @@ export function buildContext(
|
|
|
31
33
|
channel === "fg" ?
|
|
32
34
|
index => combine(style.bold, build(open + index)) :
|
|
33
35
|
index => build(open + index) :
|
|
34
|
-
() => build(
|
|
36
|
+
() => build([]);
|
|
35
37
|
|
|
36
38
|
const x16ToX8: (code: number) => Format =
|
|
37
39
|
channel === "fg" ?
|
package/src/sgr/color/rgb.ts
CHANGED
|
@@ -14,7 +14,7 @@ export function makeRGB(ctx: Context): Channel["rgb"] {
|
|
|
14
14
|
channel === "fg" ?
|
|
15
15
|
(r, g, b) => x16ToX8(rgbToX16(...clip(r, g, b))) :
|
|
16
16
|
(r, g, b) => build(open + rgbToX8(...clip(r, g, b))) :
|
|
17
|
-
() => build(
|
|
17
|
+
() => build([])
|
|
18
18
|
);
|
|
19
19
|
}
|
|
20
20
|
|
|
@@ -43,6 +43,6 @@ export function makeX256(ctx: Context): (...args: [number] | [number, number, nu
|
|
|
43
43
|
...args.length === 3 ? clip(...args) : x256ToRgb(clip(args[0])),
|
|
44
44
|
),
|
|
45
45
|
) :
|
|
46
|
-
() => build(
|
|
46
|
+
() => build([])
|
|
47
47
|
);
|
|
48
48
|
}
|
package/src/sgr/combine.ts
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export function combineCodes(base: Code, ...codes: Code[]): Code {
|
|
4
|
-
const set = new Set(Array.isArray(base) ? [...base] : [base]);
|
|
1
|
+
import {State} from "../simplify/state";
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
if (Array.isArray(code)) {
|
|
8
|
-
for (const c of code)
|
|
9
|
-
set.add(c);
|
|
10
|
-
} else
|
|
11
|
-
set.add(code);
|
|
12
|
-
}
|
|
3
|
+
import type {Code} from "./types";
|
|
13
4
|
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
export const combineCodes = (base: Code, ...codes: Code[]): Code =>
|
|
6
|
+
new State().update([base, ...codes].flat());
|
|
@@ -14,45 +14,38 @@ const chain = <Keys extends ChainKey>(
|
|
|
14
14
|
? baseFormat as Format<Keys>
|
|
15
15
|
: lazy.add(baseFormat, "and", () => makeChain(keys, baseFormat));
|
|
16
16
|
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
export const makeFormatBuilder = (makeChain: ChainBuilder): FormatBuilder =>
|
|
18
|
+
function format(keys, open, close, reset) {
|
|
19
|
+
const empty = Array.isArray(open) && !open.length;
|
|
20
|
+
const openCode = empty ? "" : codeSequence(open);
|
|
21
|
+
const closeCode = empty ? "" : codeSequence(close);
|
|
22
|
+
const openSequence = empty ? "" :`\x1b[${openCode}m`;
|
|
23
|
+
const closeSequence = empty ? "" :`\x1b[${closeCode}m`;
|
|
24
|
+
const reopenCode = reset && !empty ? `${closeCode};${openCode}` : openCode;
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
const rxClose = new RegExp(
|
|
27
|
+
`(?<start>\\x1b\\[(?:\\d+;)*)${closeCode}(?<end>(?:;\\d+)*m)`,
|
|
28
|
+
"g"
|
|
29
|
+
);
|
|
30
|
+
const replace = `$<start>${reopenCode}$<end>`;
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
),
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
return chain(makeChain, keys, define(
|
|
33
|
+
empty
|
|
34
|
+
? (s: string) => s
|
|
35
|
+
: (s: string) => s ? openSequence + s.replace(rxClose, replace) + closeSequence : s,
|
|
36
|
+
{
|
|
37
|
+
open : {value: openSequence, enumerable: true},
|
|
38
|
+
close : {value: closeSequence, enumerable: true},
|
|
39
|
+
codes : {value: {open, close}, enumerable: true},
|
|
40
|
+
combine : {
|
|
41
|
+
value: (...formats: [FormatBase, ...FormatBase[]]) => format(
|
|
42
|
+
keys,
|
|
43
|
+
combineCodes(open, ...formats.map(f => f.codes.open)),
|
|
44
|
+
combineCodes(close, ...formats.map(f => f.codes.close)),
|
|
45
|
+
reset,
|
|
46
|
+
),
|
|
47
|
+
enumerable: true,
|
|
47
48
|
},
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return keys => chain(makeChain, keys, define((s: string) => s, {
|
|
53
|
-
open : {value: "", enumerable: true},
|
|
54
|
-
close : {value: "", enumerable: true},
|
|
55
|
-
codes : {value: {open: [], close: []}, enumerable: true},
|
|
56
|
-
combine : {value(this: FormatBase) { return this }, enumerable: true},
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
49
|
+
},
|
|
50
|
+
));
|
|
51
|
+
};
|
package/src/sgr/reset.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const makeReset = (enabled = true): string => enabled ? "\x1b[
|
|
1
|
+
export const makeReset = (enabled = true): string => enabled ? "\x1b[m" : "";
|
package/src/sgr/sgr.ts
CHANGED
|
@@ -33,37 +33,31 @@ export function makeSGR(features: Features): SGR {
|
|
|
33
33
|
if (cache[cacheKey])
|
|
34
34
|
return cache[cacheKey];
|
|
35
35
|
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const style = makeStyle(allKeys, styleFormat, features.style);
|
|
36
|
+
const makeFormat = makeFormatBuilder(makeChain);
|
|
37
|
+
const style = makeStyle(allKeys, makeFormat, features.style);
|
|
39
38
|
|
|
40
39
|
function makeChain<Keys extends ChainKey>(
|
|
41
40
|
keys : ReadonlySet<Keys>,
|
|
42
41
|
baseFormat : FormatBase,
|
|
43
42
|
): Chain<Keys> {
|
|
44
|
-
const
|
|
45
|
-
keys,
|
|
46
|
-
combineCodes(baseFormat.codes.open, open),
|
|
47
|
-
combineCodes(baseFormat.codes.close, close),
|
|
48
|
-
reset,
|
|
49
|
-
);
|
|
50
|
-
const chainedStyleFormat: FormatBuilder = (keys, open, close, reset) => styleFormat(
|
|
43
|
+
const makeChainedFormat: FormatBuilder = (keys, open, close, reset) => makeFormat(
|
|
51
44
|
keys,
|
|
52
45
|
combineCodes(baseFormat.codes.open, open),
|
|
53
46
|
combineCodes(baseFormat.codes.close, close),
|
|
54
47
|
reset,
|
|
55
48
|
);
|
|
56
49
|
|
|
57
|
-
return
|
|
58
|
-
...makeColor(keys,
|
|
59
|
-
...makeStyle(keys,
|
|
60
|
-
}
|
|
50
|
+
return {
|
|
51
|
+
...makeColor(keys, makeChainedFormat, style, features.colorDepth),
|
|
52
|
+
...makeStyle(keys, makeChainedFormat, features.style),
|
|
53
|
+
};
|
|
61
54
|
}
|
|
62
55
|
|
|
63
56
|
const rtn: SGR = {
|
|
64
|
-
...makeColor(allKeys,
|
|
57
|
+
...makeColor(allKeys, makeFormat, style, features.colorDepth),
|
|
65
58
|
style,
|
|
66
|
-
|
|
59
|
+
plain : makeFormat(allKeys, [], []),
|
|
60
|
+
reset : makeReset(features.colorDepth > 1 || features.style),
|
|
67
61
|
};
|
|
68
62
|
|
|
69
63
|
cache[cacheKey] = rtn;
|
package/src/sgr/style.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {TypedObject} from "../typed-object";
|
|
2
2
|
import {lazy} from "./lazy";
|
|
3
3
|
|
|
4
|
-
import type {ChainKey, FormatBuilder, Style} from "./types";
|
|
4
|
+
import type {ChainKey, FormatBuilder, Style, StyleKey} from "./types";
|
|
5
5
|
|
|
6
|
-
const propParams = TypedObject.entries<Record<
|
|
6
|
+
const propParams = TypedObject.entries<Record<StyleKey, SkipFirst<Parameters<FormatBuilder>>>>({
|
|
7
7
|
bold : [ 1, 22, true],
|
|
8
8
|
dim : [ 2, 22, true],
|
|
9
9
|
italic : [ 3, 23],
|
|
@@ -29,7 +29,7 @@ export function makeStyle(
|
|
|
29
29
|
lazy.add(rtn, key, () => {
|
|
30
30
|
const newKeys = new Set(keys);
|
|
31
31
|
newKeys.delete(key);
|
|
32
|
-
return enabled ? makeFormatter(newKeys, ...args) : makeFormatter(newKeys,
|
|
32
|
+
return enabled ? makeFormatter(newKeys, ...args) : makeFormatter(newKeys, [], []);
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
}
|