recomposable 1.1.7 → 1.2.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.
Files changed (49) hide show
  1. package/README.md +23 -8
  2. package/dist/components/App.d.ts +10 -0
  3. package/dist/components/App.js +149 -0
  4. package/dist/components/App.js.map +1 -0
  5. package/dist/components/BottomPanel.d.ts +9 -0
  6. package/dist/components/BottomPanel.js +205 -0
  7. package/dist/components/BottomPanel.js.map +1 -0
  8. package/dist/components/ExecScreen.d.ts +9 -0
  9. package/dist/components/ExecScreen.js +21 -0
  10. package/dist/components/ExecScreen.js.map +1 -0
  11. package/dist/components/Legend.d.ts +3 -0
  12. package/dist/components/Legend.js +86 -0
  13. package/dist/components/Legend.js.map +1 -0
  14. package/dist/components/ListScreen.d.ts +9 -0
  15. package/dist/components/ListScreen.js +85 -0
  16. package/dist/components/ListScreen.js.map +1 -0
  17. package/dist/components/LogScreen.d.ts +9 -0
  18. package/dist/components/LogScreen.js +130 -0
  19. package/dist/components/LogScreen.js.map +1 -0
  20. package/dist/components/Logo.d.ts +2 -0
  21. package/dist/components/Logo.js +8 -0
  22. package/dist/components/Logo.js.map +1 -0
  23. package/dist/components/Separator.d.ts +6 -0
  24. package/dist/components/Separator.js +8 -0
  25. package/dist/components/Separator.js.map +1 -0
  26. package/dist/components/ServiceRow.d.ts +11 -0
  27. package/dist/components/ServiceRow.js +159 -0
  28. package/dist/components/ServiceRow.js.map +1 -0
  29. package/dist/index.d.ts +26 -1
  30. package/dist/index.js +715 -293
  31. package/dist/index.js.map +1 -1
  32. package/dist/lib/docker.d.ts +12 -10
  33. package/dist/lib/docker.js +190 -103
  34. package/dist/lib/docker.js.map +1 -1
  35. package/dist/lib/inkTheme.d.ts +18 -0
  36. package/dist/lib/inkTheme.js +33 -0
  37. package/dist/lib/inkTheme.js.map +1 -0
  38. package/dist/lib/renderer.d.ts +1 -1
  39. package/dist/lib/renderer.js +118 -75
  40. package/dist/lib/renderer.js.map +1 -1
  41. package/dist/lib/state.d.ts +12 -1
  42. package/dist/lib/state.js +30 -21
  43. package/dist/lib/state.js.map +1 -1
  44. package/dist/lib/theme.js +13 -23
  45. package/dist/lib/theme.js.map +1 -1
  46. package/dist/lib/types.d.ts +14 -0
  47. package/dist/lib/types.js +1 -4
  48. package/dist/lib/types.js.map +1 -1
  49. package/package.json +8 -1
