@heyhuynhgiabuu/pi-pretty 0.6.22 → 0.6.24
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/CHANGELOG.md +20 -0
- package/README.md +25 -7
- package/dist/autocomplete.js +1 -4
- package/dist/autocomplete.js.map +1 -1
- package/dist/config.d.ts +42 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +174 -117
- package/dist/config.js.map +1 -1
- package/dist/fff-helpers.js +2 -7
- package/dist/fff-helpers.js.map +1 -1
- package/dist/fff.js +16 -23
- package/dist/fff.js.map +1 -1
- package/dist/find-glob.js +2 -6
- package/dist/find-glob.js.map +1 -1
- package/dist/helpers.js +11 -21
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -60
- package/dist/index.js.map +1 -1
- package/dist/notices.js +1 -4
- package/dist/notices.js.map +1 -1
- package/dist/render.d.ts +19 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +125 -96
- package/dist/render.js.map +1 -1
- package/dist/tools/bash.js +26 -29
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/find.js +31 -34
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/grep.js +22 -25
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/labels.js +1 -4
- package/dist/tools/labels.js.map +1 -1
- package/dist/tools/ls.js +18 -21
- package/dist/tools/ls.js.map +1 -1
- package/dist/tools/metrics.js +4 -7
- package/dist/tools/metrics.js.map +1 -1
- package/dist/tools/read.js +35 -38
- package/dist/tools/read.js.map +1 -1
- package/dist/tui-text.js +5 -9
- package/dist/tui-text.js.map +1 -1
- package/dist/types.js +1 -2
- package/dist/types.js.map +1 -1
- package/package.json +7 -6
- package/src/config.ts +90 -19
- package/src/index.ts +9 -10
- package/src/render.ts +56 -9
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.6.24] - 2026-08-24
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Extension no longer fails to load when installed as a pi package on pi 0.84.3: the SDK's new `session-share.js` imports `@earendil-works/pi-ai/providers/radius-config`, which jiti's alias table does not cover; under CommonJS extension output the alias pipeline concatenated that subpath onto `dist/compat.js`, producing a nonexistent module and failing startup with `Cannot find module .../dist/compat.js/providers/radius-config`. The package now ships true ESM (`"type": "module"`; tsconfig was already `nodenext`), so runtime SDK imports resolve natively through Node exports maps.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Bumped `@earendil-works/pi-ai`, `@earendil-works/pi-coding-agent`, and `@earendil-works/pi-tui` devDependencies from `^0.82.0` to `^0.84.3`.
|
|
12
|
+
|
|
13
|
+
## [0.6.23] - 2026-08-21
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- All options are now configurable in `pi-pretty.json` with environment variables as override layer: `theme`, `icons`, `enableTools`, `disableTools`, `maxHlChars`, `maxPreviewLines`, `cacheLimit` (precedence: env var > config file > built-in default; the theme additionally falls back to `~/.pi/agent/settings.json` before the default) ([#12](https://github.com/heyhuynhgiabuu/pi-pretty/issues/12)).
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- Syntax highlighting no longer silently degrades to plain text for native pi users: pi's `settings.json` `theme` is a TUI appearance setting (`dark`/`light`/custom names), not a Shiki theme. The resolved theme is now validated against Shiki's bundled themes with a one-time warning and a fallback to `github-dark` when invalid ([#11](https://github.com/heyhuynhgiabuu/pi-pretty/issues/11)).
|
|
22
|
+
|
|
3
23
|
## [0.6.22] - 2026-08-20
|
|
4
24
|
|
|
5
25
|
### Fixed
|
package/README.md
CHANGED
|
@@ -124,27 +124,45 @@ Use them when:
|
|
|
124
124
|
|
|
125
125
|
### Config file: `~/.pi/agent/pi-pretty.json`
|
|
126
126
|
|
|
127
|
-
Place a JSON file alongside Pi's `settings.json` to customize
|
|
127
|
+
Place a JSON file alongside Pi's `settings.json` to customize pi-pretty. Every option can also be set via environment variables, which take precedence over the config file: **`env var > pi-pretty.json > built-in default`** (the theme additionally falls back to `~/.pi/agent/settings.json`'s `theme` before the default).
|
|
128
128
|
|
|
129
129
|
```json
|
|
130
130
|
{
|
|
131
131
|
"background": {
|
|
132
132
|
"tool": "#1e1e2e",
|
|
133
133
|
"error": "#2a1e1e"
|
|
134
|
-
}
|
|
134
|
+
},
|
|
135
|
+
"theme": "github-dark",
|
|
136
|
+
"icons": "nerd",
|
|
137
|
+
"enableTools": ["ls"],
|
|
138
|
+
"disableTools": ["grep"],
|
|
139
|
+
"maxHlChars": 80000,
|
|
140
|
+
"maxPreviewLines": 80,
|
|
141
|
+
"cacheLimit": 128
|
|
135
142
|
}
|
|
136
143
|
```
|
|
137
144
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
145
|
+
| Key | Type | Env var override | Default |
|
|
146
|
+
| --- | --- | --- | --- |
|
|
147
|
+
| `background.tool` | hex color | — | terminal default |
|
|
148
|
+
| `background.error` | hex color | — | `background.tool` |
|
|
149
|
+
| `theme` | Shiki theme name | `PRETTY_THEME` | `github-dark` (after `pi-pretty.json` `theme`, then `~/.pi/agent/settings.json` `theme`, when valid Shiki themes) |
|
|
150
|
+
| `icons` | `nerd` \| `none` (or `off`) | `PRETTY_ICONS` | `nerd` |
|
|
151
|
+
| `enableTools` | string array | `PRETTY_ENABLE_TOOLS` | `[]` (`ls` is opt-in) |
|
|
152
|
+
| `disableTools` | string array | `PRETTY_DISABLE_TOOLS` | `[]` |
|
|
153
|
+
| `maxHlChars` | positive int | `PRETTY_MAX_HL_CHARS` | `80000` |
|
|
154
|
+
| `maxPreviewLines` | positive int | `PRETTY_MAX_PREVIEW_LINES` | `80` |
|
|
155
|
+
| `cacheLimit` | positive int | `PRETTY_CACHE_LIMIT` | `128` |
|
|
156
|
+
|
|
157
|
+
- Config values take priority over theme-provided backgrounds (`toolBg` / `toolErrorBg`).
|
|
158
|
+
- All options except `background.*` are read once at startup; restart pi to apply changes to them (`background.*` applies live).
|
|
159
|
+
- To override the config directory, set `PRETTY_CONFIG_DIR` env var.
|
|
142
160
|
|
|
143
161
|
### Environment variables
|
|
144
162
|
|
|
145
163
|
Optional environment variables:
|
|
146
164
|
|
|
147
|
-
- `PRETTY_THEME` (overrides `~/.pi/agent/settings.json` `theme`; otherwise pi-pretty falls back to that setting before `github-dark`)
|
|
165
|
+
- `PRETTY_THEME` (overrides `pi-pretty.json` `theme`, which overrides `~/.pi/agent/settings.json` `theme`; otherwise pi-pretty falls back to that setting before `github-dark`)
|
|
148
166
|
- `PRETTY_CONFIG_DIR` — directory to read `pi-pretty.json` from (default: `~/.pi/agent/`)
|
|
149
167
|
- `PRETTY_MAX_HL_CHARS` (default: `80000`)
|
|
150
168
|
- `PRETTY_MAX_PREVIEW_LINES` (default: `80`)
|
package/dist/autocomplete.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* pi-pretty: FFF-backed @-mention autocomplete provider.
|
|
4
3
|
*
|
|
5
4
|
* Wraps the built-in autocomplete provider and replaces the @-mention file
|
|
6
5
|
* suggestions with FFF frecency-ranked file search results.
|
|
7
6
|
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createFffAutocompleteProvider = createFffAutocompleteProvider;
|
|
10
7
|
/** How many @-mention suggestions to show at most. */
|
|
11
8
|
const MAX_SUGGESTIONS = 20;
|
|
12
9
|
/**
|
|
@@ -17,7 +14,7 @@ function extractAtPrefix(textBeforeCursor) {
|
|
|
17
14
|
const match = textBeforeCursor.match(/(?:^|[ \t])@([^\s@]*)$/);
|
|
18
15
|
return match?.[1];
|
|
19
16
|
}
|
|
20
|
-
function createFffAutocompleteProvider(current, getFinder) {
|
|
17
|
+
export function createFffAutocompleteProvider(current, getFinder) {
|
|
21
18
|
return {
|
|
22
19
|
async getSuggestions(lines, cursorLine, cursorCol, options) {
|
|
23
20
|
const currentLine = lines[cursorLine] ?? "";
|
package/dist/autocomplete.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../src/autocomplete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../src/autocomplete.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -18,9 +18,40 @@ type BgThemeLike = {
|
|
|
18
18
|
getBgAnsi?: (key: string) => string;
|
|
19
19
|
bg?: (key: string, text: string) => string;
|
|
20
20
|
};
|
|
21
|
+
export interface PrettyConfig {
|
|
22
|
+
background?: {
|
|
23
|
+
tool?: string;
|
|
24
|
+
error?: string;
|
|
25
|
+
};
|
|
26
|
+
theme?: string;
|
|
27
|
+
icons?: string;
|
|
28
|
+
enableTools?: string[];
|
|
29
|
+
disableTools?: string[];
|
|
30
|
+
maxHlChars?: number;
|
|
31
|
+
maxPreviewLines?: number;
|
|
32
|
+
cacheLimit?: number;
|
|
33
|
+
}
|
|
34
|
+
/** Normalize a comma-separated env value or JSON array into tool names. */
|
|
35
|
+
export declare function normalizeToolList(value: unknown): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Read and validate `pi-pretty.json` from the config directory. Invalid
|
|
38
|
+
* fields are silently skipped, matching the historical `background`
|
|
39
|
+
* behavior. The file is re-read on each call; callers that need a stable
|
|
40
|
+
* value (extension activation, theme resolution) cache the result.
|
|
41
|
+
*/
|
|
42
|
+
export declare function loadConfig(agentDir?: string | undefined): PrettyConfig;
|
|
43
|
+
export declare function getConfigDir(): string | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Merge env tool sets with config-file tool lists: a non-empty env set wins
|
|
46
|
+
* over the config file (12-factor precedence); otherwise config applies.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveToolSets(envDisabled: Set<string>, envEnabled: Set<string>, config: Pick<PrettyConfig, "disableTools" | "enableTools">): {
|
|
49
|
+
disabledTools: Set<string>;
|
|
50
|
+
enabledTools: Set<string>;
|
|
51
|
+
};
|
|
21
52
|
export declare function resolveBaseBackground(theme: BgThemeLike | null | undefined): void;
|
|
22
53
|
export declare function termWidth(): number;
|
|
23
|
-
export declare
|
|
54
|
+
export declare let USE_ICONS: boolean;
|
|
24
55
|
export declare const NF_DIR: string;
|
|
25
56
|
export declare const NF_DEFAULT: string;
|
|
26
57
|
export declare function fileIcon(fp: string): string;
|
|
@@ -28,9 +59,16 @@ export declare function dirIcon(): string;
|
|
|
28
59
|
import type { BundledLanguage } from "shiki";
|
|
29
60
|
export declare function detectLang(fp: string): BundledLanguage | undefined;
|
|
30
61
|
export declare function envInt(name: string, fallback: number): number;
|
|
31
|
-
export declare
|
|
32
|
-
export declare
|
|
33
|
-
export declare
|
|
62
|
+
export declare let MAX_HL_CHARS: number;
|
|
63
|
+
export declare let MAX_PREVIEW_LINES: number;
|
|
64
|
+
export declare let CACHE_LIMIT: number;
|
|
65
|
+
/**
|
|
66
|
+
* Apply `pi-pretty.json` values to the env-backed module bindings. An env
|
|
67
|
+
* var wins over the config file whenever it is set to a non-empty value;
|
|
68
|
+
* empty strings are treated as unset. Call once at extension activation,
|
|
69
|
+
* before any render reads the bindings.
|
|
70
|
+
*/
|
|
71
|
+
export declare function applyConfig(config: PrettyConfig): void;
|
|
34
72
|
export declare function getDefaultAgentDir(): string | undefined;
|
|
35
73
|
export {};
|
|
36
74
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,IAAI,GAAG,QAAY,CAAC;AAE3B,eAAO,MAAM,OAAO,6BAA2B,CAAC;AAChD,eAAO,MAAM,MAAM,0BAAwB,CAAC;AAC5C,eAAO,MAAM,OAAO,0BAAwB,CAAC;AAC7C,eAAO,MAAM,QAAQ,6BAA2B,CAAC;AACjD,eAAO,MAAM,MAAM,6BAA2B,CAAC;AAC/C,eAAO,MAAM,SAAS,4BAA0B,CAAC;AACjD,eAAO,MAAM,OAAO,6BAA2B,CAAC;AAChD,eAAO,MAAM,QAAQ,6BAA2B,CAAC;AAGjD,eAAO,IAAI,OAAO,QAAa,CAAC;AAChC,eAAO,IAAI,QAAQ,QAAa,CAAC;AAMjC,KAAK,WAAW,GAAG;IAClB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -1,35 +1,25 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* pi-pretty: ANSI codes, icons, theme, and environment config.
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
exports.resolveBaseBackground = resolveBaseBackground;
|
|
8
|
-
exports.termWidth = termWidth;
|
|
9
|
-
exports.fileIcon = fileIcon;
|
|
10
|
-
exports.dirIcon = dirIcon;
|
|
11
|
-
exports.detectLang = detectLang;
|
|
12
|
-
exports.envInt = envInt;
|
|
13
|
-
exports.getDefaultAgentDir = getDefaultAgentDir;
|
|
14
|
-
const node_fs_1 = require("node:fs");
|
|
15
|
-
const node_path_1 = require("node:path");
|
|
4
|
+
import { readFileSync } from "node:fs";
|
|
5
|
+
import { basename, extname, join } from "node:path";
|
|
16
6
|
// ---------------------------------------------------------------------------
|
|
17
7
|
// ANSI
|
|
18
8
|
// ---------------------------------------------------------------------------
|
|
19
9
|
/** Left indent for rendered tool result lines (was two spaces; one matches tighter TUI layout). */
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
10
|
+
export const TOOL_RESULT_INDENT = " ";
|
|
11
|
+
export let RST = "\x1b[0m";
|
|
12
|
+
export const FG_LNUM = "\x1b[38;2;100;100;100m";
|
|
13
|
+
export const FG_DIM = "\x1b[38;2;80;80;80m";
|
|
14
|
+
export const FG_RULE = "\x1b[38;2;50;50;50m";
|
|
15
|
+
export const FG_GREEN = "\x1b[38;2;100;180;120m";
|
|
16
|
+
export const FG_RED = "\x1b[38;2;200;100;100m";
|
|
17
|
+
export const FG_YELLOW = "\x1b[38;2;220;180;80m";
|
|
18
|
+
export const FG_BLUE = "\x1b[38;2;100;140;220m";
|
|
19
|
+
export const FG_MUTED = "\x1b[38;2;139;148;158m";
|
|
30
20
|
const BG_DEFAULT = "\x1b[49m";
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
export let BG_BASE = BG_DEFAULT;
|
|
22
|
+
export let BG_ERROR = BG_DEFAULT;
|
|
33
23
|
const ESC_RE = "\u001b";
|
|
34
24
|
function parseAnsiRgb(ansi) {
|
|
35
25
|
const m = ansi.match(new RegExp(`${ESC_RE}\\[(?:38|48);2;(\\d+);(\\d+);(\\d+)m`));
|
|
@@ -59,60 +49,109 @@ function hexToAnsiBg(hex) {
|
|
|
59
49
|
const b = Number.parseInt(m[3], 16);
|
|
60
50
|
return `\x1b[48;2;${r};${g};${b}m`;
|
|
61
51
|
}
|
|
62
|
-
|
|
52
|
+
/** Normalize a comma-separated env value or JSON array into tool names. */
|
|
53
|
+
export function normalizeToolList(value) {
|
|
54
|
+
if (!Array.isArray(value))
|
|
55
|
+
return [];
|
|
56
|
+
return value
|
|
57
|
+
.filter((v) => typeof v === "string")
|
|
58
|
+
.map((v) => v.trim().toLowerCase())
|
|
59
|
+
.filter(Boolean);
|
|
60
|
+
}
|
|
61
|
+
function positiveInt(value) {
|
|
62
|
+
return typeof value === "number" && Number.isInteger(value) && value > 0 ? value : undefined;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Read and validate `pi-pretty.json` from the config directory. Invalid
|
|
66
|
+
* fields are silently skipped, matching the historical `background`
|
|
67
|
+
* behavior. The file is re-read on each call; callers that need a stable
|
|
68
|
+
* value (extension activation, theme resolution) cache the result.
|
|
69
|
+
*/
|
|
70
|
+
export function loadConfig(agentDir = getConfigDir()) {
|
|
63
71
|
if (!agentDir)
|
|
64
72
|
return {};
|
|
65
73
|
try {
|
|
66
|
-
const
|
|
67
|
-
const
|
|
74
|
+
const parsed = JSON.parse(readFileSync(join(agentDir, "pi-pretty.json"), "utf8"));
|
|
75
|
+
const config = {};
|
|
68
76
|
if (parsed.background) {
|
|
69
|
-
|
|
70
|
-
|
|
77
|
+
const background = {};
|
|
78
|
+
if (parsed.background.tool && hexToAnsiBg(parsed.background.tool)) {
|
|
79
|
+
background.tool = parsed.background.tool;
|
|
71
80
|
}
|
|
72
|
-
if (parsed.background.error &&
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
if (!parsed.background.tool && !parsed.background.error) {
|
|
76
|
-
parsed.background = undefined;
|
|
81
|
+
if (parsed.background.error && hexToAnsiBg(parsed.background.error)) {
|
|
82
|
+
background.error = parsed.background.error;
|
|
77
83
|
}
|
|
84
|
+
if (background.tool || background.error)
|
|
85
|
+
config.background = background;
|
|
78
86
|
}
|
|
79
|
-
|
|
87
|
+
if (typeof parsed.theme === "string" && parsed.theme.trim() !== "")
|
|
88
|
+
config.theme = parsed.theme;
|
|
89
|
+
if (typeof parsed.icons === "string")
|
|
90
|
+
config.icons = parsed.icons;
|
|
91
|
+
const enableTools = normalizeToolList(parsed.enableTools);
|
|
92
|
+
const disableTools = normalizeToolList(parsed.disableTools);
|
|
93
|
+
if (enableTools.length)
|
|
94
|
+
config.enableTools = enableTools;
|
|
95
|
+
if (disableTools.length)
|
|
96
|
+
config.disableTools = disableTools;
|
|
97
|
+
const maxHlChars = positiveInt(parsed.maxHlChars);
|
|
98
|
+
const maxPreviewLines = positiveInt(parsed.maxPreviewLines);
|
|
99
|
+
const cacheLimit = positiveInt(parsed.cacheLimit);
|
|
100
|
+
if (maxHlChars)
|
|
101
|
+
config.maxHlChars = maxHlChars;
|
|
102
|
+
if (maxPreviewLines)
|
|
103
|
+
config.maxPreviewLines = maxPreviewLines;
|
|
104
|
+
if (cacheLimit)
|
|
105
|
+
config.cacheLimit = cacheLimit;
|
|
106
|
+
return config;
|
|
80
107
|
}
|
|
81
108
|
catch {
|
|
82
109
|
return {};
|
|
83
110
|
}
|
|
84
111
|
}
|
|
112
|
+
export function getConfigDir() {
|
|
113
|
+
return process.env.PRETTY_CONFIG_DIR ?? getDefaultAgentDir();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Merge env tool sets with config-file tool lists: a non-empty env set wins
|
|
117
|
+
* over the config file (12-factor precedence); otherwise config applies.
|
|
118
|
+
*/
|
|
119
|
+
export function resolveToolSets(envDisabled, envEnabled, config) {
|
|
120
|
+
return {
|
|
121
|
+
disabledTools: envDisabled.size > 0 ? envDisabled : new Set(config.disableTools ?? []),
|
|
122
|
+
enabledTools: envEnabled.size > 0 ? envEnabled : new Set(config.enableTools ?? []),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
85
125
|
function applyPrettyConfigBg(agentDir) {
|
|
86
|
-
const config =
|
|
126
|
+
const config = loadConfig(agentDir);
|
|
87
127
|
if (!config.background?.tool)
|
|
88
128
|
return false;
|
|
89
129
|
const toolBg = hexToAnsiBg(config.background.tool);
|
|
90
130
|
if (!toolBg)
|
|
91
131
|
return false;
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
132
|
+
BG_BASE = toolBg;
|
|
133
|
+
BG_ERROR = config.background.error ? (hexToAnsiBg(config.background.error) ?? toolBg) : toolBg;
|
|
134
|
+
RST = "\x1b[0m";
|
|
95
135
|
return true;
|
|
96
136
|
}
|
|
97
|
-
function resolveBaseBackground(theme) {
|
|
98
|
-
const
|
|
99
|
-
const configDir = process.env.PRETTY_CONFIG_DIR ?? (home ? (0, node_path_1.join)(home, ".pi/agent") : undefined);
|
|
137
|
+
export function resolveBaseBackground(theme) {
|
|
138
|
+
const configDir = getConfigDir();
|
|
100
139
|
if (applyPrettyConfigBg(configDir))
|
|
101
140
|
return;
|
|
102
141
|
if (!theme?.getBgAnsi && !theme?.bg)
|
|
103
142
|
return;
|
|
104
|
-
|
|
143
|
+
BG_BASE =
|
|
105
144
|
getThemeBgAnsi(theme, "toolSuccessBg") ??
|
|
106
145
|
getThemeBgAnsi(theme, "toolBg") ??
|
|
107
146
|
getThemeBgAnsi(theme, "background") ??
|
|
108
147
|
BG_DEFAULT;
|
|
109
|
-
|
|
110
|
-
|
|
148
|
+
BG_ERROR = getThemeBgAnsi(theme, "toolErrorBg") ?? BG_BASE;
|
|
149
|
+
RST = "\x1b[0m";
|
|
111
150
|
}
|
|
112
151
|
// ---------------------------------------------------------------------------
|
|
113
152
|
// Terminal
|
|
114
153
|
// ---------------------------------------------------------------------------
|
|
115
|
-
function termWidth() {
|
|
154
|
+
export function termWidth() {
|
|
116
155
|
if (process.stdout.columns)
|
|
117
156
|
return Math.max(1, Math.min(process.stdout.columns, 210));
|
|
118
157
|
const raw = process.stderr.columns ||
|
|
@@ -124,76 +163,76 @@ function termWidth() {
|
|
|
124
163
|
// File-type icons — Nerd Font glyphs
|
|
125
164
|
// ---------------------------------------------------------------------------
|
|
126
165
|
const ICONS_MODE = (process.env.PRETTY_ICONS ?? "nerd").toLowerCase();
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
166
|
+
export let USE_ICONS = ICONS_MODE !== "none" && ICONS_MODE !== "off";
|
|
167
|
+
export const NF_DIR = `${FG_BLUE}\ue5ff${RST}`;
|
|
168
|
+
export const NF_DEFAULT = `${FG_DIM}\uf15b${RST}`;
|
|
130
169
|
const EXT_ICON = {
|
|
131
|
-
ts: `\x1b[38;2;49;120;198m\ue628${
|
|
132
|
-
tsx: `\x1b[38;2;49;120;198m\ue7ba${
|
|
133
|
-
js: `\x1b[38;2;241;224;90m\ue74e${
|
|
134
|
-
jsx: `\x1b[38;2;97;218;251m\ue7ba${
|
|
135
|
-
mjs: `\x1b[38;2;241;224;90m\ue74e${
|
|
136
|
-
cjs: `\x1b[38;2;241;224;90m\ue74e${
|
|
137
|
-
py: `\x1b[38;2;55;118;171m\ue73c${
|
|
138
|
-
rs: `\x1b[38;2;222;165;132m\ue7a8${
|
|
139
|
-
go: `\x1b[38;2;0;173;216m\ue724${
|
|
140
|
-
java: `\x1b[38;2;204;62;68m\ue738${
|
|
141
|
-
swift: `\x1b[38;2;255;172;77m\ue755${
|
|
142
|
-
rb: `\x1b[38;2;204;52;45m\ue739${
|
|
143
|
-
kt: `\x1b[38;2;126;103;200m\ue634${
|
|
144
|
-
c: `\x1b[38;2;85;154;211m\ue61e${
|
|
145
|
-
cpp: `\x1b[38;2;85;154;211m\ue61d${
|
|
146
|
-
cs: `\x1b[38;2;104;33;122m\ue648${
|
|
147
|
-
html: `\x1b[38;2;228;77;38m\ue736${
|
|
148
|
-
css: `\x1b[38;2;66;165;245m\ue749${
|
|
149
|
-
scss: `\x1b[38;2;207;100;154m\ue749${
|
|
150
|
-
vue: `\x1b[38;2;65;184;131m\ue6a0${
|
|
151
|
-
svelte: `\x1b[38;2;255;62;0m\ue697${
|
|
152
|
-
json: `\x1b[38;2;241;224;90m\ue60b${
|
|
153
|
-
yaml: `\x1b[38;2;160;116;196m\ue6a8${
|
|
154
|
-
yml: `\x1b[38;2;160;116;196m\ue6a8${
|
|
155
|
-
toml: `\x1b[38;2;160;116;196m\ue6b2${
|
|
156
|
-
xml: `\x1b[38;2;228;77;38m\ue619${
|
|
157
|
-
md: `\x1b[38;2;66;165;245m\ue73e${
|
|
158
|
-
mdx: `\x1b[38;2;66;165;245m\ue73e${
|
|
159
|
-
sql: `\x1b[38;2;218;218;218m\ue706${
|
|
160
|
-
sh: `\x1b[38;2;137;180;130m\ue795${
|
|
161
|
-
bash: `\x1b[38;2;137;180;130m\ue795${
|
|
162
|
-
zsh: `\x1b[38;2;137;180;130m\ue795${
|
|
163
|
-
lua: `\x1b[38;2;81;160;207m\ue620${
|
|
164
|
-
php: `\x1b[38;2;137;147;186m\ue73d${
|
|
165
|
-
dart: `\x1b[38;2;87;182;240m\ue798${
|
|
166
|
-
png: `\x1b[38;2;160;116;196m\uf1c5${
|
|
167
|
-
jpg: `\x1b[38;2;160;116;196m\uf1c5${
|
|
168
|
-
svg: `\x1b[38;2;255;180;50m\uf1c5${
|
|
169
|
-
webp: `\x1b[38;2;160;116;196m\uf1c5${
|
|
170
|
-
lock: `\x1b[38;2;130;130;130m\uf023${
|
|
171
|
-
env: `\x1b[38;2;241;224;90m\ue615${
|
|
172
|
-
graphql: `\x1b[38;2;224;51;144m\ue662${
|
|
173
|
-
dockerfile: `\x1b[38;2;56;152;236m\ue7b0${
|
|
170
|
+
ts: `\x1b[38;2;49;120;198m\ue628${RST}`,
|
|
171
|
+
tsx: `\x1b[38;2;49;120;198m\ue7ba${RST}`,
|
|
172
|
+
js: `\x1b[38;2;241;224;90m\ue74e${RST}`,
|
|
173
|
+
jsx: `\x1b[38;2;97;218;251m\ue7ba${RST}`,
|
|
174
|
+
mjs: `\x1b[38;2;241;224;90m\ue74e${RST}`,
|
|
175
|
+
cjs: `\x1b[38;2;241;224;90m\ue74e${RST}`,
|
|
176
|
+
py: `\x1b[38;2;55;118;171m\ue73c${RST}`,
|
|
177
|
+
rs: `\x1b[38;2;222;165;132m\ue7a8${RST}`,
|
|
178
|
+
go: `\x1b[38;2;0;173;216m\ue724${RST}`,
|
|
179
|
+
java: `\x1b[38;2;204;62;68m\ue738${RST}`,
|
|
180
|
+
swift: `\x1b[38;2;255;172;77m\ue755${RST}`,
|
|
181
|
+
rb: `\x1b[38;2;204;52;45m\ue739${RST}`,
|
|
182
|
+
kt: `\x1b[38;2;126;103;200m\ue634${RST}`,
|
|
183
|
+
c: `\x1b[38;2;85;154;211m\ue61e${RST}`,
|
|
184
|
+
cpp: `\x1b[38;2;85;154;211m\ue61d${RST}`,
|
|
185
|
+
cs: `\x1b[38;2;104;33;122m\ue648${RST}`,
|
|
186
|
+
html: `\x1b[38;2;228;77;38m\ue736${RST}`,
|
|
187
|
+
css: `\x1b[38;2;66;165;245m\ue749${RST}`,
|
|
188
|
+
scss: `\x1b[38;2;207;100;154m\ue749${RST}`,
|
|
189
|
+
vue: `\x1b[38;2;65;184;131m\ue6a0${RST}`,
|
|
190
|
+
svelte: `\x1b[38;2;255;62;0m\ue697${RST}`,
|
|
191
|
+
json: `\x1b[38;2;241;224;90m\ue60b${RST}`,
|
|
192
|
+
yaml: `\x1b[38;2;160;116;196m\ue6a8${RST}`,
|
|
193
|
+
yml: `\x1b[38;2;160;116;196m\ue6a8${RST}`,
|
|
194
|
+
toml: `\x1b[38;2;160;116;196m\ue6b2${RST}`,
|
|
195
|
+
xml: `\x1b[38;2;228;77;38m\ue619${RST}`,
|
|
196
|
+
md: `\x1b[38;2;66;165;245m\ue73e${RST}`,
|
|
197
|
+
mdx: `\x1b[38;2;66;165;245m\ue73e${RST}`,
|
|
198
|
+
sql: `\x1b[38;2;218;218;218m\ue706${RST}`,
|
|
199
|
+
sh: `\x1b[38;2;137;180;130m\ue795${RST}`,
|
|
200
|
+
bash: `\x1b[38;2;137;180;130m\ue795${RST}`,
|
|
201
|
+
zsh: `\x1b[38;2;137;180;130m\ue795${RST}`,
|
|
202
|
+
lua: `\x1b[38;2;81;160;207m\ue620${RST}`,
|
|
203
|
+
php: `\x1b[38;2;137;147;186m\ue73d${RST}`,
|
|
204
|
+
dart: `\x1b[38;2;87;182;240m\ue798${RST}`,
|
|
205
|
+
png: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
|
|
206
|
+
jpg: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
|
|
207
|
+
svg: `\x1b[38;2;255;180;50m\uf1c5${RST}`,
|
|
208
|
+
webp: `\x1b[38;2;160;116;196m\uf1c5${RST}`,
|
|
209
|
+
lock: `\x1b[38;2;130;130;130m\uf023${RST}`,
|
|
210
|
+
env: `\x1b[38;2;241;224;90m\ue615${RST}`,
|
|
211
|
+
graphql: `\x1b[38;2;224;51;144m\ue662${RST}`,
|
|
212
|
+
dockerfile: `\x1b[38;2;56;152;236m\ue7b0${RST}`,
|
|
174
213
|
};
|
|
175
214
|
const NAME_ICON = {
|
|
176
|
-
"package.json": `\x1b[38;2;137;180;130m\ue71e${
|
|
177
|
-
"package-lock.json": `\x1b[38;2;130;130;130m\ue71e${
|
|
178
|
-
"tsconfig.json": `\x1b[38;2;49;120;198m\ue628${
|
|
179
|
-
".gitignore": `\x1b[38;2;222;165;132m\ue702${
|
|
180
|
-
".env": `\x1b[38;2;241;224;90m\ue615${
|
|
181
|
-
dockerfile: `\x1b[38;2;56;152;236m\ue7b0${
|
|
182
|
-
makefile: `\x1b[38;2;130;130;130m\ue615${
|
|
183
|
-
"readme.md": `\x1b[38;2;66;165;245m\ue73e${
|
|
184
|
-
license: `\x1b[38;2;218;218;218m\ue60a${
|
|
215
|
+
"package.json": `\x1b[38;2;137;180;130m\ue71e${RST}`,
|
|
216
|
+
"package-lock.json": `\x1b[38;2;130;130;130m\ue71e${RST}`,
|
|
217
|
+
"tsconfig.json": `\x1b[38;2;49;120;198m\ue628${RST}`,
|
|
218
|
+
".gitignore": `\x1b[38;2;222;165;132m\ue702${RST}`,
|
|
219
|
+
".env": `\x1b[38;2;241;224;90m\ue615${RST}`,
|
|
220
|
+
dockerfile: `\x1b[38;2;56;152;236m\ue7b0${RST}`,
|
|
221
|
+
makefile: `\x1b[38;2;130;130;130m\ue615${RST}`,
|
|
222
|
+
"readme.md": `\x1b[38;2;66;165;245m\ue73e${RST}`,
|
|
223
|
+
license: `\x1b[38;2;218;218;218m\ue60a${RST}`,
|
|
185
224
|
};
|
|
186
|
-
function fileIcon(fp) {
|
|
187
|
-
if (!
|
|
225
|
+
export function fileIcon(fp) {
|
|
226
|
+
if (!USE_ICONS)
|
|
188
227
|
return "";
|
|
189
|
-
const base =
|
|
228
|
+
const base = basename(fp).toLowerCase();
|
|
190
229
|
if (NAME_ICON[base])
|
|
191
230
|
return `${NAME_ICON[base]} `;
|
|
192
|
-
const ext =
|
|
193
|
-
return EXT_ICON[ext] ? `${EXT_ICON[ext]} ` : `${
|
|
231
|
+
const ext = extname(fp).slice(1).toLowerCase();
|
|
232
|
+
return EXT_ICON[ext] ? `${EXT_ICON[ext]} ` : `${NF_DEFAULT} `;
|
|
194
233
|
}
|
|
195
|
-
function dirIcon() {
|
|
196
|
-
return
|
|
234
|
+
export function dirIcon() {
|
|
235
|
+
return USE_ICONS ? `${NF_DIR} ` : "";
|
|
197
236
|
}
|
|
198
237
|
const EXT_LANG = {
|
|
199
238
|
ts: "typescript",
|
|
@@ -242,29 +281,47 @@ const EXT_LANG = {
|
|
|
242
281
|
nim: "nim",
|
|
243
282
|
elixir: "elixir",
|
|
244
283
|
};
|
|
245
|
-
function detectLang(fp) {
|
|
246
|
-
const base =
|
|
284
|
+
export function detectLang(fp) {
|
|
285
|
+
const base = basename(fp).toLowerCase();
|
|
247
286
|
if (base === "dockerfile")
|
|
248
287
|
return "dockerfile";
|
|
249
288
|
if (base === "makefile" || base === "gnumakefile")
|
|
250
289
|
return "make";
|
|
251
|
-
return EXT_LANG[
|
|
290
|
+
return EXT_LANG[extname(fp).slice(1).toLowerCase()];
|
|
252
291
|
}
|
|
253
292
|
// ---------------------------------------------------------------------------
|
|
254
293
|
// Env helpers
|
|
255
294
|
// ---------------------------------------------------------------------------
|
|
256
|
-
function envInt(name, fallback) {
|
|
295
|
+
export function envInt(name, fallback) {
|
|
257
296
|
const v = Number.parseInt(process.env[name] ?? "", 10);
|
|
258
297
|
return Number.isFinite(v) && v > 0 ? v : fallback;
|
|
259
298
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
299
|
+
export let MAX_HL_CHARS = envInt("PRETTY_MAX_HL_CHARS", 80_000);
|
|
300
|
+
export let MAX_PREVIEW_LINES = envInt("PRETTY_MAX_PREVIEW_LINES", 80);
|
|
301
|
+
export let CACHE_LIMIT = envInt("PRETTY_CACHE_LIMIT", 128);
|
|
302
|
+
/**
|
|
303
|
+
* Apply `pi-pretty.json` values to the env-backed module bindings. An env
|
|
304
|
+
* var wins over the config file whenever it is set to a non-empty value;
|
|
305
|
+
* empty strings are treated as unset. Call once at extension activation,
|
|
306
|
+
* before any render reads the bindings.
|
|
307
|
+
*/
|
|
308
|
+
export function applyConfig(config) {
|
|
309
|
+
if (!process.env.PRETTY_MAX_HL_CHARS && config.maxHlChars)
|
|
310
|
+
MAX_HL_CHARS = config.maxHlChars;
|
|
311
|
+
if (!process.env.PRETTY_MAX_PREVIEW_LINES && config.maxPreviewLines)
|
|
312
|
+
MAX_PREVIEW_LINES = config.maxPreviewLines;
|
|
313
|
+
if (!process.env.PRETTY_CACHE_LIMIT && config.cacheLimit)
|
|
314
|
+
CACHE_LIMIT = config.cacheLimit;
|
|
315
|
+
if (!process.env.PRETTY_ICONS && config.icons) {
|
|
316
|
+
const mode = config.icons.toLowerCase();
|
|
317
|
+
USE_ICONS = mode !== "none" && mode !== "off";
|
|
318
|
+
}
|
|
319
|
+
}
|
|
263
320
|
// ---------------------------------------------------------------------------
|
|
264
321
|
// Agent directory helpers
|
|
265
322
|
// ---------------------------------------------------------------------------
|
|
266
|
-
function getDefaultAgentDir() {
|
|
323
|
+
export function getDefaultAgentDir() {
|
|
267
324
|
const home = process.env.HOME ?? "";
|
|
268
|
-
return home ?
|
|
325
|
+
return home ? join(home, ".pi/agent") : undefined;
|
|
269
326
|
}
|
|
270
327
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA2GH,sDAYC;AAMD,8BAOC;AAsED,4BAMC;AAED,0BAEC;AAwDD,gCAKC;AAMD,wBAGC;AAUD,gDAGC;AArSD,qCAAuC;AACvC,yCAAoD;AAEpD,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,mGAAmG;AACtF,QAAA,kBAAkB,GAAG,GAAG,CAAC;AAE3B,QAAA,GAAG,GAAG,SAAS,CAAC;AAEd,QAAA,OAAO,GAAG,wBAAwB,CAAC;AACnC,QAAA,MAAM,GAAG,qBAAqB,CAAC;AAC/B,QAAA,OAAO,GAAG,qBAAqB,CAAC;AAChC,QAAA,QAAQ,GAAG,wBAAwB,CAAC;AACpC,QAAA,MAAM,GAAG,wBAAwB,CAAC;AAClC,QAAA,SAAS,GAAG,uBAAuB,CAAC;AACpC,QAAA,OAAO,GAAG,wBAAwB,CAAC;AACnC,QAAA,QAAQ,GAAG,wBAAwB,CAAC;AAEjD,MAAM,UAAU,GAAG,UAAU,CAAC;AACnB,QAAA,OAAO,GAAG,UAAU,CAAC;AACrB,QAAA,QAAQ,GAAG,UAAU,CAAC;AAWjC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAExB,SAAS,YAAY,CAAC,IAAY;IACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,sCAAsC,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAC,KAAkB,EAAE,GAAW;IACtD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAElD,MAAM,MAAM,GAAG,IAAI,CAAC;QACpB,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,OAAO,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC5E,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC,CAAC;AASD,SAAS,gBAAgB,CAAC,QAAiB;IAC1C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,IAAA,gBAAI,EAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;QAC/C,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpE,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,SAAS,CAAC;YACpC,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACzD,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;YAC/B,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAiB;IAC7C,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,eAAO,GAAG,MAAM,CAAC;IACjB,gBAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/F,WAAG,GAAG,SAAS,CAAC;IAChB,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAqC;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAChG,IAAI,mBAAmB,CAAC,SAAS,CAAC;QAAE,OAAO;IAC3C,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,KAAK,EAAE,EAAE;QAAE,OAAO;IAC5C,eAAO;QACN,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC;YACtC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC;YAC/B,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC;YACnC,UAAU,CAAC;IACZ,gBAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,eAAO,CAAC;IAC3D,WAAG,GAAG,SAAS,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,SAAgB,SAAS;IACxB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACtF,MAAM,GAAG,GACP,OAAO,CAAC,MAAoD,CAAC,OAAO;QACrE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC;QAC9C,GAAG,CAAC;IACL,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AACzD,QAAA,SAAS,GAAG,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,CAAC;AAE1D,QAAA,MAAM,GAAG,GAAG,eAAO,SAAS,WAAG,EAAE,CAAC;AAClC,QAAA,UAAU,GAAG,GAAG,cAAM,SAAS,WAAG,EAAE,CAAC;AAElD,MAAM,QAAQ,GAA2B;IACxC,EAAE,EAAE,8BAA8B,WAAG,EAAE;IACvC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,EAAE,EAAE,8BAA8B,WAAG,EAAE;IACvC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,EAAE,EAAE,8BAA8B,WAAG,EAAE;IACvC,EAAE,EAAE,+BAA+B,WAAG,EAAE;IACxC,EAAE,EAAE,6BAA6B,WAAG,EAAE;IACtC,IAAI,EAAE,6BAA6B,WAAG,EAAE;IACxC,KAAK,EAAE,8BAA8B,WAAG,EAAE;IAC1C,EAAE,EAAE,6BAA6B,WAAG,EAAE;IACtC,EAAE,EAAE,+BAA+B,WAAG,EAAE;IACxC,CAAC,EAAE,8BAA8B,WAAG,EAAE;IACtC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,EAAE,EAAE,8BAA8B,WAAG,EAAE;IACvC,IAAI,EAAE,6BAA6B,WAAG,EAAE;IACxC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,IAAI,EAAE,+BAA+B,WAAG,EAAE;IAC1C,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,MAAM,EAAE,4BAA4B,WAAG,EAAE;IACzC,IAAI,EAAE,8BAA8B,WAAG,EAAE;IACzC,IAAI,EAAE,+BAA+B,WAAG,EAAE;IAC1C,GAAG,EAAE,+BAA+B,WAAG,EAAE;IACzC,IAAI,EAAE,+BAA+B,WAAG,EAAE;IAC1C,GAAG,EAAE,6BAA6B,WAAG,EAAE;IACvC,EAAE,EAAE,8BAA8B,WAAG,EAAE;IACvC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,GAAG,EAAE,+BAA+B,WAAG,EAAE;IACzC,EAAE,EAAE,+BAA+B,WAAG,EAAE;IACxC,IAAI,EAAE,+BAA+B,WAAG,EAAE;IAC1C,GAAG,EAAE,+BAA+B,WAAG,EAAE;IACzC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,GAAG,EAAE,+BAA+B,WAAG,EAAE;IACzC,IAAI,EAAE,8BAA8B,WAAG,EAAE;IACzC,GAAG,EAAE,+BAA+B,WAAG,EAAE;IACzC,GAAG,EAAE,+BAA+B,WAAG,EAAE;IACzC,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,IAAI,EAAE,+BAA+B,WAAG,EAAE;IAC1C,IAAI,EAAE,+BAA+B,WAAG,EAAE;IAC1C,GAAG,EAAE,8BAA8B,WAAG,EAAE;IACxC,OAAO,EAAE,8BAA8B,WAAG,EAAE;IAC5C,UAAU,EAAE,8BAA8B,WAAG,EAAE;CAC/C,CAAC;AAEF,MAAM,SAAS,GAA2B;IACzC,cAAc,EAAE,+BAA+B,WAAG,EAAE;IACpD,mBAAmB,EAAE,+BAA+B,WAAG,EAAE;IACzD,eAAe,EAAE,8BAA8B,WAAG,EAAE;IACpD,YAAY,EAAE,+BAA+B,WAAG,EAAE;IAClD,MAAM,EAAE,8BAA8B,WAAG,EAAE;IAC3C,UAAU,EAAE,8BAA8B,WAAG,EAAE;IAC/C,QAAQ,EAAE,+BAA+B,WAAG,EAAE;IAC9C,WAAW,EAAE,8BAA8B,WAAG,EAAE;IAChD,OAAO,EAAE,+BAA+B,WAAG,EAAE;CAC7C,CAAC;AAEF,SAAgB,QAAQ,CAAC,EAAU;IAClC,IAAI,CAAC,iBAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;IAClD,MAAM,GAAG,GAAG,IAAA,mBAAO,EAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,kBAAU,GAAG,CAAC;AAC/D,CAAC;AAED,SAAgB,OAAO;IACtB,OAAO,iBAAS,CAAC,CAAC,CAAC,GAAG,cAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAQD,MAAM,QAAQ,GAAoC;IACjD,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,CAAC,EAAE,GAAG;IACN,GAAG,EAAE,KAAK;IACV,CAAC,EAAE,GAAG;IACN,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,UAAU;IACd,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;CAChB,CAAC;AAEF,SAAgB,UAAU,CAAC,EAAU;IACpC,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAC/C,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,aAAa;QAAE,OAAO,MAAM,CAAC;IACjE,OAAO,QAAQ,CAAC,IAAA,mBAAO,EAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,SAAgB,MAAM,CAAC,IAAY,EAAE,QAAgB;IACpD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnD,CAAC;AAEY,QAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACrD,QAAA,iBAAiB,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;AAC3D,QAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;AAE7D,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAE9E,SAAgB,kBAAkB;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|