anton-bakker-deploy-engine 0.7.1 → 0.7.2

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/dist/tui.d.ts CHANGED
@@ -1,12 +1,8 @@
1
1
  /**
2
- * src/tui.ts — Terminal UI renderer for deployment pipelines.
2
+ * src/tui.ts — Full-screen terminal UI for deployment pipelines.
3
3
  *
4
- * Two-panel layout:
5
- * - Top: category summary with coloured status dots + duration
6
- * - Bottom: active category's steps with individual status
7
- *
8
- * Updates in-place using ANSI escape codes (no scrolling).
9
- * Falls back to line-by-line output in CI environments (no TTY).
4
+ * Uses the alternate screen buffer (like lazygit/vim) and adapts to
5
+ * terminal dimensions. Two-panel layout fills available space.
10
6
  */
11
7
  export type StepStatus = 'pending' | 'running' | 'passed' | 'failed' | 'skipped';
12
8
  export interface Step {
@@ -23,27 +19,29 @@ export interface Category {
23
19
  }
24
20
  export interface TuiState {
25
21
  title: string;
22
+ subtitle?: string[];
26
23
  categories: Category[];
27
24
  activeCategory: number;
28
25
  errorOutput?: string;
26
+ startedAt: number;
29
27
  }
30
28
  /**
31
- * Render the full TUI frame as a string (pure function — no I/O).
29
+ * Render full-screen frame.
32
30
  */
33
31
  export declare function renderFrame(state: TuiState): string;
34
32
  /**
35
- * TUI controller that manages terminal output.
36
- * Redraws the frame in-place on TTY terminals; logs line-by-line in CI.
33
+ * Full-screen TUI controller.
34
+ * Uses alternate screen buffer — restores terminal on exit.
37
35
  */
38
36
  export declare class DeployTui {
39
37
  private state;
40
- private lastLineCount;
41
38
  private interval;
42
39
  private isCI;
40
+ private resizeHandler;
43
41
  constructor(title: string, categories: {
44
42
  name: string;
45
43
  steps: string[];
46
- }[]);
44
+ }[], subtitle?: string[]);
47
45
  start(): void;
48
46
  stop(): void;
49
47
  private render;
@@ -55,5 +53,7 @@ export declare class DeployTui {
55
53
  passStep(catIndex: number, stepIndex: number, durationMs: number): void;
56
54
  failStep(catIndex: number, stepIndex: number, durationMs: number, error: string): void;
57
55
  skipStep(catIndex: number, stepIndex: number): void;
56
+ /** Pause the TUI (leave alt screen), show final summary, then exit */
57
+ showSummary(success: boolean, totalDuration: number): void;
58
58
  }
59
59
  //# sourceMappingURL=tui.d.ts.map
package/dist/tui.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA4BD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CA2CnD;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,IAAI,CAAU;gBAEV,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE;IAa1E,KAAK,IAAI,IAAI;IAOb,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,KAAK;IAOb,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOlC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMrD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMrD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAOvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAStF,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAIpD"}
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjF,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AA2CD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAkEnD;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,aAAa,CAA6B;gBAEtC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE;IAe/F,KAAK,IAAI,IAAI;IAeb,IAAI,IAAI,IAAI;IASZ,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,KAAK;IAOb,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOlC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMrD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMrD,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAMpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAOvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAStF,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKnD,sEAAsE;IACtE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;CAa3D"}
package/dist/tui.js CHANGED
@@ -1,29 +1,33 @@
1
1
  /**
2
- * src/tui.ts — Terminal UI renderer for deployment pipelines.
2
+ * src/tui.ts — Full-screen terminal UI for deployment pipelines.
3
3
  *
4
- * Two-panel layout:
5
- * - Top: category summary with coloured status dots + duration
6
- * - Bottom: active category's steps with individual status
7
- *
8
- * Updates in-place using ANSI escape codes (no scrolling).
9
- * Falls back to line-by-line output in CI environments (no TTY).
4
+ * Uses the alternate screen buffer (like lazygit/vim) and adapts to
5
+ * terminal dimensions. Two-panel layout fills available space.
10
6
  */
