@adriangalilea/utils 10.8.0 → 10.9.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 CHANGED
@@ -347,6 +347,18 @@ stripAnsi(styled) // the string minus its escapes
347
347
  `cli`'s ANSI-aware `width()` / `clip()` measure strings styled with these
348
348
  (they share `ANSI_RE`).
349
349
 
350
+ The semantic roles live here too, the one map of role to escape that `cli`'s
351
+ `ui` paints with: `ROLES` (`head`, `accent`, `muted`, `ok`, `warn`, `bad`,
352
+ `ref`) and `inRole(role, s)`, always on. A page that draws a CLI's output (a
353
+ terminal on a landing page) writes it in the same roles, so the two cannot
354
+ disagree on a colour.
355
+
356
+ ```typescript
357
+ import { inRole } from '@adriangalilea/utils/ansi'
358
+
359
+ `${inRole('muted', 'code')} ${inRole('head', 'BCDF-GHJK')}`
360
+ ```
361
+
350
362
  ### Time (`time`)
351
363
 
352
364
  Humanized time — three questions, three functions: how long is a duration
@@ -25,6 +25,8 @@ export declare function clip(s: string, n: number): string;
25
25
  export declare const padEndV: (s: string, n: number) => string;
26
26
  export declare const padStartV: (s: string, n: number) => string;
27
27
  /** Semantic palette — use these, not raw colors, so intent stays consistent. */
