@brookmind/ai-toolkit 1.2.0 → 1.2.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.
Files changed (71) hide show
  1. package/README.md +8 -12
  2. package/dist/__tests__/constants.test.d.ts +2 -0
  3. package/dist/__tests__/constants.test.d.ts.map +1 -0
  4. package/dist/__tests__/constants.test.js +102 -0
  5. package/dist/__tests__/constants.test.js.map +1 -0
  6. package/dist/__tests__/index.test.js +6 -105
  7. package/dist/__tests__/index.test.js.map +1 -1
  8. package/dist/__tests__/integration/installer.test.d.ts +2 -0
  9. package/dist/__tests__/integration/installer.test.d.ts.map +1 -0
  10. package/dist/__tests__/integration/installer.test.js +450 -0
  11. package/dist/__tests__/integration/installer.test.js.map +1 -0
  12. package/dist/__tests__/services/installers.test.d.ts +2 -0
  13. package/dist/__tests__/services/installers.test.d.ts.map +1 -0
  14. package/dist/__tests__/services/installers.test.js +250 -0
  15. package/dist/__tests__/services/installers.test.js.map +1 -0
  16. package/dist/__tests__/services/opencode.test.d.ts +2 -0
  17. package/dist/__tests__/services/opencode.test.d.ts.map +1 -0
  18. package/dist/__tests__/services/opencode.test.js +120 -0
  19. package/dist/__tests__/services/opencode.test.js.map +1 -0
  20. package/dist/__tests__/ui/categorize.test.d.ts +2 -0
  21. package/dist/__tests__/ui/categorize.test.d.ts.map +1 -0
  22. package/dist/__tests__/ui/categorize.test.js +225 -0
  23. package/dist/__tests__/ui/categorize.test.js.map +1 -0
  24. package/dist/__tests__/ui/choices.test.d.ts +2 -0
  25. package/dist/__tests__/ui/choices.test.d.ts.map +1 -0
  26. package/dist/__tests__/ui/choices.test.js +223 -0
  27. package/dist/__tests__/ui/choices.test.js.map +1 -0
  28. package/dist/__tests__/ui/display.test.d.ts +2 -0
  29. package/dist/__tests__/ui/display.test.d.ts.map +1 -0
  30. package/dist/__tests__/ui/display.test.js +138 -0
  31. package/dist/__tests__/ui/display.test.js.map +1 -0
  32. package/dist/__tests__/utils/fs.test.d.ts +2 -0
  33. package/dist/__tests__/utils/fs.test.d.ts.map +1 -0
  34. package/dist/__tests__/utils/fs.test.js +301 -0
  35. package/dist/__tests__/utils/fs.test.js.map +1 -0
  36. package/dist/__tests__/utils/terminal.test.d.ts +2 -0
  37. package/dist/__tests__/utils/terminal.test.d.ts.map +1 -0
  38. package/dist/__tests__/utils/terminal.test.js +97 -0
  39. package/dist/__tests__/utils/terminal.test.js.map +1 -0
  40. package/dist/constants.d.ts +1 -0
  41. package/dist/constants.d.ts.map +1 -1
  42. package/dist/constants.js +3 -0
  43. package/dist/constants.js.map +1 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +24 -29
  46. package/dist/index.js.map +1 -1
  47. package/dist/services/installers.d.ts +1 -1
  48. package/dist/services/installers.d.ts.map +1 -1
  49. package/dist/services/installers.js +21 -14
  50. package/dist/services/installers.js.map +1 -1
  51. package/dist/types.d.ts +15 -0
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/types.js +28 -1
  54. package/dist/types.js.map +1 -1
  55. package/dist/ui/categorize.d.ts +1 -0
  56. package/dist/ui/categorize.d.ts.map +1 -1
  57. package/dist/ui/categorize.js +15 -3
  58. package/dist/ui/categorize.js.map +1 -1
  59. package/dist/ui/choices.d.ts +1 -0
  60. package/dist/ui/choices.d.ts.map +1 -1
  61. package/dist/ui/choices.js +14 -3
  62. package/dist/ui/choices.js.map +1 -1
  63. package/dist/ui/display.d.ts +1 -2
  64. package/dist/ui/display.d.ts.map +1 -1
  65. package/dist/ui/display.js +14 -17
  66. package/dist/ui/display.js.map +1 -1
  67. package/dist/utils/fs.d.ts +14 -0
  68. package/dist/utils/fs.d.ts.map +1 -1
  69. package/dist/utils/fs.js +72 -2
  70. package/dist/utils/fs.js.map +1 -1
  71. package/package.json +4 -2
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # AI Toolkit
1
+ # SWE AI Toolkit
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@brookmind/ai-toolkit.svg)](https://www.npmjs.com/package/@brookmind/ai-toolkit)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
@@ -12,17 +12,13 @@ A collection of agents, skills, and MCPs for AI coding assistants.
12
12
  npx @brookmind/ai-toolkit
13
13
  ```
14
14
 
15
- The installer will:
16
-
17
- 1. **Check if OpenCode is installed** - If not, it will offer to install it for you
18
- 2. **Guide you through selecting**:
19
- - **Agents**: AI assistants for specific tasks
20
- - **Skills**: Extended capabilities and workflows
21
- - **Commands**: Reusable prompts for common tasks
22
- - **MCPs**: Model Context Protocol servers
23
- 3. **Theme installation**:
24
- - **New installations**: claude-vivid theme is installed automatically
25
- - **Existing installations**: You'll be asked if you want to install the theme
15
+ The installer will guide you through selecting:
16
+
17
+ - **Agents**: AI assistants for specific tasks
18
+ - **Skills**: Extended capabilities and workflows
19
+ - **Commands**: Reusable prompts for common tasks
20
+ - **MCPs**: Model Context Protocol servers
21
+ - **Themes**: Visual themes for your AI coding assistant
26
22
 
27
23
  ## What's Included
28
24
 
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=constants.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/constants.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,102 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { join } from 'path';
3
+ import { homedir } from 'os';
4
+ import { ROOT_DIR, TOOLS_DIR, HOME_DIR, OPENCODE_DIR, OPENCODE_CONFIG, BOTTOM_PADDING, MCP_DISPLAY_NAMES, DESCRIPTIONS, getDescription, } from '../constants.js';
5
+ describe('constants', () => {
6
+ describe('path constants', () => {
7
+ it('should have ROOT_DIR pointing to project root', () => {
8
+ expect(ROOT_DIR).toBeDefined();
9
+ expect(typeof ROOT_DIR).toBe('string');
10
+ expect(ROOT_DIR.length).toBeGreaterThan(0);
11
+ });
12
+ it('should have TOOLS_DIR as subdirectory of ROOT_DIR', () => {
13
+ expect(TOOLS_DIR).toBe(join(ROOT_DIR, 'tools'));
14
+ });
15
+ it('should have HOME_DIR equal to os.homedir()', () => {
16
+ expect(HOME_DIR).toBe(homedir());
17
+ });
18
+ it('should have OPENCODE_DIR in .config/opencode', () => {
19
+ expect(OPENCODE_DIR).toBe(join(HOME_DIR, '.config', 'opencode'));
20
+ });
21
+ it('should have OPENCODE_CONFIG as opencode.json in OPENCODE_DIR', () => {
22
+ expect(OPENCODE_CONFIG).toBe(join(OPENCODE_DIR, 'opencode.json'));
23
+ });
24
+ });
25
+ describe('BOTTOM_PADDING', () => {
26
+ it('should be 5', () => {
27
+ expect(BOTTOM_PADDING).toBe(5);
28
+ });
29
+ it('should be a positive integer', () => {
30
+ expect(Number.isInteger(BOTTOM_PADDING)).toBe(true);
31
+ expect(BOTTOM_PADDING).toBeGreaterThan(0);
32
+ });
33
+ });
34
+ describe('MCP_DISPLAY_NAMES', () => {
35
+ it('should be a non-empty object', () => {
36
+ expect(typeof MCP_DISPLAY_NAMES).toBe('object');
37
+ expect(Object.keys(MCP_DISPLAY_NAMES).length).toBeGreaterThan(0);
38
+ });
39
+ it('should map pg-aiguide to postgres-mcp', () => {
40
+ expect(MCP_DISPLAY_NAMES['pg-aiguide']).toBe('postgres-mcp');
41
+ });
42
+ it('should have string values only', () => {
43
+ for (const value of Object.values(MCP_DISPLAY_NAMES)) {
44
+ expect(typeof value).toBe('string');
45
+ }
46
+ });
47
+ });
48
+ describe('DESCRIPTIONS', () => {
49
+ it('should be a non-empty object', () => {
50
+ expect(typeof DESCRIPTIONS).toBe('object');
51
+ expect(Object.keys(DESCRIPTIONS).length).toBeGreaterThan(0);
52
+ });
53
+ it('should have string values only', () => {
54
+ for (const value of Object.values(DESCRIPTIONS)) {
55
+ expect(typeof value).toBe('string');
56
+ expect(value.length).toBeGreaterThan(0);
57
+ }
58
+ });
59
+ it('should contain agent descriptions', () => {
60
+ expect(DESCRIPTIONS['changelog-generator']).toBeDefined();
61
+ expect(DESCRIPTIONS['code-reviewer']).toBeDefined();
62
+ expect(DESCRIPTIONS['code-simplifier']).toBeDefined();
63
+ });
64
+ it('should contain command descriptions', () => {
65
+ expect(DESCRIPTIONS['create-pr']).toBeDefined();
66
+ expect(DESCRIPTIONS['create-pr-description']).toBeDefined();
67
+ expect(DESCRIPTIONS['create-react-tests']).toBeDefined();
68
+ });
69
+ it('should contain skill descriptions', () => {
70
+ expect(DESCRIPTIONS['expo-best-practices']).toBeDefined();
71
+ expect(DESCRIPTIONS['github-cli']).toBeDefined();
72
+ expect(DESCRIPTIONS['react-best-practices']).toBeDefined();
73
+ });
74
+ it('should contain MCP descriptions', () => {
75
+ expect(DESCRIPTIONS['context7']).toBeDefined();
76
+ expect(DESCRIPTIONS['expo-mcp']).toBeDefined();
77
+ });
78
+ });
79
+ describe('getDescription', () => {
80
+ it('should return description for existing key', () => {
81
+ const result = getDescription('changelog-generator');
82
+ expect(result).toBe('Generate changelogs and release notes');
83
+ });
84
+ it('should return null for non-existing key', () => {
85
+ const result = getDescription('non-existing-key');
86
+ expect(result).toBeNull();
87
+ });
88
+ it('should return null for empty string key', () => {
89
+ const result = getDescription('');
90
+ expect(result).toBeNull();
91
+ });
92
+ it('should handle context7 (unquoted key)', () => {
93
+ const result = getDescription('context7');
94
+ expect(result).toBe('Library documentation lookup');
95
+ });
96
+ it('should handle quoted and hyphenated keys', () => {
97
+ const result = getDescription('pdf-processing-pro');
98
+ expect(result).toBe('Forms, tables, OCR, batch operations');
99
+ });
100
+ });
101
+ });
102
+ //# sourceMappingURL=constants.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.test.js","sourceRoot":"","sources":["../../src/__tests__/constants.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,6 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
- import { setupScrollRegion, resetScrollRegion, handleResize, BOTTOM_PADDING } from '../index.js';
3
- import { access, mkdir, rm, writeFile } from 'fs/promises';
1
+ import { describe, it, expect } from 'vitest';
2
+ import { access, readdir, readFile } from 'fs/promises';
4
3
  import { join } from 'path';
5
- import { tmpdir } from 'os';
6
- // Test utility functions
7
4
  async function exists(path) {
8
5
  try {
9
6
  await access(path);
@@ -13,29 +10,6 @@ async function exists(path) {
13
10
  return false;
14
11
  }
15
12
  }
16
- describe('exists utility', () => {
17
- const testDir = join(tmpdir(), 'ai-toolkit-test');
18
- beforeEach(async () => {
19
- await mkdir(testDir, { recursive: true });
20
- });
21
- afterEach(async () => {
22
- await rm(testDir, { recursive: true, force: true });
23
- });
24
- it('should return true for existing directory', async () => {
25
- const result = await exists(testDir);
26
- expect(result).toBe(true);
27
- });
28
- it('should return false for non-existing path', async () => {
29
- const result = await exists(join(testDir, 'non-existing'));
30
- expect(result).toBe(false);
31
- });
32
- it('should return true for existing file', async () => {
33
- const filePath = join(testDir, 'test.txt');
34
- await writeFile(filePath, 'test');
35
- const result = await exists(filePath);
36
- expect(result).toBe(true);
37
- });
38
- });
39
13
  describe('project structure', () => {
40
14
  it('should have required directories in tools/', async () => {
41
15
  const rootDir = join(import.meta.dirname, '..', '..');
@@ -59,7 +33,6 @@ describe('project structure', () => {
59
33
  });
60
34
  describe('skills validation', () => {
61
35
  it('should have SKILL.md in each skill folder', async () => {
62
- const { readdir } = await import('fs/promises');
63
36
  const rootDir = join(import.meta.dirname, '..', '..');
64
37
  const skillsDir = join(rootDir, 'tools', 'skills');
65
38
  const skills = await readdir(skillsDir, { withFileTypes: true });
@@ -72,7 +45,6 @@ describe('skills validation', () => {
72
45
  });
73
46
  describe('mcps validation', () => {
74
47
  it('should have .mcp.json in each mcp folder', async () => {
75
- const { readdir } = await import('fs/promises');
76
48
  const rootDir = join(import.meta.dirname, '..', '..');
77
49
  const mcpsDir = join(rootDir, 'tools', 'mcps');
78
50
  const mcps = await readdir(mcpsDir, { withFileTypes: true });
@@ -85,24 +57,21 @@ describe('mcps validation', () => {
85
57
  });
86
58
  describe('descriptions validation', () => {
87
59
  const getDescriptionsFromSource = async () => {
88
- const { readFile } = await import('fs/promises');
89
60
  const rootDir = join(import.meta.dirname, '..', '..');
90
61
  const constantsPath = join(rootDir, 'src', 'constants.ts');
91
62
  const content = await readFile(constantsPath, 'utf-8');
92
- // Extract DESCRIPTIONS object keys
93
63
  const match = content.match(/export const DESCRIPTIONS[^{]*\{([^}]+)\}/s);
94
- if (!match)
64
+ const matchContent = match?.[1];
65
+ if (!matchContent)
95
66
  return new Set();
96
- // Match both quoted keys ('key':) and unquoted keys (key:)
97
- const quotedKeys = match[1].match(/'([^']+)':/g) || [];
98
- const unquotedKeys = match[1].match(/^\s*([a-zA-Z0-9-]+):/gm) || [];
67
+ const quotedKeys = matchContent.match(/'([^']+)':/g) ?? [];
68
+ const unquotedKeys = matchContent.match(/^\s*([a-zA-Z0-9-]+):/gm) ?? [];
99
69
  const keys = new Set();
100
70
  quotedKeys.forEach((k) => keys.add(k.replace(/'/g, '').replace(':', '')));
101
71
  unquotedKeys.forEach((k) => keys.add(k.trim().replace(':', '')));
102
72
  return keys;
103
73
  };
104
74
  it('should have description for each agent', async () => {
105
- const { readdir } = await import('fs/promises');
106
75
  const rootDir = join(import.meta.dirname, '..', '..');
107
76
  const agentsDir = join(rootDir, 'tools', 'agents');
108
77
  const descriptions = await getDescriptionsFromSource();
@@ -113,7 +82,6 @@ describe('descriptions validation', () => {
113
82
  }
114
83
  });
115
84
  it('should have description for each skill', async () => {
116
- const { readdir } = await import('fs/promises');
117
85
  const rootDir = join(import.meta.dirname, '..', '..');
118
86
  const skillsDir = join(rootDir, 'tools', 'skills');
119
87
  const descriptions = await getDescriptionsFromSource();
@@ -124,7 +92,6 @@ describe('descriptions validation', () => {
124
92
  }
125
93
  });
126
94
  it('should have description for each command', async () => {
127
- const { readdir } = await import('fs/promises');
128
95
  const rootDir = join(import.meta.dirname, '..', '..');
129
96
  const commandsDir = join(rootDir, 'tools', 'commands');
130
97
  const descriptions = await getDescriptionsFromSource();
@@ -135,7 +102,6 @@ describe('descriptions validation', () => {
135
102
  }
136
103
  });
137
104
  it('should have description for each MCP', async () => {
138
- const { readdir } = await import('fs/promises');
139
105
  const rootDir = join(import.meta.dirname, '..', '..');
140
106
  const mcpsDir = join(rootDir, 'tools', 'mcps');
141
107
  const descriptions = await getDescriptionsFromSource();
@@ -146,69 +112,4 @@ describe('descriptions validation', () => {
146
112
  }
147
113
  });
148
114
  });
149
- describe('scroll region functions', () => {
150
- let writeSpy;
151
- let originalRows;
152
- beforeEach(() => {
153
- writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
154
- originalRows = process.stdout.rows;
155
- });
156
- afterEach(() => {
157
- writeSpy.mockRestore();
158
- Object.defineProperty(process.stdout, 'rows', {
159
- value: originalRows,
160
- writable: true,
161
- });
162
- });
163
- describe('setupScrollRegion', () => {
164
- it('should set scroll region when terminal has enough rows', () => {
165
- Object.defineProperty(process.stdout, 'rows', { value: 40, writable: true });
166
- setupScrollRegion();
167
- expect(writeSpy).toHaveBeenCalledTimes(2);
168
- expect(writeSpy).toHaveBeenNthCalledWith(1, `\x1b[1;${40 - BOTTOM_PADDING}r`);
169
- expect(writeSpy).toHaveBeenNthCalledWith(2, '\x1b[H');
170
- });
171
- it('should not set scroll region when terminal is too small', () => {
172
- Object.defineProperty(process.stdout, 'rows', { value: 10, writable: true });
173
- setupScrollRegion();
174
- expect(writeSpy).not.toHaveBeenCalled();
175
- });
176
- it('should use default rows (24) when process.stdout.rows is undefined', () => {
177
- Object.defineProperty(process.stdout, 'rows', { value: undefined, writable: true });
178
- setupScrollRegion();
179
- expect(writeSpy).toHaveBeenCalledTimes(2);
180
- expect(writeSpy).toHaveBeenNthCalledWith(1, `\x1b[1;${24 - BOTTOM_PADDING}r`);
181
- expect(writeSpy).toHaveBeenNthCalledWith(2, '\x1b[H');
182
- });
183
- it('should not set scroll region at boundary (rows = BOTTOM_PADDING + 10)', () => {
184
- Object.defineProperty(process.stdout, 'rows', {
185
- value: BOTTOM_PADDING + 10,
186
- writable: true,
187
- });
188
- setupScrollRegion();
189
- expect(writeSpy).not.toHaveBeenCalled();
190
- });
191
- });
192
- describe('resetScrollRegion', () => {
193
- it('should write reset escape sequence', () => {
194
- resetScrollRegion();
195
- expect(writeSpy).toHaveBeenCalledTimes(1);
196
- expect(writeSpy).toHaveBeenCalledWith('\x1b[r');
197
- });
198
- });
199
- describe('handleResize', () => {
200
- it('should call setupScrollRegion', () => {
201
- Object.defineProperty(process.stdout, 'rows', { value: 40, writable: true });
202
- handleResize();
203
- expect(writeSpy).toHaveBeenCalledTimes(2);
204
- expect(writeSpy).toHaveBeenNthCalledWith(1, `\x1b[1;${40 - BOTTOM_PADDING}r`);
205
- expect(writeSpy).toHaveBeenNthCalledWith(2, '\x1b[H');
206
- });
207
- });
208
- describe('BOTTOM_PADDING constant', () => {
209
- it('should be 5', () => {
210
- expect(BOTTOM_PADDING).toBe(5);
211
- });
212
- });
213
- });
214
115
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,yBAAyB;AACzB,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAElD,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEhE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE3E,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,aAAa,EAAE,GAAG,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE/C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEvE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,aAAa,EAAE,GAAG,GAAG,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,MAAM,yBAAyB,GAAG,KAAK,IAA0B,EAAE;QACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEvD,mCAAmC;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC1E,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;QAE7B,2DAA2D;QAC3D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;QAEpE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEnD,MAAM,YAAY,GAAG,MAAM,yBAAyB,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAEvF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEnD,MAAM,YAAY,GAAG,MAAM,yBAAyB,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEzE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,MAAM,yBAAyB,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAEzF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,YAAY,OAAO,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE/C,MAAM,YAAY,GAAG,MAAM,yBAAyB,EAAE,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEvE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,IAAI,QAAqC,CAAC;IAC1C,IAAI,YAAgC,CAAC;IAErC,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5E,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,WAAW,EAAE,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;YAC5C,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7E,iBAAiB,EAAE,CAAC;YAEpB,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,cAAc,GAAG,CAAC,CAAC;YAC9E,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7E,iBAAiB,EAAE,CAAC;YAEpB,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpF,iBAAiB,EAAE,CAAC;YAEpB,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,cAAc,GAAG,CAAC,CAAC;YAC9E,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;YAC/E,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;gBAC5C,KAAK,EAAE,cAAc,GAAG,EAAE;gBAC1B,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;YAEH,iBAAiB,EAAE,CAAC;YAEpB,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,iBAAiB,EAAE,CAAC;YAEpB,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7E,YAAY,EAAE,CAAC;YAEf,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,cAAc,GAAG,CAAC,CAAC;YAC9E,MAAM,CAAC,QAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YACrB,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=installer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/installer.test.ts"],"names":[],"mappings":""}