11
- // ANSI colour codes
12
- const RESET = '\x1b[0m';
13
- const GREY = '\x1b[90m';
14
- const GREEN = '\x1b[32m';
15
- const RED = '\x1b[31m';
16
- const YELLOW = '\x1b[33m';
17
- const BOLD = '\x1b[1m';
18
- const DIM = '\x1b[2m';
19
- const SPINNER_FRAMES = ['◐', '◓', '◑', '◒'];
7
+ // ANSI escape codes
8
+ const ESC = '\x1b';
9
+ const RESET = `${ESC}[0m`;
10
+ const GREY = `${ESC}[90m`;
11
+ const GREEN = `${ESC}[32m`;
12
+ const RED = `${ESC}[31m`;
13
+ const YELLOW = `${ESC}[33m`;
14
+ const BOLD = `${ESC}[1m`;
15
+ const DIM = `${ESC}[2m`;
16
+ const WHITE = `${ESC}[37m`;
17
+ // Alternate screen buffer
18
+ const ALT_SCREEN_ON = `${ESC}[?1049h`;
19
+ const ALT_SCREEN_OFF = `${ESC}[?1049l`;
20
+ const CURSOR_HIDE = `${ESC}[?25l`;
21
+ const CURSOR_SHOW = `${ESC}[?25h`;
22
+ const CLEAR_SCREEN = `${ESC}[2J${ESC}[H`;
23
+ const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
20
24
  let spinnerIdx = 0;
