kitstore-cli 1.0.96 → 1.0.103
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/config.js +203 -8
- package/dist/index.js +11 -1
- package/package.json +5 -4
package/dist/config.js
CHANGED
|
@@ -46,25 +46,199 @@ const CONFIG_DIR = process.env.KITSTORE_CONFIG_DIR || path.join(os.homedir(), '.
|
|
|
46
46
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
47
47
|
async function loadBundledDefaultConfig() {
|
|
48
48
|
try {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
console.log('🔧 DEBUG loadBundledDefaultConfig: Starting resolution strategies...');
|
|
50
|
+
console.log('🔧 DEBUG Environment info:');
|
|
51
|
+
console.log('🔧 DEBUG __filename:', __filename);
|
|
52
|
+
console.log('🔧 DEBUG __dirname:', __dirname);
|
|
53
|
+
console.log('🔧 DEBUG process.cwd():', process.cwd());
|
|
54
|
+
console.log('🔧 DEBUG process.execPath:', process.execPath);
|
|
55
|
+
console.log('🔧 DEBUG process.argv[0]:', process.argv[0]);
|
|
56
|
+
console.log('🔧 DEBUG process.argv[1]:', process.argv[1]);
|
|
57
|
+
// Strategy 0: Direct node_modules lookup (most reliable for npm-installed contexts)
|
|
55
58
|
try {
|
|
59
|
+
const nodeModulesPath = path.join(process.cwd(), 'node_modules', 'kitstore-cli', 'default-config.json');
|
|
60
|
+
console.log('🔧 DEBUG Strategy 0: Checking', nodeModulesPath);
|
|
61
|
+
console.log('🔧 DEBUG Strategy 0: process.cwd() is:', process.cwd());
|
|
62
|
+
console.log('🔧 DEBUG Strategy 0: Directory exists:', await fs.pathExists(path.dirname(nodeModulesPath)));
|
|
63
|
+
console.log('🔧 DEBUG Strategy 0: node_modules exists:', await fs.pathExists(path.join(process.cwd(), 'node_modules')));
|
|
64
|
+
console.log('🔧 DEBUG Strategy 0: kitstore-cli dir exists:', await fs.pathExists(path.join(process.cwd(), 'node_modules', 'kitstore-cli')));
|
|
65
|
+
if (await fs.pathExists(nodeModulesPath)) {
|
|
66
|
+
const defaultConfig = await fs.readJson(nodeModulesPath);
|
|
67
|
+
console.log('🔧 DEBUG Strategy 0: Found config:', defaultConfig ? { server: defaultConfig.server } : null);
|
|
68
|
+
if (defaultConfig && typeof defaultConfig === 'object' && defaultConfig.server) {
|
|
69
|
+
console.log('🔧 DEBUG Strategy 0: SUCCESS');
|
|
70
|
+
return defaultConfig;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.log('🔧 DEBUG Strategy 0: File not found at', nodeModulesPath);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
console.log('🔧 DEBUG Strategy 0: Failed with error:', err instanceof Error ? err.message : String(err));
|
|
79
|
+
}
|
|
80
|
+
// Strategy 1: Use require.resolve for package.json (works in most npm-installed contexts)
|
|
81
|
+
try {
|
|
82
|
+
console.log('🔧 DEBUG Strategy 1: Trying require.resolve...');
|
|
56
83
|
const packageJsonPath = require.resolve('kitstore-cli/package.json');
|
|
57
84
|
const packageDir = path.dirname(packageJsonPath);
|
|
58
85
|
const defaultConfigPath = path.join(packageDir, 'default-config.json');
|
|
86
|
+
console.log('🔧 DEBUG Strategy 1: Resolved to', packageJsonPath);
|
|
87
|
+
console.log('🔧 DEBUG Strategy 1: Package dir:', packageDir);
|
|
88
|
+
console.log('🔧 DEBUG Strategy 1: Config path:', defaultConfigPath);
|
|
59
89
|
if (await fs.pathExists(defaultConfigPath)) {
|
|
60
90
|
const defaultConfig = await fs.readJson(defaultConfigPath);
|
|
91
|
+
console.log('🔧 DEBUG Strategy 1: Found config:', defaultConfig ? { server: defaultConfig.server } : null);
|
|
61
92
|
if (defaultConfig && typeof defaultConfig === 'object' && defaultConfig.server) {
|
|
93
|
+
console.log('🔧 DEBUG Strategy 1: SUCCESS');
|
|
62
94
|
return defaultConfig;
|
|
63
95
|
}
|
|
64
96
|
}
|
|
97
|
+
else {
|
|
98
|
+
console.log('🔧 DEBUG Strategy 1: Config file not found at', defaultConfigPath);
|
|
99
|
+
console.log('🔧 DEBUG Strategy 1: Package dir contents:', await fs.readdir(packageDir).catch(() => 'unable to read'));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
console.log('🔧 DEBUG Strategy 1: Failed - require.resolve error:', err instanceof Error ? err.message : String(err));
|
|
104
|
+
}
|
|
105
|
+
// Strategy 2: Walk up from current file location (__filename)
|
|
106
|
+
try {
|
|
107
|
+
console.log('🔧 DEBUG Strategy 2: Walking up from __filename...');
|
|
108
|
+
let currentDir = path.dirname(path.dirname(__filename)); // cli/dist -> cli/
|
|
109
|
+
let attempts = 0;
|
|
110
|
+
const maxAttempts = 10;
|
|
111
|
+
console.log('🔧 DEBUG Strategy 2: Starting from', currentDir);
|
|
112
|
+
while (currentDir !== path.dirname(currentDir) && attempts < maxAttempts) {
|
|
113
|
+
const packageJsonPath = path.join(currentDir, 'package.json');
|
|
114
|
+
const defaultConfigPath = path.join(currentDir, 'default-config.json');
|
|
115
|
+
console.log('🔧 DEBUG Strategy 2: Checking dir', currentDir, 'attempt', attempts);
|
|
116
|
+
console.log('🔧 DEBUG Strategy 2: package.json exists:', await fs.pathExists(packageJsonPath));
|
|
117
|
+
console.log('🔧 DEBUG Strategy 2: default-config.json exists:', await fs.pathExists(defaultConfigPath));
|
|
118
|
+
if (await fs.pathExists(packageJsonPath) && await fs.pathExists(defaultConfigPath)) {
|
|
119
|
+
try {
|
|
120
|
+
const packageJson = await fs.readJson(packageJsonPath);
|
|
121
|
+
console.log('🔧 DEBUG Strategy 2: Found package.json with name:', packageJson.name);
|
|
122
|
+
if (packageJson.name === 'kitstore-cli') {
|
|
123
|
+
const defaultConfig = await fs.readJson(defaultConfigPath);
|
|
124
|
+
console.log('🔧 DEBUG Strategy 2: Found config:', defaultConfig ? { server: defaultConfig.server } : null);
|
|
125
|
+
if (defaultConfig && typeof defaultConfig === 'object' && defaultConfig.server) {
|
|
126
|
+
console.log('🔧 DEBUG Strategy 2: SUCCESS');
|
|
127
|
+
return defaultConfig;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch (readErr) {
|
|
132
|
+
console.log('🔧 DEBUG Strategy 2: Read error:', readErr instanceof Error ? readErr.message : String(readErr));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
currentDir = path.dirname(currentDir);
|
|
136
|
+
attempts++;
|
|
137
|
+
}
|
|
138
|
+
console.log('🔧 DEBUG Strategy 2: No kitstore-cli package found after', attempts, 'attempts');
|
|
139
|
+
console.log('🔧 DEBUG Strategy 2: Ended at', currentDir);
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
console.log('🔧 DEBUG Strategy 2: Failed with error:', err instanceof Error ? err.message : String(err));
|
|
143
|
+
}
|
|
144
|
+
// Strategy 3: Check npm global installation directories
|
|
145
|
+
try {
|
|
146
|
+
console.log('🔧 DEBUG Strategy 3: Checking npm global directories...');
|
|
147
|
+
const npmPaths = [];
|
|
148
|
+
// Try to get npm prefix
|
|
149
|
+
try {
|
|
150
|
+
const { execSync } = require('child_process');
|
|
151
|
+
const npmPrefix = execSync('npm config get prefix').toString().trim();
|
|
152
|
+
console.log('🔧 DEBUG Strategy 3: npm prefix:', npmPrefix);
|
|
153
|
+
npmPaths.push(path.join(npmPrefix, 'lib', 'node_modules', 'kitstore-cli', 'default-config.json'));
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
console.log('🔧 DEBUG Strategy 3: Could not get npm prefix:', e instanceof Error ? e.message : String(e));
|
|
157
|
+
}
|
|
158
|
+
// Common global installation paths
|
|
159
|
+
npmPaths.push('/usr/local/lib/node_modules/kitstore-cli/default-config.json');
|
|
160
|
+
npmPaths.push('/usr/lib/node_modules/kitstore-cli/default-config.json');
|
|
161
|
+
npmPaths.push(path.join(os.homedir(), '.npm-global', 'lib', 'node_modules', 'kitstore-cli', 'default-config.json'));
|
|
162
|
+
console.log('🔧 DEBUG Strategy 3: Will check paths:', npmPaths);
|
|
163
|
+
for (const configPath of npmPaths) {
|
|
164
|
+
console.log('🔧 DEBUG Strategy 3: Checking', configPath);
|
|
165
|
+
try {
|
|
166
|
+
const exists = await fs.pathExists(configPath);
|
|
167
|
+
console.log('🔧 DEBUG Strategy 3: Path exists:', exists);
|
|
168
|
+
if (exists) {
|
|
169
|
+
const defaultConfig = await fs.readJson(configPath);
|
|
170
|
+
console.log('🔧 DEBUG Strategy 3: Found config:', defaultConfig ? { server: defaultConfig.server } : null);
|
|
171
|
+
if (defaultConfig && typeof defaultConfig === 'object' && defaultConfig.server) {
|
|
172
|
+
console.log('🔧 DEBUG Strategy 3: SUCCESS');
|
|
173
|
+
return defaultConfig;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch (e) {
|
|
178
|
+
console.log('🔧 DEBUG Strategy 3: Error checking path:', e instanceof Error ? e.message : String(e));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
console.log('🔧 DEBUG Strategy 3: No config found in global directories');
|
|
65
182
|
}
|
|
66
183
|
catch (err) {
|
|
67
|
-
|
|
184
|
+
console.log('🔧 DEBUG Strategy 3: Failed with error:', err instanceof Error ? err.message : String(err));
|
|
185
|
+
}
|
|
186
|
+
// Strategy 4: Try to find via npm list or npm root
|
|
187
|
+
try {
|
|
188
|
+
console.log('🔧 DEBUG Strategy 4: Trying npm root resolution...');
|
|
189
|
+
const { execSync } = require('child_process');
|
|
190
|
+
try {
|
|
191
|
+
// Try npm root for kitstore-cli
|
|
192
|
+
console.log('🔧 DEBUG Strategy 4: Running npm root kitstore-cli...');
|
|
193
|
+
const npmRoot = execSync('npm root kitstore-cli 2>/dev/null || npm root').toString().trim();
|
|
194
|
+
console.log('🔧 DEBUG Strategy 4: npm root result:', npmRoot);
|
|
195
|
+
const configPath = path.join(npmRoot, 'kitstore-cli', 'default-config.json');
|
|
196
|
+
console.log('🔧 DEBUG Strategy 4: Checking npm root path:', configPath);
|
|
197
|
+
console.log('🔧 DEBUG Strategy 4: npm root dir exists:', await fs.pathExists(npmRoot));
|
|
198
|
+
console.log('🔧 DEBUG Strategy 4: kitstore-cli in npm root exists:', await fs.pathExists(path.join(npmRoot, 'kitstore-cli')));
|
|
199
|
+
if (await fs.pathExists(configPath)) {
|
|
200
|
+
const defaultConfig = await fs.readJson(configPath);
|
|
201
|
+
console.log('🔧 DEBUG Strategy 4: Found config:', defaultConfig ? { server: defaultConfig.server } : null);
|
|
202
|
+
if (defaultConfig && typeof defaultConfig === 'object' && defaultConfig.server) {
|
|
203
|
+
console.log('🔧 DEBUG Strategy 4: SUCCESS');
|
|
204
|
+
return defaultConfig;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
console.log('🔧 DEBUG Strategy 4: Config file not found at npm root path');
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (e) {
|
|
212
|
+
console.log('🔧 DEBUG Strategy 4: npm root command failed:', e instanceof Error ? e.message : String(e));
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch (err) {
|
|
216
|
+
console.log('🔧 DEBUG Strategy 4: Failed with error:', err instanceof Error ? err.message : String(err));
|
|
217
|
+
}
|
|
218
|
+
// Strategy 1.5: Try to find package.json by walking up from __dirname
|
|
219
|
+
// This handles cases where require.resolve doesn't work in some npm/npx contexts
|
|
220
|
+
try {
|
|
221
|
+
let currentDir = path.dirname(__dirname); // Start from cli/dist/../ (cli/)
|
|
222
|
+
let attempts = 0;
|
|
223
|
+
while (currentDir !== path.dirname(currentDir) && attempts < 10) { // Avoid infinite loop
|
|
224
|
+
const packageJsonPath = path.join(currentDir, 'package.json');
|
|
225
|
+
const defaultConfigPath = path.join(currentDir, 'default-config.json');
|
|
226
|
+
if (await fs.pathExists(packageJsonPath) && await fs.pathExists(defaultConfigPath)) {
|
|
227
|
+
const packageJson = await fs.readJson(packageJsonPath);
|
|
228
|
+
if (packageJson.name === 'kitstore-cli') {
|
|
229
|
+
const defaultConfig = await fs.readJson(defaultConfigPath);
|
|
230
|
+
if (defaultConfig && typeof defaultConfig === 'object' && defaultConfig.server) {
|
|
231
|
+
return defaultConfig;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
currentDir = path.dirname(currentDir);
|
|
236
|
+
attempts++;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
// Strategy 1.5 failed, try Strategy 2
|
|
241
|
+
// Strategy 1.5 failed, continue to Strategy 2
|
|
68
242
|
}
|
|
69
243
|
// Strategy 2: Use __dirname relative path (works in development/local builds and many npm-installed layouts)
|
|
70
244
|
// - When running from source or local tarball, __dirname points to dist/ directory.
|
|
@@ -81,6 +255,7 @@ async function loadBundledDefaultConfig() {
|
|
|
81
255
|
}
|
|
82
256
|
catch (err) {
|
|
83
257
|
// Strategy 2 failed, try Strategy 3
|
|
258
|
+
// Strategy 2 failed, try Strategy 3
|
|
84
259
|
}
|
|
85
260
|
// Strategy 3: Use require.resolve to find the compiled config module, then resolve config relative to it
|
|
86
261
|
// - This works when the package is installed via npm and we can resolve our own module entrypoint.
|
|
@@ -101,6 +276,7 @@ async function loadBundledDefaultConfig() {
|
|
|
101
276
|
}
|
|
102
277
|
catch (err) {
|
|
103
278
|
// Strategy 3 failed, try Strategy 4
|
|
279
|
+
// Strategy 3 failed, try Strategy 4
|
|
104
280
|
}
|
|
105
281
|
// Strategy 4: Try to find default-config.json in process.cwd()/node_modules/kitstore-cli/
|
|
106
282
|
// This works when running from a project that has kitstore-cli installed locally
|
|
@@ -116,10 +292,29 @@ async function loadBundledDefaultConfig() {
|
|
|
116
292
|
catch (err) {
|
|
117
293
|
// Strategy 4 failed, continue
|
|
118
294
|
}
|
|
295
|
+
// Strategy 5: Try to find the config relative to the CLI's installation directory
|
|
296
|
+
// This works when the CLI is globally installed or run via npx
|
|
297
|
+
try {
|
|
298
|
+
// Get the directory where this config.js file is located
|
|
299
|
+
const cliDistDir = path.dirname(__filename);
|
|
300
|
+
// Go up to find the package root (dist -> kitstore-cli package root)
|
|
301
|
+
const packageRoot = path.dirname(cliDistDir);
|
|
302
|
+
const defaultConfigPath = path.join(packageRoot, 'default-config.json');
|
|
303
|
+
if (await fs.pathExists(defaultConfigPath)) {
|
|
304
|
+
const defaultConfig = await fs.readJson(defaultConfigPath);
|
|
305
|
+
if (defaultConfig && typeof defaultConfig === 'object' && defaultConfig.server) {
|
|
306
|
+
return defaultConfig;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
catch (err) {
|
|
311
|
+
// Strategy 5 failed, continue
|
|
312
|
+
}
|
|
119
313
|
}
|
|
120
314
|
catch (err) {
|
|
121
|
-
|
|
315
|
+
console.log('🔧 DEBUG loadBundledDefaultConfig: Outer catch - ignoring error');
|
|
122
316
|
}
|
|
317
|
+
console.log('🔧 DEBUG loadBundledDefaultConfig: All strategies failed, returning null');
|
|
123
318
|
return null;
|
|
124
319
|
}
|
|
125
320
|
async function getConfig() {
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
// DIAGNOSTIC: Log execution environment before any config loading
|
|
8
|
+
console.log('🔧 DIAGNOSTIC: CLI Execution Environment:');
|
|
9
|
+
console.log('🔧 __filename:', __filename);
|
|
10
|
+
console.log('🔧 __dirname:', __dirname);
|
|
11
|
+
console.log('🔧 process.cwd():', process.cwd());
|
|
12
|
+
console.log('🔧 process.execPath:', process.execPath);
|
|
13
|
+
console.log('🔧 process.argv:', JSON.stringify(process.argv));
|
|
14
|
+
console.log('🔧 process.env.NODE_ENV:', process.env.NODE_ENV);
|
|
15
|
+
console.log('🔧 process.env.npm_config_prefix:', process.env.npm_config_prefix);
|
|
16
|
+
console.log('🔧 process.env.PATH (first 200 chars):', process.env.PATH?.substring(0, 200) + '...');
|
|
7
17
|
const commander_1 = require("commander");
|
|
8
18
|
const login_1 = require("./commands/login");
|
|
9
19
|
const install_1 = require("./commands/install");
|
|
@@ -32,7 +42,7 @@ program
|
|
|
32
42
|
.description('Login to Cursor Kit backend')
|
|
33
43
|
.option('-e, --email <email>', 'Email address')
|
|
34
44
|
.option('-p, --password <password>', 'Password')
|
|
35
|
-
.option('-s, --server <url>', 'Backend server URL'
|
|
45
|
+
.option('-s, --server <url>', 'Backend server URL')
|
|
36
46
|
.action(login_1.loginCommand);
|
|
37
47
|
program
|
|
38
48
|
.command('install')
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kitstore-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.103",
|
|
4
4
|
"description": "CLI tool for Cursor Kit",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
7
|
-
"kitstore": "
|
|
7
|
+
"kitstore": "dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/",
|
|
11
11
|
"default-config.json"
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
|
-
"build": "tsc",
|
|
14
|
+
"build": "tsc && chmod +x dist/index.js",
|
|
15
15
|
"dev": "tsx src/index.ts",
|
|
16
16
|
"start": "node dist/index.js",
|
|
17
17
|
"generate:api": "openapi-generator-cli generate -i ../backend/openapi/openapi.json -g typescript-axios -o src/api/generated --additional-properties=supportsES6=true,withInterfaces=true",
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"test:regression:cov": "jest tests/regression/ --coverage --coveragePathIgnorePatterns=node_modules",
|
|
29
29
|
"test:all": "npm run test:unit && npm run test:e2e && npm run test:published",
|
|
30
30
|
"test:watch": "jest --watch",
|
|
31
|
-
"test:cov": "jest --coverage"
|
|
31
|
+
"test:cov": "jest --coverage",
|
|
32
|
+
"postinstall": "chmod +x dist/index.js || true"
|
|
32
33
|
},
|
|
33
34
|
"dependencies": {
|
|
34
35
|
"axios": "^1.6.2",
|