vde-layout 0.0.1 → 0.0.3

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 (79) hide show
  1. package/README.md +17 -0
  2. package/bin/vde-layout +9 -1
  3. package/dist/index.js +1459 -22
  4. package/dist/index.js.map +1 -1
  5. package/package.json +22 -11
  6. package/dist/cli.d.ts +0 -27
  7. package/dist/cli.d.ts.map +0 -1
  8. package/dist/cli.js +0 -138
  9. package/dist/cli.js.map +0 -1
  10. package/dist/config/loader.d.ts +0 -14
  11. package/dist/config/loader.d.ts.map +0 -1
  12. package/dist/config/loader.js +0 -117
  13. package/dist/config/loader.js.map +0 -1
  14. package/dist/config/validator.d.ts +0 -3
  15. package/dist/config/validator.d.ts.map +0 -1
  16. package/dist/config/validator.js +0 -168
  17. package/dist/config/validator.js.map +0 -1
  18. package/dist/executor/dry-run-executor.d.ts +0 -16
  19. package/dist/executor/dry-run-executor.d.ts.map +0 -1
  20. package/dist/executor/dry-run-executor.js +0 -45
  21. package/dist/executor/dry-run-executor.js.map +0 -1
  22. package/dist/executor/index.d.ts +0 -6
  23. package/dist/executor/index.d.ts.map +0 -1
  24. package/dist/executor/index.js +0 -10
  25. package/dist/executor/index.js.map +0 -1
  26. package/dist/executor/mock-executor.d.ts +0 -21
  27. package/dist/executor/mock-executor.d.ts.map +0 -1
  28. package/dist/executor/mock-executor.js +0 -73
  29. package/dist/executor/mock-executor.js.map +0 -1
  30. package/dist/executor/real-executor.d.ts +0 -16
  31. package/dist/executor/real-executor.d.ts.map +0 -1
  32. package/dist/executor/real-executor.js +0 -58
  33. package/dist/executor/real-executor.js.map +0 -1
  34. package/dist/index.d.ts +0 -3
  35. package/dist/index.d.ts.map +0 -1
  36. package/dist/interfaces/command-executor.d.ts +0 -7
  37. package/dist/interfaces/command-executor.d.ts.map +0 -1
  38. package/dist/interfaces/command-executor.js +0 -3
  39. package/dist/interfaces/command-executor.js.map +0 -1
  40. package/dist/interfaces/index.d.ts +0 -31
  41. package/dist/interfaces/index.d.ts.map +0 -1
  42. package/dist/interfaces/index.js +0 -3
  43. package/dist/interfaces/index.js.map +0 -1
  44. package/dist/layout/engine.d.ts +0 -18
  45. package/dist/layout/engine.d.ts.map +0 -1
  46. package/dist/layout/engine.js +0 -174
  47. package/dist/layout/engine.js.map +0 -1
  48. package/dist/layout/preset.d.ts +0 -13
  49. package/dist/layout/preset.d.ts.map +0 -1
  50. package/dist/layout/preset.js +0 -55
  51. package/dist/layout/preset.js.map +0 -1
  52. package/dist/models/schema.d.ts +0 -144
  53. package/dist/models/schema.d.ts.map +0 -1
  54. package/dist/models/schema.js +0 -95
  55. package/dist/models/schema.js.map +0 -1
  56. package/dist/models/types.d.ts +0 -34
  57. package/dist/models/types.d.ts.map +0 -1
  58. package/dist/models/types.js +0 -16
  59. package/dist/models/types.js.map +0 -1
  60. package/dist/tmux/commands.d.ts +0 -14
  61. package/dist/tmux/commands.d.ts.map +0 -1
  62. package/dist/tmux/commands.js +0 -59
  63. package/dist/tmux/commands.js.map +0 -1
  64. package/dist/tmux/executor.d.ts +0 -20
  65. package/dist/tmux/executor.d.ts.map +0 -1
  66. package/dist/tmux/executor.js +0 -64
  67. package/dist/tmux/executor.js.map +0 -1
  68. package/dist/utils/errors.d.ts +0 -36
  69. package/dist/utils/errors.d.ts.map +0 -1
  70. package/dist/utils/errors.js +0 -131
  71. package/dist/utils/errors.js.map +0 -1
  72. package/dist/utils/logger.d.ts +0 -25
  73. package/dist/utils/logger.d.ts.map +0 -1
  74. package/dist/utils/logger.js +0 -67
  75. package/dist/utils/logger.js.map +0 -1
  76. package/dist/utils/ratio.d.ts +0 -3
  77. package/dist/utils/ratio.d.ts.map +0 -1
  78. package/dist/utils/ratio.js +0 -44
  79. package/dist/utils/ratio.js.map +0 -1