21
25
  function statusIcon(status, spinning = false) {
22
26
  switch (status) {
23
27
  case 'passed': return `${GREEN}●${RESET}`;
24
28
  case 'failed': return `${RED}✗${RESET}`;
25
29
  case 'running': return `${YELLOW}${spinning ? SPINNER_FRAMES[spinnerIdx % SPINNER_FRAMES.length] : '◐'}${RESET}`;
26
- case 'skipped': return `${GREY}○${RESET}`;
30
+ case 'skipped': return `${DIM}○${RESET}`;
27
31
  case 'pending':
28
32
  default: return `${GREY}○${RESET}`;
29
33
  }
@@ -32,107 +36,152 @@ function formatDuration(ms) {
32
36
  if (ms === undefined)
33
37
  return '';
34
38
  if (ms < 1000)
35
- return `${DIM}${ms}ms${RESET}`;
36
- return `${DIM}${(ms / 1000).toFixed(1)}s${RESET}`;
39
+ return `${ms}ms`;
40
+ if (ms < 60000)
41
+ return `${(ms / 1000).toFixed(1)}s`;
42
+ const min = Math.floor(ms / 60000);
43
+ const sec = Math.round((ms % 60000) / 1000);
44
+ return `${min}m${sec}s`;
45
+ }
46
+ function getTermSize() {
47
+ return {
48
+ cols: process.stdout.columns || 80,
49
+ rows: process.stdout.rows || 40,
50
+ };
51
+ }
52
+ function hLine(cols, left, fill, right) {
53
+ return left + fill.repeat(Math.max(0, cols - 2)) + right;
37
54
  }
38
- function padRight(str, len) {
39
- const stripped = str.replace(/\x1b\[[0-9;]*m/g, '');
40
- const pad = Math.max(0, len - stripped.length);
41
- return str + ' '.repeat(pad);
55
+ function padLine(content, cols) {
56
+ // Strip ANSI for length calc
57
+ const stripped = content.replace(/\x1b\[[0-9;]*m/g, '');
58
+ const pad = Math.max(0, cols - 2 - stripped.length);
59
+ return `│${content}${' '.repeat(pad)}│`;
42
60
  }
43
61
  /**
44
- * Render the full TUI frame as a string (pure function — no I/O).
62
+ * Render full-screen frame.
45
63
  */
46
64
  export function renderFrame(state) {
47
- const WIDTH = 62;
65
+ const { cols, rows } = getTermSize();
48
66
  const lines = [];
49
- const hr = '─'.repeat(WIDTH);
50
- lines.push(`┌${hr}┐`);
51
- lines.push(`│ ${BOLD}${state.title}${RESET}${' '.repeat(Math.max(0, WIDTH - state.title.length - 2))}│`);
52
- lines.push(`├${hr}┤`);
67
+ const elapsed = formatDuration(Date.now() - state.startedAt);
68
+ // ── Header ──
69
+ lines.push(hLine(cols, '┌', '─', '┐'));
70
+ const titleContent = ` ${state.title}`;
71
+ const elapsedRight = `${DIM}${elapsed}${RESET} `;
72
+ lines.push(padLine(`${BOLD}${titleContent}${RESET}`, cols));
73
+ if (state.subtitle) {
74
+ for (const sub of state.subtitle) {
75
+ lines.push(padLine(` ${DIM}${sub}${RESET}`, cols));
76
+ }
77
+ }
78
+ // Elapsed time in header
79
+ lines.push(padLine(` ${DIM}Elapsed: ${elapsed}${RESET}`, cols));
80
+ lines.push(hLine(cols, '├', '─', '┤'));
81
+ // ── Top panel: categories ──
53
82
  for (let i = 0; i < state.categories.length; i++) {
54
83
  const cat = state.categories[i];
55
84
  const icon = statusIcon(cat.status, i === state.activeCategory);
56
- const dur = formatDuration(cat.durationMs);
57
- const label = padRight(` ${icon} ${cat.name}`, WIDTH - 8);
58
- const durPad = dur ? `${dur}` : '';
59
- lines.push(`│${label}${durPad.padStart(8)}│`);
85
+ const dur = cat.durationMs !== undefined ? `${DIM}${formatDuration(cat.durationMs)}${RESET}` : '';
86
+ const active = i === state.activeCategory ? `${WHITE}${BOLD}` : '';
87
+ const reset = i === state.activeCategory ? RESET : '';
88
+ lines.push(padLine(` ${icon} ${active}${cat.name}${reset} ${dur}`, cols));
60
89
  }
61
- lines.push(`├${hr}┤`);
90
+ lines.push(hLine(cols, '├', '─', '┤'));
91
+ // ── Bottom panel: active category detail ──
62
92
  const active = state.categories[state.activeCategory];
63
93
  if (active) {
64
- lines.push(`│ ${BOLD}${active.name}${RESET}${' '.repeat(Math.max(0, WIDTH - active.name.length - 2))}│`);
94
+ lines.push(padLine(` ${BOLD}${active.name}${RESET}`, cols));
95
+ lines.push(padLine('', cols)); // blank line
65
96
  for (const step of active.steps) {
66
97
  const icon = statusIcon(step.status, step.status === 'running');
67
- const dur = formatDuration(step.durationMs);
68
- const label = padRight(` ${icon} ${step.name}`, WIDTH - 8);
69
- const durPad = dur ? `${dur}` : '';
70
- lines.push(`│${label}${durPad.padStart(8)}│`);
98
+ const dur = step.durationMs !== undefined ? ` ${DIM}${formatDuration(step.durationMs)}${RESET}` : '';
99
+ lines.push(padLine(` ${icon} ${step.name}${dur}`, cols));
71
100
  }
101
+ // Error output
72
102
  if (state.errorOutput) {
73
- lines.push(`│${' '.repeat(WIDTH)}│`);
74
- const errorLines = state.errorOutput.split('\n').slice(0, 6);
103
+ lines.push(padLine('', cols));
104
+ lines.push(hLine(cols, '├', '╌', '┤'));
105
+ const maxErrorLines = Math.min(rows - lines.length - 2, 10);
106
+ const errorLines = state.errorOutput.split('\n').slice(0, maxErrorLines);
75
107
  for (const eline of errorLines) {
76
- const truncated = eline.slice(0, WIDTH - 4);
77
- lines.push(`│ ${RED}${truncated}${RESET}${' '.repeat(Math.max(0, WIDTH - truncated.length - 2))}│`);
108
+ const truncated = eline.slice(0, cols - 4);
109
+ lines.push(padLine(` ${RED}${truncated}${RESET}`, cols));
78
110
  }
79
111
  }
80
112
  }
81
- lines.push(`└${hr}┘`);
113
+ // ── Fill remaining space ──
114
+ const remaining = rows - lines.length - 1; // -1 for bottom border
115
+ for (let i = 0; i < remaining; i++) {
116
+ lines.push(padLine('', cols));
117
+ }
118
+ // ── Footer ──
119
+ lines.push(hLine(cols, '└', '─', '┘'));
82
120
  return lines.join('\n');
83
121
  }
84
122
  /**
85
- * TUI controller that manages terminal output.
86
- * Redraws the frame in-place on TTY terminals; logs line-by-line in CI.
123
+ * Full-screen TUI controller.
124
+ * Uses alternate screen buffer — restores terminal on exit.
87
125
  */
88
126
  export class DeployTui {
89
127
  state;
90
- lastLineCount = 0;
91
128
  interval = null;
92
129
  isCI;
93
- constructor(title, categories) {
130
+ resizeHandler = null;
131
+ constructor(title, categories, subtitle) {
94
132
  this.isCI = !!(process.env.CI || process.env.CODEBUILD_BUILD_ID || !process.stdout.isTTY);
95
133
  this.state = {
96
134
  title,
135
+ subtitle,
97
136
  categories: categories.map((cat) => ({
98
137
  name: cat.name,
99
138
  steps: cat.steps.map((s) => ({ name: s, status: 'pending' })),
100
139
  status: 'pending',
101
140
  })),
102
141
  activeCategory: 0,
142
+ startedAt: Date.now(),
103
143
  };
104
144
  }
105
145
  start() {
106
146
  if (this.isCI)
107
147
  return;
108
- process.stdout.write('\x1b[?25l'); // hide cursor
148
+ // Enter alternate screen + hide cursor
149
+ process.stdout.write(ALT_SCREEN_ON + CURSOR_HIDE);
109
150
  this.render();
110
- this.interval = setInterval(() => { spinnerIdx++; this.render(); }, 120);
151
+ // Spinner animation
152
+ this.interval = setInterval(() => { spinnerIdx++; this.render(); }, 80);
153
+ // Re-render on resize
154
+ this.resizeHandler = () => this.render();
155
+ process.stdout.on('resize', this.resizeHandler);
156
+ // Restore terminal on unexpected exit
157
+ process.on('SIGINT', () => this.stop());
158
+ process.on('SIGTERM', () => this.stop());
111
159
  }
112
160
  stop() {
113
161
  if (this.interval) {
114
162
  clearInterval(this.interval);
115
163
  this.interval = null;
116
164
  }
117
- if (!this.isCI)
118
- process.stdout.write('\x1b[?25h\n'); // show cursor
165
+ if (this.resizeHandler) {
166
+ process.stdout.removeListener('resize', this.resizeHandler);
167
+ this.resizeHandler = null;
168
+ }
169
+ if (!this.isCI) {
170
+ // Leave alternate screen + show cursor
171
+ process.stdout.write(ALT_SCREEN_OFF + CURSOR_SHOW);
172
+ }
119
173
  }
120
174
  render() {
121
175
  if (this.isCI)
122
176
  return;
123
177
  const frame = renderFrame(this.state);
124
- const lines = frame.split('\n');
125
- if (this.lastLineCount > 0) {
126
- process.stdout.write(`\x1b[${this.lastLineCount}A\x1b[0G`);
127
- }
128
- process.stdout.write(frame + '\n');
129
- this.lastLineCount = lines.length;
178
+ process.stdout.write(CLEAR_SCREEN + frame);
130
179
  }
131
180
  ciLog(category, step, status, durationMs) {
132
181
  if (!this.isCI)
133
182
  return;
134
183
  const icon = status === 'passed' ? '✓' : status === 'failed' ? '✗' : status === 'running' ? '▶' : '○';
135
- const dur = durationMs ? ` (${(durationMs / 1000).toFixed(1)}s)` : '';
184
+ const dur = durationMs ? ` (${formatDuration(durationMs)})` : '';
136
185
  process.stdout.write(`${icon} [${category}] ${step}${dur}\n`);
137
186
  }
138
187
  startCategory(index) {
@@ -174,5 +223,19 @@ export class DeployTui {
174
223
  this.state.categories[catIndex].steps[stepIndex].status = 'skipped';
175
224
  this.render();
176
225
  }
226
+ /** Pause the TUI (leave alt screen), show final summary, then exit */
227
+ showSummary(success, totalDuration) {
228
+ this.stop();
229
+ const icon = success ? `${GREEN}✓${RESET}` : `${RED}✗${RESET}`;
230
+ const msg = success ? 'Deploy complete' : 'Deploy failed';
231
+ process.stdout.write(`\n ${icon} ${BOLD}${msg}${RESET} (${formatDuration(totalDuration)})\n\n`);
232
+ // Show category summary
233
+ for (const cat of this.state.categories) {
234
+ const cIcon = statusIcon(cat.status);
235
+ const dur = cat.durationMs !== undefined ? ` ${DIM}${formatDuration(cat.durationMs)}${RESET}` : '';
236
+ process.stdout.write(` ${cIcon} ${cat.name}${dur}\n`);
237
+ }
238
+ process.stdout.write('\n');
239
+ }
177
240
  }
178
241
  //# sourceMappingURL=tui.js.map
package/dist/tui.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../src/tui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anton-bakker-deploy-engine",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "Self-validating AWS deployment engine with 4-layer verification: exists, configured, functional, project-specific",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",