@helmai/cli 1.0.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.
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = register;
4
+ exports.login = login;
5
+ exports.inject = inject;
6
+ exports.capture = capture;
7
+ exports.me = me;
8
+ const config_js_1 = require("./config.js");
9
+ async function request(endpoint, options = {}, useAuth = true) {
10
+ const apiUrl = (0, config_js_1.getApiUrl)();
11
+ const url = `${apiUrl}/api/v1${endpoint}`;
12
+ const headers = {
13
+ 'Content-Type': 'application/json',
14
+ 'Accept': 'application/json',
15
+ ...(options.headers || {}),
16
+ };
17
+ if (useAuth) {
18
+ const credentials = (0, config_js_1.loadCredentials)();
19
+ if (credentials?.api_key) {
20
+ headers['Authorization'] = `Bearer ${credentials.api_key}`;
21
+ }
22
+ }
23
+ const response = await fetch(url, {
24
+ ...options,
25
+ headers,
26
+ });
27
+ const data = await response.json();
28
+ if (!response.ok) {
29
+ const error = data;
30
+ throw new Error(error.message || `Request failed: ${response.status}`);
31
+ }
32
+ return data;
33
+ }
34
+ async function register(name, email, password) {
35
+ return request('/auth/register', {
36
+ method: 'POST',
37
+ body: JSON.stringify({
38
+ name,
39
+ email,
40
+ password,
41
+ password_confirmation: password,
42
+ }),
43
+ }, false);
44
+ }
45
+ async function login(email, password) {
46
+ return request('/auth/login', {
47
+ method: 'POST',
48
+ body: JSON.stringify({ email, password }),
49
+ }, false);
50
+ }
51
+ async function inject(data) {
52
+ return request('/inject', {
53
+ method: 'POST',
54
+ body: JSON.stringify(data),
55
+ });
56
+ }
57
+ async function capture(data) {
58
+ return request('/capture', {
59
+ method: 'POST',
60
+ body: JSON.stringify(data),
61
+ });
62
+ }
63
+ async function me() {
64
+ return request('/me');
65
+ }
66
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":";;AAmDA,4BAcC;AAED,sBAQC;AAED,wBAKC;AAED,0BAKC;AAED,gBAEC;AArFD,2CAAyD;AAOzD,KAAK,UAAU,OAAO,CACpB,QAAgB,EAChB,UAAuB,EAAE,EACzB,OAAO,GAAG,IAAI;IAEd,MAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,GAAG,MAAM,UAAU,QAAQ,EAAE,CAAC;IAE1C,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,QAAQ,EAAE,kBAAkB;QAC5B,GAAG,CAAC,OAAO,CAAC,OAAiC,IAAI,EAAE,CAAC;KACrD,CAAC;IAEF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,WAAW,GAAG,IAAA,2BAAe,GAAE,CAAC;QACtC,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,WAAW,CAAC,OAAO,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,GAAG,OAAO;QACV,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAkB,CAAC;IAEnD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAgB,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,IAAS,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,QAAQ,CAC5B,IAAY,EACZ,KAAa,EACb,QAAgB;IAEhB,OAAO,OAAO,CAAmB,gBAAgB,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI;YACJ,KAAK;YACL,QAAQ;YACR,qBAAqB,EAAE,QAAQ;SAChC,CAAC;KACH,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAEM,KAAK,UAAU,KAAK,CACzB,KAAa,EACb,QAAgB;IAEhB,OAAO,OAAO,CAAgB,aAAa,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KAC1C,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAEM,KAAK,UAAU,MAAM,CAAC,IAAmB;IAC9C,OAAO,OAAO,CAAiB,SAAS,EAAE;QACxC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,IAAoB;IAChD,OAAO,OAAO,CAAkB,UAAU,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,EAAE;IACtB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Credentials } from '../types.js';
2
+ export declare function ensureHelmDir(): void;
3
+ export declare function saveCredentials(credentials: Credentials): void;
4
+ export declare function loadCredentials(): Credentials | null;
5
+ export declare function clearCredentials(): void;
6
+ export declare function getApiUrl(): string;
7
+ export interface LocalConfig {
8
+ defaultOrganization?: string;
9
+ defaultIDE?: 'claude-code' | 'cursor';
10
+ }
11
+ export declare function saveConfig(config: LocalConfig): void;
12
+ export declare function loadConfig(): LocalConfig;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAI9D;AAED,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAWpD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAclC;AAED,MAAM,WAAW,WAAW;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;CACvC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAGpD;AAED,wBAAgB,UAAU,IAAI,WAAW,CAWxC"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ensureHelmDir = ensureHelmDir;
37
+ exports.saveCredentials = saveCredentials;
38
+ exports.loadCredentials = loadCredentials;
39
+ exports.clearCredentials = clearCredentials;
40
+ exports.getApiUrl = getApiUrl;
41
+ exports.saveConfig = saveConfig;
42
+ exports.loadConfig = loadConfig;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const os = __importStar(require("os"));
46
+ const HELM_DIR = path.join(os.homedir(), '.helm');
47
+ const CREDENTIALS_FILE = path.join(HELM_DIR, 'credentials');
48
+ const CONFIG_FILE = path.join(HELM_DIR, 'config.json');
49
+ function ensureHelmDir() {
50
+ if (!fs.existsSync(HELM_DIR)) {
51
+ fs.mkdirSync(HELM_DIR, { recursive: true });
52
+ }
53
+ }
54
+ function saveCredentials(credentials) {
55
+ ensureHelmDir();
56
+ fs.writeFileSync(CREDENTIALS_FILE, JSON.stringify(credentials, null, 2));
57
+ fs.chmodSync(CREDENTIALS_FILE, 0o600); // Read/write only for owner
58
+ }
59
+ function loadCredentials() {
60
+ if (!fs.existsSync(CREDENTIALS_FILE)) {
61
+ return null;
62
+ }
63
+ try {
64
+ const content = fs.readFileSync(CREDENTIALS_FILE, 'utf-8');
65
+ return JSON.parse(content);
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ function clearCredentials() {
72
+ if (fs.existsSync(CREDENTIALS_FILE)) {
73
+ fs.unlinkSync(CREDENTIALS_FILE);
74
+ }
75
+ }
76
+ function getApiUrl() {
77
+ // Check for environment override first
78
+ if (process.env.HELM_API_URL) {
79
+ return process.env.HELM_API_URL;
80
+ }
81
+ // Load from credentials if available
82
+ const credentials = loadCredentials();
83
+ if (credentials?.api_url) {
84
+ return credentials.api_url;
85
+ }
86
+ // Default to production
87
+ return 'https://helmai.dev';
88
+ }
89
+ function saveConfig(config) {
90
+ ensureHelmDir();
91
+ fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
92
+ }
93
+ function loadConfig() {
94
+ if (!fs.existsSync(CONFIG_FILE)) {
95
+ return {};
96
+ }
97
+ try {
98
+ const content = fs.readFileSync(CONFIG_FILE, 'utf-8');
99
+ return JSON.parse(content);
100
+ }
101
+ catch {
102
+ return {};
103
+ }
104
+ }
105
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,sCAIC;AAED,0CAIC;AAED,0CAWC;AAED,4CAIC;AAED,8BAcC;AAOD,gCAGC;AAED,gCAWC;AA7ED,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAGzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AAEvD,SAAgB,aAAa;IAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,WAAwB;IACtD,aAAa,EAAE,CAAC;IAChB,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,4BAA4B;AACrE,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,gBAAgB;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAgB,SAAS;IACvB,uCAAuC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,qCAAqC;IACrC,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,wBAAwB;IACxB,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAOD,SAAgB,UAAU,CAAC,MAAmB;IAC5C,aAAa,EAAE,CAAC;IAChB,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAgB,UAAU;IACxB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { DetectedIDE } from '../types.js';
2
+ export declare function detectIDEs(): DetectedIDE[];
3
+ export declare function detectStack(cwd?: string): string[];
4
+ export declare function getCurrentBranch(cwd?: string): string | null;
5
+ //# sourceMappingURL=detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAgB,UAAU,IAAI,WAAW,EAAE,CAqC1C;AAED,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,EAAE,CA0DjE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAa3E"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.detectIDEs = detectIDEs;
37
+ exports.detectStack = detectStack;
38
+ exports.getCurrentBranch = getCurrentBranch;
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const os = __importStar(require("os"));
42
+ function detectIDEs() {
43
+ const home = os.homedir();
44
+ const ides = [
45
+ {
46
+ name: 'claude-code',
47
+ displayName: 'Claude Code',
48
+ configPath: path.join(home, '.claude', 'settings.json'),
49
+ detected: false,
50
+ },
51
+ {
52
+ name: 'cursor',
53
+ displayName: 'Cursor',
54
+ configPath: path.join(home, '.cursor', 'hooks.json'),
55
+ detected: false,
56
+ },
57
+ ];
58
+ // Check for Claude Code
59
+ const claudeDir = path.join(home, '.claude');
60
+ if (fs.existsSync(claudeDir)) {
61
+ ides[0].detected = true;
62
+ }
63
+ // Check for Cursor
64
+ const cursorDir = path.join(home, '.cursor');
65
+ if (fs.existsSync(cursorDir)) {
66
+ ides[1].detected = true;
67
+ }
68
+ // Also check for Cursor app installation on macOS
69
+ const cursorApp = '/Applications/Cursor.app';
70
+ if (fs.existsSync(cursorApp)) {
71
+ ides[1].detected = true;
72
+ }
73
+ return ides;
74
+ }
75
+ function detectStack(cwd = process.cwd()) {
76
+ const stack = [];
77
+ // Check for common files/directories
78
+ const checks = [
79
+ { files: ['composer.json'], stack: ['php'] },
80
+ { files: ['artisan'], stack: ['laravel'] },
81
+ { files: ['package.json'], stack: ['node'] },
82
+ { files: ['tsconfig.json'], stack: ['typescript'] },
83
+ { files: ['vite.config.ts', 'vite.config.js'], stack: ['vite'] },
84
+ ];
85
+ for (const check of checks) {
86
+ for (const file of check.files) {
87
+ if (fs.existsSync(path.join(cwd, file))) {
88
+ stack.push(...check.stack);
89
+ break;
90
+ }
91
+ }
92
+ }
93
+ // Check composer.json for specific packages
94
+ const composerPath = path.join(cwd, 'composer.json');
95
+ if (fs.existsSync(composerPath)) {
96
+ try {
97
+ const composer = JSON.parse(fs.readFileSync(composerPath, 'utf-8'));
98
+ const allDeps = { ...composer.require, ...composer['require-dev'] };
99
+ if (allDeps['pestphp/pest'])
100
+ stack.push('pest');
101
+ if (allDeps['inertiajs/inertia-laravel'])
102
+ stack.push('inertia');
103
+ if (allDeps['livewire/livewire'])
104
+ stack.push('livewire');
105
+ }
106
+ catch {
107
+ // Ignore parse errors
108
+ }
109
+ }
110
+ // Check package.json for specific packages
111
+ const packagePath = path.join(cwd, 'package.json');
112
+ if (fs.existsSync(packagePath)) {
113
+ try {
114
+ const pkg = JSON.parse(fs.readFileSync(packagePath, 'utf-8'));
115
+ const allDeps = { ...pkg.dependencies, ...pkg.devDependencies };
116
+ if (allDeps['react'])
117
+ stack.push('react');
118
+ if (allDeps['vue'])
119
+ stack.push('vue');
120
+ if (allDeps['tailwindcss'])
121
+ stack.push('tailwind');
122
+ }
123
+ catch {
124
+ // Ignore parse errors
125
+ }
126
+ }
127
+ return [...new Set(stack)]; // Remove duplicates
128
+ }
129
+ function getCurrentBranch(cwd = process.cwd()) {
130
+ const gitHead = path.join(cwd, '.git', 'HEAD');
131
+ if (!fs.existsSync(gitHead)) {
132
+ return null;
133
+ }
134
+ try {
135
+ const content = fs.readFileSync(gitHead, 'utf-8').trim();
136
+ const match = content.match(/^ref: refs\/heads\/(.+)$/);
137
+ return match ? match[1] : null;
138
+ }
139
+ catch {
140
+ return null;
141
+ }
142
+ }
143
+ //# sourceMappingURL=detect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { IDE } from '../types.js';
2
+ export declare function installHooks(ide: IDE): {
3
+ success: boolean;
4
+ message: string;
5
+ };
6
+ export declare function uninstallHooks(ide: IDE): {
7
+ success: boolean;
8
+ message: string;
9
+ };
10
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAkBvC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAU5E;AAiID,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA+B9E"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.installHooks = installHooks;
37
+ exports.uninstallHooks = uninstallHooks;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const os = __importStar(require("os"));
41
+ function installHooks(ide) {
42
+ const home = os.homedir();
43
+ if (ide === 'claude-code') {
44
+ return installClaudeCodeHooks(home);
45
+ }
46
+ else if (ide === 'cursor') {
47
+ return installCursorHooks(home);
48
+ }
49
+ return { success: false, message: `Unknown IDE: ${ide}` };
50
+ }
51
+ function installClaudeCodeHooks(home) {
52
+ const claudeDir = path.join(home, '.claude');
53
+ const settingsPath = path.join(claudeDir, 'settings.json');
54
+ // Ensure .claude directory exists
55
+ if (!fs.existsSync(claudeDir)) {
56
+ fs.mkdirSync(claudeDir, { recursive: true });
57
+ }
58
+ // Load existing settings or create new
59
+ let settings = {};
60
+ if (fs.existsSync(settingsPath)) {
61
+ try {
62
+ settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
63
+ }
64
+ catch {
65
+ // Start fresh if parse fails
66
+ settings = {};
67
+ }
68
+ }
69
+ // Initialize hooks if needed
70
+ if (!settings.hooks) {
71
+ settings.hooks = {};
72
+ }
73
+ if (!settings.hooks['user-prompt-submit']) {
74
+ settings.hooks['user-prompt-submit'] = [];
75
+ }
76
+ if (!settings.hooks['assistant-response']) {
77
+ settings.hooks['assistant-response'] = [];
78
+ }
79
+ // Check if helm hooks already exist
80
+ const hasInjectHook = settings.hooks['user-prompt-submit'].some(h => h.command.includes('helm inject'));
81
+ const hasCaptureHook = settings.hooks['assistant-response'].some(h => h.command.includes('helm capture'));
82
+ // Add inject hook if not present
83
+ if (!hasInjectHook) {
84
+ settings.hooks['user-prompt-submit'].push({
85
+ command: 'helm inject',
86
+ timeout: 3000,
87
+ });
88
+ }
89
+ // Add capture hook if not present
90
+ if (!hasCaptureHook) {
91
+ settings.hooks['assistant-response'].push({
92
+ command: 'helm capture',
93
+ timeout: 3000,
94
+ });
95
+ }
96
+ // Write settings
97
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
98
+ return {
99
+ success: true,
100
+ message: `Claude Code hooks installed at ${settingsPath}`,
101
+ };
102
+ }
103
+ function installCursorHooks(home) {
104
+ const cursorDir = path.join(home, '.cursor');
105
+ const hooksPath = path.join(cursorDir, 'hooks.json');
106
+ // Ensure .cursor directory exists
107
+ if (!fs.existsSync(cursorDir)) {
108
+ fs.mkdirSync(cursorDir, { recursive: true });
109
+ }
110
+ // Load existing hooks or create new
111
+ let hooks = { version: 1, hooks: {} };
112
+ if (fs.existsSync(hooksPath)) {
113
+ try {
114
+ hooks = JSON.parse(fs.readFileSync(hooksPath, 'utf-8'));
115
+ }
116
+ catch {
117
+ // Start fresh if parse fails
118
+ hooks = { version: 1, hooks: {} };
119
+ }
120
+ }
121
+ // Initialize hooks if needed
122
+ if (!hooks.hooks) {
123
+ hooks.hooks = {};
124
+ }
125
+ if (!hooks.hooks.beforeSubmitPrompt) {
126
+ hooks.hooks.beforeSubmitPrompt = [];
127
+ }
128
+ if (!hooks.hooks.afterResponse) {
129
+ hooks.hooks.afterResponse = [];
130
+ }
131
+ // Check if helm hooks already exist
132
+ const hasInjectHook = hooks.hooks.beforeSubmitPrompt.some(h => h.command.includes('helm inject'));
133
+ const hasCaptureHook = hooks.hooks.afterResponse.some(h => h.command.includes('helm capture'));
134
+ // Add hooks if not present
135
+ if (!hasInjectHook) {
136
+ hooks.hooks.beforeSubmitPrompt.push({
137
+ command: 'helm inject --format=cursor',
138
+ timeout: 3000,
139
+ });
140
+ }
141
+ if (!hasCaptureHook) {
142
+ hooks.hooks.afterResponse.push({
143
+ command: 'helm capture --format=cursor',
144
+ timeout: 3000,
145
+ });
146
+ }
147
+ // Write hooks
148
+ fs.writeFileSync(hooksPath, JSON.stringify(hooks, null, 2));
149
+ return {
150
+ success: true,
151
+ message: `Cursor hooks installed at ${hooksPath}`,
152
+ };
153
+ }
154
+ function uninstallHooks(ide) {
155
+ const home = os.homedir();
156
+ if (ide === 'claude-code') {
157
+ const settingsPath = path.join(home, '.claude', 'settings.json');
158
+ if (!fs.existsSync(settingsPath)) {
159
+ return { success: true, message: 'No Claude Code settings found' };
160
+ }
161
+ try {
162
+ const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
163
+ if (settings.hooks) {
164
+ if (settings.hooks['user-prompt-submit']) {
165
+ settings.hooks['user-prompt-submit'] = settings.hooks['user-prompt-submit'].filter(h => !h.command.includes('helm'));
166
+ }
167
+ if (settings.hooks['assistant-response']) {
168
+ settings.hooks['assistant-response'] = settings.hooks['assistant-response'].filter(h => !h.command.includes('helm'));
169
+ }
170
+ }
171
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
172
+ return { success: true, message: 'Claude Code hooks removed' };
173
+ }
174
+ catch (e) {
175
+ return { success: false, message: `Failed to remove hooks: ${e}` };
176
+ }
177
+ }
178
+ return { success: false, message: `Unknown IDE: ${ide}` };
179
+ }
180
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/lib/hooks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,oCAUC;AAiID,wCA+BC;AA/LD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAmBzB,SAAgB,YAAY,CAAC,GAAQ;IACnC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAE1B,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC1B,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,GAAG,EAAE,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAE3D,kCAAkC;IAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,uCAAuC;IACvC,IAAI,QAAQ,GAAmB,EAAE,CAAC;IAClC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAmB,CAAC;QAClF,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;YAC7B,QAAQ,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC1C,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC1C,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;IAC5C,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAC7D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CACvC,CAAC;IACF,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAC9D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CACxC,CAAC;IAEF,iCAAiC;IACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC;YACxC,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC;YACxC,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAElE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,kCAAkC,YAAY,EAAE;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAErD,kCAAkC;IAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,oCAAoC;IACpC,IAAI,KAAK,GAAgB,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACnD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAgB,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;YAC7B,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACpC,KAAK,CAAC,KAAK,CAAC,kBAAkB,GAAG,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/B,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CACvC,CAAC;IACF,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CACxC,CAAC;IAEF,2BAA2B;IAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;YAC7B,OAAO,EAAE,8BAA8B;YACvC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;IAED,cAAc;IACd,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5D,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,6BAA6B,SAAS,EAAE;KAClD,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAAC,GAAQ;IACrC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAE1B,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QACjE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;QACrE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAmB,CAAC;YACtF,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,IAAI,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBACzC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAChF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CACjC,CAAC;gBACJ,CAAC;gBACD,IAAI,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;oBACzC,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAChF,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CACjC,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,CAAC,EAAE,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,GAAG,EAAE,EAAE,CAAC;AAC5D,CAAC"}
@@ -0,0 +1,82 @@
1
+ export interface HelmConfig {
2
+ apiKey: string;
3
+ apiUrl: string;
4
+ organizationId: string;
5
+ userId: string;
6
+ }
7
+ export interface Credentials {
8
+ api_key: string;
9
+ organization_id: string;
10
+ user_id: string;
11
+ api_url: string;
12
+ }
13
+ export interface ApiResponse<T> {
14
+ data?: T;
15
+ message?: string;
16
+ errors?: Record<string, string[]>;
17
+ }
18
+ export interface RegisterResponse {
19
+ user: {
20
+ id: string;
21
+ name: string;
22
+ email: string;
23
+ };
24
+ organization: {
25
+ id: string;
26
+ name: string;
27
+ slug: string;
28
+ };
29
+ api_key: string;
30
+ }
31
+ export interface LoginResponse {
32
+ user: {
33
+ id: string;
34
+ name: string;
35
+ email: string;
36
+ };
37
+ organization: {
38
+ id: string;
39
+ name: string;
40
+ slug: string;
41
+ };
42
+ api_key: string;
43
+ }
44
+ export interface InjectRequest {
45
+ prompt: string;
46
+ context?: {
47
+ cwd?: string;
48
+ detected_stack?: string[];
49
+ session_id?: string;
50
+ branch?: string;
51
+ };
52
+ }
53
+ export interface InjectResponse {
54
+ prompt_id: string;
55
+ enhanced_prompt: string;
56
+ injections: Array<{
57
+ source: string;
58
+ content: string;
59
+ }>;
60
+ }
61
+ export interface CaptureRequest {
62
+ prompt_id: string;
63
+ code_blocks: Array<{
64
+ language: string;
65
+ content: string;
66
+ file_hint?: string | null;
67
+ }>;
68
+ raw_response?: string | null;
69
+ }
70
+ export interface CaptureResponse {
71
+ response_id: string;
72
+ prompt_id: string;
73
+ code_blocks_count: number;
74
+ }
75
+ export type IDE = 'claude-code' | 'cursor';
76
+ export interface DetectedIDE {
77
+ name: IDE;
78
+ displayName: string;
79
+ configPath: string;
80
+ detected: boolean;
81
+ }
82
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,GAAG,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,GAAG,CAAC;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}