@@ -1,14 +0,0 @@
1
- import type { ITmuxCommandGenerator } from "../interfaces";
2
- export declare class TmuxCommandGenerator implements ITmuxCommandGenerator {
3
- splitWindow(direction: "horizontal" | "vertical", targetPane?: string, percentage?: number): string[];
4
- resizePane(paneId: string, direction: "horizontal" | "vertical", percentage: number): string[];
5
- sendKeys(paneId: string, command: string): string[];
6
- selectPane(paneId: string): string[];
7
- setPaneOption(paneId: string, option: string, value: string): string[];
8
- setEnvironment(paneId: string, env: Record<string, string>): string[][];
9
- setPaneTitle(paneId: string, title: string): string[];
10
- changeDirectory(paneId: string, directory: string): string[];
11
- newWindow(windowName?: string, workingDirectory?: string): string[];
12
- killAllPanes(): string[];
13
- }
14
- //# sourceMappingURL=commands.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/tmux/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAM1D,qBAAa,oBAAqB,YAAW,qBAAqB;IAQhE,WAAW,CAAC,SAAS,EAAE,YAAY,GAAG,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IA0BrG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAW9F,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IASnD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAWpC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAUtE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,EAAE;IAmBvE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAUrD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAU5D,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBnE,YAAY,IAAI,MAAM,EAAE;CAIzB"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TmuxCommandGenerator = void 0;
4
- class TmuxCommandGenerator {
5
- splitWindow(direction, targetPane, percentage) {
6
- const args = ["split-window"];
7
- args.push(direction === "horizontal" ? "-h" : "-v");
8
- if (targetPane !== undefined) {
9
- args.push("-t", targetPane);
10
- }
11
- if (percentage !== undefined) {
12
- args.push("-p", percentage.toString());
13
- }
14
- return args;
15
- }
16
- resizePane(paneId, direction, percentage) {
17
- const size = Math.floor(percentage);
18
- return ["resize-pane", "-t", paneId, direction === "horizontal" ? "-x" : "-y", `${size}%`];
19
- }
20
- sendKeys(paneId, command) {
21
- return ["send-keys", "-t", paneId, command, "Enter"];
22
- }
23
- selectPane(paneId) {
24
- return ["select-pane", "-t", paneId];
25
- }
26
- setPaneOption(paneId, option, value) {
27
- return ["set-option", "-p", "-t", paneId, option, value];
28
- }
29
- setEnvironment(paneId, env) {
30
- const commands = [];
31
- for (const [key, value] of Object.entries(env)) {
32
- const escapedValue = value.replace(/"/g, '\\"');
33
- const exportCommand = `export ${key}="${escapedValue}"`;
34
- commands.push(this.sendKeys(paneId, exportCommand));
35
- }
36
- return commands;
37
- }
38
- setPaneTitle(paneId, title) {
39
- return ["select-pane", "-t", paneId, "-T", title];
40
- }
41
- changeDirectory(paneId, directory) {
42
- return this.sendKeys(paneId, `cd "${directory}"`);
43
- }
44
- newWindow(windowName, workingDirectory) {
45
- const args = ["new-window"];
46
- if (windowName !== undefined && windowName !== "") {
47
- args.push("-n", windowName);
48
- }
49
- if (workingDirectory !== undefined && workingDirectory !== "") {
50
- args.push("-c", workingDirectory);
51
- }
52
- return args;
53
- }
54
- killAllPanes() {
55
- return ["kill-pane", "-a"];
56
- }
57
- }
58
- exports.TmuxCommandGenerator = TmuxCommandGenerator;
59
- //# sourceMappingURL=commands.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/tmux/commands.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { ITmuxExecutor } from "../interfaces";
2
- import type { ICommandExecutor } from "../interfaces/command-executor";
3
- export interface TmuxExecutorOptions {
4
- verbose?: boolean;
5
- dryRun?: boolean;
6
- executor?: ICommandExecutor;
7
- }
8
- export declare class TmuxExecutor implements ITmuxExecutor {
9
- private readonly executor;
10
- constructor(options?: TmuxExecutorOptions);
11
- private isTestEnvironment;
12
- isInTmuxSession(): boolean;
13
- verifyTmuxEnvironment(): Promise<void>;
14
- execute(commandOrArgs: string | string[]): Promise<string>;
15
- executeMany(commandsList: string[][]): Promise<void>;
16
- getCommandString(args: string[]): string;
17
- getCurrentSessionName(): Promise<string>;
18
- getExecutor(): ICommandExecutor;
19
- }
20
- //# sourceMappingURL=executor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/tmux/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAGtE,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC5B;AAMD,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;gBAE/B,OAAO,GAAE,mBAAwB;IAa7C,OAAO,CAAC,iBAAiB;IAQzB,eAAe,IAAI,OAAO;IAQpB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BtC,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ1D,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM;IAQlC,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAO9C,WAAW,IAAI,gBAAgB;CAGhC"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TmuxExecutor = void 0;
4
- const execa_1 = require("execa");
5
- const errors_1 = require("../utils/errors");
6
- const executor_1 = require("../executor");
7
- class TmuxExecutor {
8
- executor;
9
- constructor(options = {}) {
10
- if (options.executor) {
11
- this.executor = options.executor;
12
- }
13
- else if (options.dryRun === true) {
14
- this.executor = new executor_1.DryRunExecutor({ verbose: options.verbose });
15
- }
16
- else if (this.isTestEnvironment()) {
17
- this.executor = new executor_1.MockExecutor();
18
- }
19
- else {
20
- this.executor = new executor_1.RealExecutor({ verbose: options.verbose });
21
- }
22
- }
23
- isTestEnvironment() {
24
- return process.env.VDE_TEST_MODE === "true" || process.env.NODE_ENV === "test" || process.env.VITEST === "true";
25
- }
26
- isInTmuxSession() {
27
- return Boolean(process.env.TMUX);
28
- }
29
- async verifyTmuxEnvironment() {
30
- if (!this.isInTmuxSession()) {
31
- throw new errors_1.EnvironmentError("Must be run inside a tmux session", errors_1.ErrorCodes.NOT_IN_TMUX, {
32
- hint: "Please start a tmux session and try again",
33
- });
34
- }
35
- if (this.executor.isDryRun()) {
36
- return;
37
- }
38
- try {
39
- await (0, execa_1.execa)("tmux", ["-V"]);
40
- }
41
- catch (_error) {
42
- throw new errors_1.EnvironmentError("tmux is not installed", errors_1.ErrorCodes.TMUX_NOT_FOUND, {
43
- hint: "Please install tmux",
44
- });
45
- }
46
- }
47
- async execute(commandOrArgs) {
48
- return this.executor.execute(commandOrArgs);
49
- }
50
- async executeMany(commandsList) {
51
- return this.executor.executeMany(commandsList);
52
- }
53
- getCommandString(args) {
54
- return ["tmux", ...args].join(" ");
55
- }
56
- async getCurrentSessionName() {
57
- return this.execute(["display-message", "-p", "#{session_name}"]);
58
- }
59
- getExecutor() {
60
- return this.executor;
61
- }
62
- }
63
- exports.TmuxExecutor = TmuxExecutor;
64
- //# sourceMappingURL=executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/tmux/executor.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,4CAA8D;AAG9D,0CAAwE;AAYxE,MAAa,YAAY;IACN,QAAQ,CAAkB;IAE3C,YAAY,UAA+B,EAAE;QAC3C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAClC,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAc,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAClE,CAAC;aAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;YAEpC,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAY,EAAE,CAAA;QACpC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,GAAG,IAAI,uBAAY,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAA;IACjH,CAAC;IAMD,eAAe;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAMD,KAAK,CAAC,qBAAqB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,yBAAgB,CAAC,mCAAmC,EAAE,mBAAU,CAAC,WAAW,EAAE;gBACtF,IAAI,EAAE,2CAA2C;aAClD,CAAC,CAAA;QACJ,CAAC;QAGD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC7B,OAAM;QACR,CAAC;QAGD,IAAI,CAAC;YACH,MAAM,IAAA,aAAK,EAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,yBAAgB,CAAC,uBAAuB,EAAE,mBAAU,CAAC,cAAc,EAAE;gBAC7E,IAAI,EAAE,qBAAqB;aAC5B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAQD,KAAK,CAAC,OAAO,CAAC,aAAgC;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IAC7C,CAAC;IAMD,KAAK,CAAC,WAAW,CAAC,YAAwB;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IAChD,CAAC;IAOD,gBAAgB,CAAC,IAAc;QAC7B,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC;IAMD,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAA;IACnE,CAAC;IAKD,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF;AA/FD,oCA+FC"}
@@ -1,36 +0,0 @@
1
- export declare class VDELayoutError extends Error {
2
- readonly code: string;
3
- readonly details: Record<string, unknown>;
4
- constructor(message: string, code: string, details?: Record<string, unknown>);
5
- }
6
- export declare class ConfigError extends VDELayoutError {
7
- constructor(message: string, code: string, details?: Record<string, unknown>);
8
- }
9
- export declare class ValidationError extends VDELayoutError {
10
- constructor(message: string, code: string, details?: Record<string, unknown>);
11
- }
12
- export declare class TmuxError extends VDELayoutError {
13
- constructor(message: string, code: string, details?: Record<string, unknown>);
14
- }
15
- export declare class EnvironmentError extends VDELayoutError {
16
- constructor(message: string, code: string, details?: Record<string, unknown>);
17
- }
18
- export declare const ErrorCodes: {
19
- readonly CONFIG_NOT_FOUND: "CONFIG_NOT_FOUND";
20
- readonly CONFIG_PARSE_ERROR: "CONFIG_PARSE_ERROR";
21
- readonly CONFIG_PERMISSION_ERROR: "CONFIG_PERMISSION_ERROR";
22
- readonly INVALID_PRESET: "INVALID_PRESET";
23
- readonly PRESET_NOT_FOUND: "PRESET_NOT_FOUND";
24
- readonly INVALID_LAYOUT: "INVALID_LAYOUT";
25
- readonly INVALID_PANE: "INVALID_PANE";
26
- readonly TMUX_NOT_RUNNING: "TMUX_NOT_RUNNING";
27
- readonly TMUX_COMMAND_FAILED: "TMUX_COMMAND_FAILED";
28
- readonly NOT_IN_TMUX_SESSION: "NOT_IN_TMUX_SESSION";
29
- readonly NOT_IN_TMUX: "NOT_IN_TMUX";
30
- readonly TMUX_NOT_FOUND: "TMUX_NOT_FOUND";
31
- readonly TMUX_NOT_INSTALLED: "TMUX_NOT_INSTALLED";
32
- readonly UNSUPPORTED_TMUX_VERSION: "UNSUPPORTED_TMUX_VERSION";
33
- };
34
- export declare function isVDELayoutError(error: unknown): error is VDELayoutError;
35
- export declare function formatError(error: Error): string;
36
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAGA,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;gBAEpC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CASjF;AAKD,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKjF;AAKD,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKjF;AAKD,qBAAa,SAAU,SAAQ,cAAc;gBAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKjF;AAKD,qBAAa,gBAAiB,SAAQ,cAAc;gBACtC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAKjF;AAKD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;CAsBb,CAAA;AAKV,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAsChD"}
@@ -1,131 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorCodes = exports.EnvironmentError = exports.TmuxError = exports.ValidationError = exports.ConfigError = exports.VDELayoutError = void 0;
4
- exports.isVDELayoutError = isVDELayoutError;
5
- exports.formatError = formatError;
6
- class VDELayoutError extends Error {
7
- code;
8
- details;
9
- constructor(message, code, details = {}) {
10
- super(message);
11
- this.name = "VDELayoutError";
12
- this.code = code;
13
- this.details = details;
14
- Object.setPrototypeOf(this, VDELayoutError.prototype);
15
- }
16
- }
17
- exports.VDELayoutError = VDELayoutError;
18
- class ConfigError extends VDELayoutError {
19
- constructor(message, code, details = {}) {
20
- super(message, code, details);
21
- this.name = "ConfigError";
22
- Object.setPrototypeOf(this, ConfigError.prototype);
23
- }
24
- }
25
- exports.ConfigError = ConfigError;
26
- class ValidationError extends VDELayoutError {
27
- constructor(message, code, details = {}) {
28
- super(message, code, details);
29
- this.name = "ValidationError";
30
- Object.setPrototypeOf(this, ValidationError.prototype);
31
- }
32
- }
33
- exports.ValidationError = ValidationError;
34
- class TmuxError extends VDELayoutError {
35
- constructor(message, code, details = {}) {
36
- super(message, code, details);
37
- this.name = "TmuxError";
38
- Object.setPrototypeOf(this, TmuxError.prototype);
39
- }
40
- }
41
- exports.TmuxError = TmuxError;
42
- class EnvironmentError extends VDELayoutError {
43
- constructor(message, code, details = {}) {
44
- super(message, code, details);
45
- this.name = "EnvironmentError";
46
- Object.setPrototypeOf(this, EnvironmentError.prototype);
47
- }
48
- }
49
- exports.EnvironmentError = EnvironmentError;
50
- exports.ErrorCodes = {
51
- CONFIG_NOT_FOUND: "CONFIG_NOT_FOUND",
52
- CONFIG_PARSE_ERROR: "CONFIG_PARSE_ERROR",
53
- CONFIG_PERMISSION_ERROR: "CONFIG_PERMISSION_ERROR",
54
- INVALID_PRESET: "INVALID_PRESET",
55
- PRESET_NOT_FOUND: "PRESET_NOT_FOUND",
56
- INVALID_LAYOUT: "INVALID_LAYOUT",
57
- INVALID_PANE: "INVALID_PANE",
58
- TMUX_NOT_RUNNING: "TMUX_NOT_RUNNING",
59
- TMUX_COMMAND_FAILED: "TMUX_COMMAND_FAILED",
60
- NOT_IN_TMUX_SESSION: "NOT_IN_TMUX_SESSION",
61
- NOT_IN_TMUX: "NOT_IN_TMUX",
62
- TMUX_NOT_FOUND: "TMUX_NOT_FOUND",
63
- TMUX_NOT_INSTALLED: "TMUX_NOT_INSTALLED",
64
- UNSUPPORTED_TMUX_VERSION: "UNSUPPORTED_TMUX_VERSION",
65
- };
66
- function isVDELayoutError(error) {
67
- return error instanceof VDELayoutError;
68
- }
69
- function formatError(error) {
70
- if (!isVDELayoutError(error)) {
71
- return `${error.name}: ${error.message}`;
72
- }
73
- let message = `Error: ${error.message}\n`;
74
- const formatter = errorFormatters[error.code];
75
- if (formatter) {
76
- message += formatter(error);
77
- }
78
- if (error.details.preset !== undefined) {
79
- message += `\nPreset: ${error.details.preset}\n`;
80
- }
81
- if (error.details.command !== undefined) {
82
- message += `\nCommand: ${error.details.command}\n`;
83
- }
84
- if (error.details.exitCode !== undefined) {
85
- message += `Exit code: ${error.details.exitCode}\n`;
86
- }
87
- if (error.details.stderr !== undefined) {
88
- message += `Error output: ${error.details.stderr}\n`;
89
- }
90
- if (error.details.errors !== undefined && Array.isArray(error.details.errors)) {
91
- message += "\nValidation errors:\n";
92
- error.details.errors.forEach((err) => {
93
- message += ` - ${err}\n`;
94
- });
95
- }
96
- return message;
97
- }
98
- const errorFormatters = {
99
- [exports.ErrorCodes.CONFIG_NOT_FOUND]: (error) => {
100
- let msg = "";
101
- if (error.details.searchPaths !== undefined) {
102
- msg += "\nSearched in the following locations:\n";
103
- const paths = error.details.searchPaths;
104
- paths.forEach((path) => {
105
- msg += ` - ${path}\n`;
106
- });
107
- msg += "\nTo create a configuration file, run:\n";
108
- msg += " mkdir -p ~/.config/vde\n";
109
- msg += ' echo "presets: {}" > ~/.config/vde/layout.yml\n';
110
- }
111
- return msg;
112
- },
113
- [exports.ErrorCodes.NOT_IN_TMUX_SESSION]: () => {
114
- return "\nThis command must be run inside a tmux session.\nStart tmux first with: tmux\n";
115
- },
116
- [exports.ErrorCodes.TMUX_NOT_INSTALLED]: () => {
117
- return ("\ntmux is required but not installed.\n" +
118
- "Install tmux using your package manager:\n" +
119
- " - macOS: brew install tmux\n" +
120
- " - Ubuntu/Debian: sudo apt-get install tmux\n" +
121
- " - Fedora: sudo dnf install tmux\n");
122
- },
123
- [exports.ErrorCodes.UNSUPPORTED_TMUX_VERSION]: (error) => {
124
- let msg = "";
125
- if (error.details.requiredVersion !== undefined) {
126
- msg += `\nRequired tmux version: ${error.details.requiredVersion} or higher\n`;
127
- }
128
- return msg;
129
- },
130
- };
131
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- export declare enum LogLevel {
2
- ERROR = 0,
3
- WARN = 1,
4
- INFO = 2,
5
- DEBUG = 3
6
- }
7
- export interface LoggerOptions {
8
- level?: LogLevel;
9
- prefix?: string;
10
- }
11
- export declare class Logger {
12
- private level;
13
- private prefix;
14
- constructor(options?: LoggerOptions);
15
- private getDefaultLogLevel;
16
- private formatMessage;
17
- error(message: string, error?: Error): void;
18
- warn(message: string): void;
19
- info(message: string): void;
20
- debug(message: string): void;
21
- success(message: string): void;
22
- createChild(prefix: string): Logger;
23
- }
24
- export declare const logger: Logger;
25
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;CACV;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAKD,qBAAa,MAAM;IACjB,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,MAAM,CAAQ;gBAEV,OAAO,GAAE,aAAkB;IAQvC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,aAAa;IAOrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAY3C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ9B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAIpC;AAKD,eAAO,MAAM,MAAM,QAAe,CAAA"}
@@ -1,67 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.logger = exports.Logger = exports.LogLevel = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- var LogLevel;
9
- (function (LogLevel) {
10
- LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
11
- LogLevel[LogLevel["WARN"] = 1] = "WARN";
12
- LogLevel[LogLevel["INFO"] = 2] = "INFO";
13
- LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
14
- })(LogLevel || (exports.LogLevel = LogLevel = {}));
15
- class Logger {
16
- level;
17
- prefix;
18
- constructor(options = {}) {
19
- this.level = options.level ?? this.getDefaultLogLevel();
20
- this.prefix = options.prefix ?? "";
21
- }
22
- getDefaultLogLevel() {
23
- if (process.env.VDE_DEBUG === "true") {
24
- return LogLevel.DEBUG;
25
- }
26
- if (process.env.VDE_VERBOSE === "true") {
27
- return LogLevel.INFO;
28
- }
29
- return LogLevel.WARN;
30
- }
31
- formatMessage(message) {
32
- return this.prefix ? `${this.prefix} ${message}` : message;
33
- }
34
- error(message, error) {
35
- if (this.level >= LogLevel.ERROR) {
36
- console.error(chalk_1.default.red(this.formatMessage(`Error: ${message}`)));
37
- if (error && process.env.VDE_DEBUG === "true") {
38
- console.error(chalk_1.default.gray(error.stack));
39
- }
40
- }
41
- }
42
- warn(message) {
43
- if (this.level >= LogLevel.WARN) {
44
- console.warn(chalk_1.default.yellow(this.formatMessage(message)));
45
- }
46
- }
47
- info(message) {
48
- if (this.level >= LogLevel.INFO) {
49
- console.log(this.formatMessage(message));
50
- }
51
- }
52
- debug(message) {
53
- if (this.level >= LogLevel.DEBUG) {
54
- console.log(chalk_1.default.gray(this.formatMessage(`[DEBUG] ${message}`)));
55
- }
56
- }
57
- success(message) {
58
- console.log(chalk_1.default.green(this.formatMessage(message)));
59
- }
60
- createChild(prefix) {
61
- const childPrefix = this.prefix ? `${this.prefix} ${prefix}` : prefix;
62
- return new Logger({ level: this.level, prefix: childPrefix });
63
- }
64
- }
65
- exports.Logger = Logger;
66
- exports.logger = new Logger();
67
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function normalizeRatio(ratio: number[]): number[];
2
- export declare function isValidRatio(ratio: number[]): boolean;
3
- //# sourceMappingURL=ratio.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ratio.d.ts","sourceRoot":"","sources":["../../src/utils/ratio.ts"],"names":[],"mappings":"AAcA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAwDxD;AAOD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAErD"}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeRatio = normalizeRatio;
4
- exports.isValidRatio = isValidRatio;
5
- function normalizeRatio(ratio) {
6
- if (ratio.length === 0) {
7
- return [];
8
- }
9
- if (ratio.length === 1) {
10
- return [100];
11
- }
12
- const sum = ratio.reduce((acc, val) => acc + val, 0);
13
- if (sum === 0) {
14
- const equalRatio = Math.floor(100 / ratio.length);
15
- const remainder = 100 % ratio.length;
16
- const result = ratio.map(() => equalRatio);
17
- for (let i = 0; i < remainder; i++) {
18
- result[result.length - 1 - i]++;
19
- }
20
- return result;
21
- }
22
- const normalized = ratio.map((val) => (val / sum) * 100);
23
- const rounded = normalized.map((val) => Math.round(val));
24
- const roundedSum = rounded.reduce((acc, val) => acc + val, 0);
25
- const diff = 100 - roundedSum;
26
- if (diff !== 0) {
27
- const fractionalParts = normalized.map((val, index) => ({
28
- index,
29
- fractional: val - rounded[index],
30
- }));
31
- fractionalParts.sort((a, b) => (diff > 0 ? b.fractional - a.fractional : a.fractional - b.fractional));
32
- for (let i = 0; i < Math.abs(diff); i++) {
33
- if (i < fractionalParts.length) {
34
- const targetIndex = fractionalParts[i].index;
35
- rounded[targetIndex] += diff > 0 ? 1 : -1;
36
- }
37
- }
38
- }
39
- return rounded;
40
- }
41
- function isValidRatio(ratio) {
42
- return ratio.length > 0 && ratio.every((val) => val > 0);
43
- }
44
- //# sourceMappingURL=ratio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ratio.js","sourceRoot":"","sources":["../../src/utils/ratio.ts"],"names":[],"mappings":"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"}