28
+ /** The semantic palette: each role painted with its escape from `ROLES` (the
29
+ * one map, ../universal/ansi), when this process colors at all. */
28
30
  export declare const ui: {
29
31
  head: (s: string) => string;
30
32
  accent: (s: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/cli/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAwB,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,OAAO,EAAE,CAAC;AAkBnB,eAAO,MAAM,IAAI,MAHT,MAAM,KAAG,MAGc,CAAC;AAChC,eAAO,MAAM,GAAG,MAJR,MAAM,KAAG,MAIY,CAAC;AAC9B,eAAO,MAAM,GAAG,MALR,MAAM,KAAG,MAKc,CAAC;AAChC,eAAO,MAAM,KAAK,MANV,MAAM,KAAG,MAMgB,CAAC;AAClC,eAAO,MAAM,MAAM,MAPX,MAAM,KAAG,MAOiB,CAAC;AACnC,eAAO,MAAM,IAAI,MART,MAAM,KAAG,MAQe,CAAC;AACjC,eAAO,MAAM,IAAI,MATT,MAAM,KAAG,MASe,CAAC;AAuCjC,2EAA2E;AAC3E,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,KAAG,MAKjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BjD;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MACL,CAAC;AAC3C,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MACP,CAAC;AAE3C,gFAAgF;AAChF,eAAO,MAAM,EAAE;cACJ,MAAM;gBACJ,MAAM;eACP,MAAM;YACT,MAAM;cACJ,MAAM;aACP,MAAM;IACf,+CAA+C;aACtC,MAAM;CACf,CAAC"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/cli/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAA+B,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,CAAC;AAkBnB,eAAO,MAAM,IAAI,MAHT,MAAM,KAAG,MAGc,CAAC;AAChC,eAAO,MAAM,GAAG,MAJR,MAAM,KAAG,MAIY,CAAC;AAC9B,eAAO,MAAM,GAAG,MALR,MAAM,KAAG,MAKc,CAAC;AAChC,eAAO,MAAM,KAAK,MANV,MAAM,KAAG,MAMgB,CAAC;AAClC,eAAO,MAAM,MAAM,MAPX,MAAM,KAAG,MAOiB,CAAC;AACnC,eAAO,MAAM,IAAI,MART,MAAM,KAAG,MAQe,CAAC;AACjC,eAAO,MAAM,IAAI,MATT,MAAM,KAAG,MASe,CAAC;AAuCjC,2EAA2E;AAC3E,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,KAAG,MAKjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BjD;AAED,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MACL,CAAC;AAC3C,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MACP,CAAC;AAE3C,gFAAgF;AAChF;oEACoE;AACpE,eAAO,MAAM,EAAE;cAnGP,MAAM,KAAG,MAAM;gBAAf,MAAM,KAAG,MAAM;eAAf,MAAM,KAAG,MAAM;YAAf,MAAM,KAAG,MAAM;cAAf,MAAM,KAAG,MAAM;aAAf,MAAM,KAAG,MAAM;IA0GtB,+CAA+C;aA1GxC,MAAM,KAAG,MAAM;CA4GtB,CAAC"}
package/dist/cli/text.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * (`cli/index` — table/kv/tree) and the live layer (`cli/live` — pinned
5
5
  * region/spinner) build on these; keeping them here avoids an import cycle.
6
6
  */
7
- import { ANSI_RE, BOLD, DIM, fg, RESET } from "../universal/ansi.js";
7
+ import { ANSI_RE, BOLD, DIM, fg, RESET, ROLES } from "../universal/ansi.js";
8
8
  export { ANSI_RE };
9
9
  // The palette makes ONE whether-to-color decision for both cli layers, and
10
10
  // cli writes to both streams (static output → stdout, live regions → stderr),
@@ -108,14 +108,16 @@ export function clip(s, n) {
108
108
  export const padEndV = (s, n) => s + " ".repeat(Math.max(0, n - width(s)));
109
109
  export const padStartV = (s, n) => " ".repeat(Math.max(0, n - width(s))) + s;
110
110
  /** Semantic palette — use these, not raw colors, so intent stays consistent. */
111
+ /** The semantic palette: each role painted with its escape from `ROLES` (the
112
+ * one map, ../universal/ansi), when this process colors at all. */
111
113
  export const ui = {
112
- head: (s) => bold(s),
113
- accent: (s) => cyan(s),
114
- muted: (s) => dim(s),
115
- ok: (s) => green(s),
116
- warn: (s) => yellow(s),
117
- bad: (s) => red(s),
114
+ head: paint(ROLES.head),
115
+ accent: paint(ROLES.accent),
116
+ muted: paint(ROLES.muted),
117
+ ok: paint(ROLES.ok),
118
+ warn: paint(ROLES.warn),
119
+ bad: paint(ROLES.bad),
118
120
  /** ids / refs — de-emphasized monospace-ish */
119
- ref: (s) => gray(s),
121
+ ref: paint(ROLES.ref),
120
122
  };
121
123
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/cli/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/cli/text.ts"],"names":[],"mappings":"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"}
@@ -25,4 +25,23 @@ export declare function rgb(r: number, g: number, b: number): string;
25
25
  export declare const ANSI_RE: RegExp;
26
26
  /** The string minus its ANSI style escapes. */
27
27
  export declare const stripAnsi: (s: string) => string;
28
+ /**
29
+ * The house's semantic roles, each as the escape that opens it: what `cli`'s
30
+ * `ui` paints with whenever it paints. The one map of role to colour, so what
31
+ * a CLI prints and a page drawing that CLI's output (a terminal on a landing)
32
+ * cannot disagree.
33
+ */
34
+ export declare const ROLES: {
35
+ readonly head: "\u001B[1m";
36
+ readonly accent: string;
37
+ readonly muted: "\u001B[2m";
38
+ readonly ok: string;
39
+ readonly warn: string;
40
+ readonly bad: string;
41
+ /** ids / refs: de-emphasized */
42
+ readonly ref: string;
43
+ };
44
+ export type Role = keyof typeof ROLES;
45
+ /** `s` in a role, always on: for a consumer that renders ANSI whatever stdout is. */
46
+ export declare const inRole: (role: Role, s: string) => string;
28
47
  //# sourceMappingURL=ansi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/universal/ansi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,eAAO,MAAM,KAAK,cAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,cAAY,CAAC;AAC9B,eAAO,MAAM,GAAG,cAAY,CAAC;AAC7B,eAAO,MAAM,MAAM,cAAY,CAAC;AAChC,eAAO,MAAM,SAAS,cAAY,CAAC;AAEnC,2CAA2C;AAC3C,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpC;AAED,2CAA2C;AAC3C,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpC;AAED,gFAAgF;AAChF,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAS3D;AAGD,eAAO,MAAM,OAAO,QAAoB,CAAC;AAEzC,+CAA+C;AAC/C,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAAgC,CAAC"}
1
+ {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/universal/ansi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,eAAO,MAAM,KAAK,cAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,cAAY,CAAC;AAC9B,eAAO,MAAM,GAAG,cAAY,CAAC;AAC7B,eAAO,MAAM,MAAM,cAAY,CAAC;AAChC,eAAO,MAAM,SAAS,cAAY,CAAC;AAEnC,2CAA2C;AAC3C,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpC;AAED,2CAA2C;AAC3C,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGpC;AAED,gFAAgF;AAChF,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAS3D;AAGD,eAAO,MAAM,OAAO,QAAoB,CAAC;AAEzC,+CAA+C;AAC/C,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAAgC,CAAC;AAEvE;;;;;GAKG;AACH,eAAO,MAAM,KAAK;;;;;;;IAOjB,gCAAgC;;CAEvB,CAAC;AAEX,MAAM,MAAM,IAAI,GAAG,MAAM,OAAO,KAAK,CAAC;AAEtC,qFAAqF;AACrF,eAAO,MAAM,MAAM,GAAI,MAAM,IAAI,EAAE,GAAG,MAAM,KAAG,MAClB,CAAC"}
@@ -36,4 +36,22 @@ export function rgb(r, g, b) {
36
36
  export const ANSI_RE = /\x1b\[[0-9;]*m/g;
37
37
  /** The string minus its ANSI style escapes. */
38
38
  export const stripAnsi = (s) => s.replace(ANSI_RE, "");
39
+ /**
40
+ * The house's semantic roles, each as the escape that opens it: what `cli`'s
41
+ * `ui` paints with whenever it paints. The one map of role to colour, so what
42
+ * a CLI prints and a page drawing that CLI's output (a terminal on a landing)
43
+ * cannot disagree.
44
+ */
45
+ export const ROLES = {
46
+ head: BOLD,
47
+ accent: fg(6),
48
+ muted: DIM,
49
+ ok: fg(2),
50
+ warn: fg(3),
51
+ bad: fg(1),
52
+ /** ids / refs: de-emphasized */
53
+ ref: fg(8),
54
+ };
55
+ /** `s` in a role, always on: for a consumer that renders ANSI whatever stdout is. */
56
+ export const inRole = (role, s) => `${ROLES[role]}${s}${RESET}`;
39
57
  //# sourceMappingURL=ansi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/universal/ansi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC;AAC9B,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC;AAC7B,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC;AAEnC,2CAA2C;AAC3C,MAAM,UAAU,EAAE,CAAC,CAAS;IAC3B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC,GAAG,CAAC;AAC1B,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,EAAE,CAAC,CAAS;IAC3B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC,GAAG,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAClD,MAAM,CACL,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EACjE,iBAAiB,EACjB,CAAC,EACD,CAAC,EACD,CAAC,CACD,CAAC;IACF,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAC;AAEzC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/universal/ansi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC;AAC9B,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,CAAC;AAC7B,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC;AAEnC,2CAA2C;AAC3C,MAAM,UAAU,EAAE,CAAC,CAAS;IAC3B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC,GAAG,CAAC;AAC1B,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,EAAE,CAAC,CAAS;IAC3B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;IACzE,OAAO,aAAa,CAAC,GAAG,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAClD,MAAM,CACL,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EACjE,iBAAiB,EACjB,CAAC,EACD,CAAC,EACD,CAAC,CACD,CAAC;IACF,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAC;AAEzC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IACb,KAAK,EAAE,GAAG;IACV,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACT,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACX,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;IACV,gCAAgC;IAChC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;CACD,CAAC;AAIX,qFAAqF;AACrF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAU,EAAE,CAAS,EAAU,EAAE,CACvD,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adriangalilea/utils",
3
- "version": "10.8.0",
3
+ "version": "10.9.0",
4
4
  "description": "TypeScript utilities - logger, currency, formatter, GramIO bot plugins, and more",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",