package/dist/lib/state.js CHANGED
@@ -1,18 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MODE = void 0;
4
- exports.createState = createState;
5
- exports.statusKey = statusKey;
6
- exports.buildFlatList = buildFlatList;
7
- exports.moveCursor = moveCursor;
8
- exports.selectedEntry = selectedEntry;
9
- exports.getEffectiveFile = getEffectiveFile;
10
- exports.worktreeLabel = worktreeLabel;
11
- const types_1 = require("./types");
12
- Object.defineProperty(exports, "MODE", { enumerable: true, get: function () { return types_1.MODE; } });
13
- function createState(config) {
1
+ import path from 'path';
2
+ import { MODE } from './types.js';
3
+ export { MODE };
4
+ export function createState(config) {
14
5
  return {
15
- mode: types_1.MODE.LIST,
6
+ mode: MODE.LIST,
16
7
  groups: [],
17
8
  flatList: [],
18
9
  cursor: 0,
@@ -26,11 +17,14 @@ function createState(config) {
26
17
  logChild: null,
27
18
  scrollOffset: 0,
28
19
  noCache: false,
29
- noDeps: false,
20
+ noDeps: true,
30
21
  showBottomLogs: true,
31
22
  bottomLogLines: new Map(),
32
23
  bottomLogTails: new Map(),
33
24
  selectedLogKey: null,
25
+ bottomLogLoading: false,
26
+ animDots: 0,
27
+ animTimer: null,
34
28
  logCounts: new Map(),
35
29
  logLines: [],
36
30
  logScrollOffset: 0,
@@ -75,13 +69,14 @@ function createState(config) {
75
69
  worktreePickerEntries: [],
76
70
  worktreePickerCursor: 0,
77
71
  worktreePickerCurrentPath: null,
72
+ multiSelected: new Set(),
78
73
  config,
79
74
  };
80
75
  }
81
- function statusKey(file, service) {
76
+ export function statusKey(file, service) {
82
77
  return `${file}::${service}`;
83
78
  }
84
- function buildFlatList(groups) {
79
+ export function buildFlatList(groups) {
85
80
  const list = [];
86
81
  for (let gi = 0; gi < groups.length; gi++) {
87
82
  const g = groups[gi];
@@ -91,18 +86,32 @@ function buildFlatList(groups) {
91
86
  }
92
87
  return list;
93
88
  }
94
- function moveCursor(state, delta) {
89
+ export function moveCursor(state, delta) {
95
90
  if (state.flatList.length === 0)
96
91
  return;
97
92
  state.cursor = Math.max(0, Math.min(state.flatList.length - 1, state.cursor + delta));
98
93
  }
99
- function selectedEntry(state) {
94
+ export function selectedEntry(state) {
100
95
  return state.flatList[state.cursor] || null;
101
96
  }
102
- function getEffectiveFile(state, file, service) {
97
+ export function getEffectiveFile(state, file, service) {
103
98
  return state.worktreeOverrides.get(statusKey(file, service)) || file;
104
99
  }
105
- function worktreeLabel(worktree) {
100
+ /** Docker Compose project name derived from compose file's parent directory. */
101
+ export function composeProjectName(file) {
102
+ return path.basename(path.dirname(path.resolve(file))).toLowerCase().replace(/[^a-z0-9_-]/g, '');
103
+ }
104
+ /**
105
+ * Returns the effective compose file and, when a worktree override is active,
106
+ * the project name from the *original* file so that Docker Compose targets the
107
+ * same project regardless of which worktree is in use.
108
+ */
109
+ export function getComposeTarget(state, file, service) {
110
+ const effectiveFile = getEffectiveFile(state, file, service);
111
+ const projectName = effectiveFile !== file ? composeProjectName(file) : undefined;
112
+ return { file: effectiveFile, projectName };
113
+ }
114
+ export function worktreeLabel(worktree) {
106
115
  return worktree || '';
107
116
  }
108
117
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/lib/state.ts"],"names":[],"mappings":"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"}
package/dist/lib/theme.js CHANGED
@@ -1,15 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NO_COLOR_PALETTE = exports.LIGHT_PALETTE = exports.DARK_PALETTE = void 0;
4
- exports.parseOsc11Response = parseOsc11Response;
5
- exports.parseColorfgbg = parseColorfgbg;
6
- exports.detectViaOsc11 = detectViaOsc11;
7
- exports.detectTheme = detectTheme;
8
- exports.getPalette = getPalette;
9
- exports.setActivePalette = setActivePalette;
10
- exports.getActivePalette = getActivePalette;
11
1
  const ESC = '\x1b[';
12
- exports.DARK_PALETTE = {
2
+ export const DARK_PALETTE = {
13
3
  reset: `${ESC}0m`,
14
4
  bold: `${ESC}1m`,
15
5
  dim: `${ESC}38;5;250m`,
@@ -24,7 +14,7 @@ exports.DARK_PALETTE = {
24
14
  logo: `${ESC}36m`,
25
15
  highlightBg: `${ESC}48;5;238m`,
26
16
  };
27
- exports.LIGHT_PALETTE = {
17
+ export const LIGHT_PALETTE = {
28
18
  reset: `${ESC}0m`,
29
19
  bold: `${ESC}1m`,
30
20
  dim: `${ESC}38;5;242m`,
@@ -39,7 +29,7 @@ exports.LIGHT_PALETTE = {
39
29
  logo: '',
40
30
  highlightBg: `${ESC}48;5;254m`,
41
31
  };
42
- exports.NO_COLOR_PALETTE = {
32
+ export const NO_COLOR_PALETTE = {
43
33
  reset: '',
44
34
  bold: '',
45
35
  dim: '',
@@ -58,7 +48,7 @@ exports.NO_COLOR_PALETTE = {
58
48
  * Parse an OSC 11 response like `\x1b]11;rgb:RRRR/GGGG/BBBB\x07` or `\x1b]11;rgb:RRRR/GGGG/BBBB\x1b\\`
59
49
  * Returns 'light' if the background luminance is high, 'dark' otherwise, or null if unparseable.
60
50
  */
61
- function parseOsc11Response(response) {
51
+ export function parseOsc11Response(response) {
62
52
  const match = response.match(/rgb:([0-9a-fA-F]+)\/([0-9a-fA-F]+)\/([0-9a-fA-F]+)/);
63
53
  if (!match)
64
54
  return null;
@@ -78,7 +68,7 @@ function parseOsc11Response(response) {
78
68
  * Parse the COLORFGBG environment variable (e.g. "15;0" or "15;default;0").
79
69
  * The last number is the background color index.
80
70
  */
81
- function parseColorfgbg(val) {
71
+ export function parseColorfgbg(val) {
82
72
  if (!val)
83
73
  return null;
84
74
  const parts = val.split(';');
@@ -94,7 +84,7 @@ function parseColorfgbg(val) {
94
84
  * Attempt to detect terminal theme via OSC 11 escape sequence.
95
85
  * Writes query to stdout, reads response from stdin with a timeout.
96
86
  */
97
- function detectViaOsc11(timeoutMs = 200) {
87
+ export function detectViaOsc11(timeoutMs = 200) {
98
88
  return new Promise((resolve) => {
99
89
  const stdin = process.stdin;
100
90
  const wasRaw = stdin.isRaw;
@@ -149,7 +139,7 @@ function detectViaOsc11(timeoutMs = 200) {
149
139
  * If setting is 'light' or 'dark', returns it directly.
150
140
  * If 'auto', tries OSC 11, then COLORFGBG, then defaults to 'dark'.
151
141
  */
152
- async function detectTheme(setting) {
142
+ export async function detectTheme(setting) {
153
143
  if (setting === 'light' || setting === 'dark')
154
144
  return setting;
155
145
  // Try OSC 11 detection (only in TTY)
@@ -168,17 +158,17 @@ async function detectTheme(setting) {
168
158
  * Returns the appropriate color palette for the given mode.
169
159
  * Respects the NO_COLOR environment variable.
170
160
  */
171
- function getPalette(mode) {
161
+ export function getPalette(mode) {
172
162
  if (process.env.NO_COLOR !== undefined)
173
- return exports.NO_COLOR_PALETTE;
174
- return mode === 'light' ? exports.LIGHT_PALETTE : exports.DARK_PALETTE;
163
+ return NO_COLOR_PALETTE;
164
+ return mode === 'light' ? LIGHT_PALETTE : DARK_PALETTE;
175
165
  }
176
166
  // --- Module singleton ---
177
- let activePalette = exports.DARK_PALETTE;
178
- function setActivePalette(palette) {
167
+ let activePalette = DARK_PALETTE;
168
+ export function setActivePalette(palette) {
179
169
  activePalette = palette;
180
170
  }
181
- function getActivePalette() {
171
+ export function getActivePalette() {
182
172
  return activePalette;
183
173
  }
184
174
  //# sourceMappingURL=theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/lib/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/lib/theme.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,11 @@ export declare const MODE: {
7
7
  readonly EXEC: "EXEC";
8
8
  };
9
9
  export type Mode = typeof MODE[keyof typeof MODE];
10
+ export interface CustomAction {
11
+ key: string;
12
+ label: string;
13
+ command: string;
14
+ }
10
15
  export interface Config {
11
16
  composeFiles: string[];
12
17
  pollInterval: number;
@@ -22,6 +27,7 @@ export interface Config {
22
27
  memWarnThreshold: number;
23
28
  memDangerThreshold: number;
24
29
  theme: 'auto' | 'light' | 'dark';
30
+ customActions: CustomAction[];
25
31
  }
26
32
  export interface PortMapping {
27
33
  published: number;
@@ -118,6 +124,9 @@ export interface AppState {
118
124
  bottomLogLines: Map<string, BottomLogInfo>;
119
125
  bottomLogTails: Map<string, Killable>;
120
126
  selectedLogKey: string | null;
127
+ bottomLogLoading: boolean;
128
+ animDots: number;
129
+ animTimer: ReturnType<typeof setInterval> | null;
121
130
  logCounts: Map<string, Map<string, number>>;
122
131
  logLines: string[];
123
132
  logScrollOffset: number;
@@ -157,6 +166,7 @@ export interface AppState {
157
166
  worktreePickerEntries: GitWorktree[];
158
167
  worktreePickerCursor: number;
159
168
  worktreePickerCurrentPath: string | null;
169
+ multiSelected: Set<string>;
160
170
  config: Config;
161
171
  pollTimer?: ReturnType<typeof setInterval>;
162
172
  logScanTimer?: ReturnType<typeof setInterval>;
@@ -173,6 +183,10 @@ export interface LegendOptions {
173
183
  execMode?: boolean;
174
184
  execInline?: boolean;
175
185
  worktreePickerActive?: boolean;
186
+ customActions?: CustomAction[];
187
+ buildingActive?: boolean;
188
+ startingActive?: boolean;
189
+ multiSelectActive?: boolean;
176
190
  }
177
191
  export interface DisplayLine {
178
192
  type: 'header' | 'blank' | 'service';
package/dist/lib/types.js CHANGED
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MODE = void 0;
4
1
  // --- Mode ---
5
- exports.MODE = { LIST: 'LIST', LOGS: 'LOGS', EXEC: 'EXEC' };
2
+ export const MODE = { LIST: 'LIST', LOGS: 'LOGS', EXEC: 'EXEC' };
6
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":";;;AAIA,eAAe;AAEF,QAAA,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAW,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAIA,eAAe;AAEf,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAW,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "recomposable",
3
- "version": "1.1.7",
3
+ "version": "1.2.0",
4
4
  "description": "Docker Compose TUI manager with vim keybindings — monitor, restart, rebuild, and tail logs for your services",
5
+ "type": "module",
5
6
  "main": "dist/index.js",
6
7
  "bin": {
7
8
  "recomposable": "./dist/index.js"
@@ -42,7 +43,13 @@
42
43
  },
43
44
  "devDependencies": {
44
45
  "@types/node": "^20",
46
+ "@types/react": "^19.2.14",
47
+ "ink-testing-library": "^4.0.0",
45
48
  "typescript": "^5.7",
46
49
  "vitest": "^3.0"
50
+ },
51
+ "dependencies": {
52
+ "ink": "^5.2.1",
53
+ "react": "^18.3.1"
47
54
  }
48
55
  }