kaimon-cli 0.1.41 → 0.1.44
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/README.md +56 -0
- package/dist/__tests__/commands/pull.test.d.ts +2 -0
- package/dist/__tests__/commands/pull.test.d.ts.map +1 -0
- package/dist/__tests__/commands/pull.test.js +182 -0
- package/dist/__tests__/commands/pull.test.js.map +1 -0
- package/dist/__tests__/commands/push.test.d.ts +2 -0
- package/dist/__tests__/commands/push.test.d.ts.map +1 -0
- package/dist/__tests__/commands/push.test.js +255 -0
- package/dist/__tests__/commands/push.test.js.map +1 -0
- package/dist/__tests__/helpers.d.ts +49 -0
- package/dist/__tests__/helpers.d.ts.map +1 -0
- package/dist/__tests__/helpers.js +151 -0
- package/dist/__tests__/helpers.js.map +1 -0
- package/dist/__tests__/integration/full-workflow.test.d.ts +2 -0
- package/dist/__tests__/integration/full-workflow.test.d.ts.map +1 -0
- package/dist/__tests__/integration/full-workflow.test.js +213 -0
- package/dist/__tests__/integration/full-workflow.test.js.map +1 -0
- package/dist/__tests__/setup.d.ts +2 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/__tests__/setup.js +24 -0
- package/dist/__tests__/setup.js.map +1 -0
- package/dist/__tests__/unit/utils/config.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/config.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/config.test.js +171 -0
- package/dist/__tests__/unit/utils/config.test.js.map +1 -0
- package/dist/__tests__/unit/utils/frontmatter.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/frontmatter.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/frontmatter.test.js +231 -0
- package/dist/__tests__/unit/utils/frontmatter.test.js.map +1 -0
- package/dist/__tests__/unit/utils/markdown.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/markdown.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/markdown.test.js +296 -0
- package/dist/__tests__/unit/utils/markdown.test.js.map +1 -0
- package/dist/__tests__/unit/utils/projectConfig.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/projectConfig.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/projectConfig.test.js +160 -0
- package/dist/__tests__/unit/utils/projectConfig.test.js.map +1 -0
- package/dist/__tests__/unit/utils/requireAuth.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/requireAuth.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/requireAuth.test.js +96 -0
- package/dist/__tests__/unit/utils/requireAuth.test.js.map +1 -0
- package/dist/__tests__/unit/utils/tokenRefresh.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/tokenRefresh.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/tokenRefresh.test.js +170 -0
- package/dist/__tests__/unit/utils/tokenRefresh.test.js.map +1 -0
- package/dist/__tests__/unit/utils/versionCheck.test.d.ts +2 -0
- package/dist/__tests__/unit/utils/versionCheck.test.d.ts.map +1 -0
- package/dist/__tests__/unit/utils/versionCheck.test.js +105 -0
- package/dist/__tests__/unit/utils/versionCheck.test.js.map +1 -0
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +2 -1
- package/dist/commands/pull.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +28 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +79 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/projectConfig.d.ts.map +1 -1
- package/dist/utils/projectConfig.js +9 -1
- package/dist/utils/projectConfig.js.map +1 -1
- package/dist/utils/pushOperations.d.ts.map +1 -1
- package/dist/utils/pushOperations.js +242 -19
- package/dist/utils/pushOperations.js.map +1 -1
- package/dist/utils/syncOperations.d.ts +2 -1
- package/dist/utils/syncOperations.d.ts.map +1 -1
- package/dist/utils/syncOperations.js +153 -43
- package/dist/utils/syncOperations.js.map +1 -1
- package/dist/utils/versionCheck.d.ts +6 -0
- package/dist/utils/versionCheck.d.ts.map +1 -0
- package/dist/utils/versionCheck.js +61 -0
- package/dist/utils/versionCheck.js.map +1 -0
- package/package.json +2 -1
|
@@ -6,6 +6,7 @@ import { getSupabaseClient } from './supabaseClient.js';
|
|
|
6
6
|
import { loadConfig } from './config.js';
|
|
7
7
|
import { blocknoteToMarkdown } from './markdown.js';
|
|
8
8
|
import { ensureValidToken } from './tokenRefresh.js';
|
|
9
|
+
import { parseFrontmatter, combineFrontmatterAndMarkdown } from './frontmatter.js';
|
|
9
10
|
const BUCKET_NAME = 'user-documents';
|
|
10
11
|
/**
|
|
11
12
|
* Get document path in Supabase Storage
|
|
@@ -23,11 +24,64 @@ function sanitizeFilename(filename) {
|
|
|
23
24
|
.replace(/-+/g, '-') // Collapse multiple hyphens
|
|
24
25
|
.trim();
|
|
25
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Format relative time (e.g., "2 hours ago", "3 days ago")
|
|
29
|
+
*/
|
|
30
|
+
function formatRelativeTime(date) {
|
|
31
|
+
const now = new Date();
|
|
32
|
+
const diffMs = now.getTime() - date.getTime();
|
|
33
|
+
const diffMins = Math.floor(diffMs / 60000);
|
|
34
|
+
const diffHours = Math.floor(diffMs / 3600000);
|
|
35
|
+
const diffDays = Math.floor(diffMs / 86400000);
|
|
36
|
+
if (diffMins < 1)
|
|
37
|
+
return 'just now';
|
|
38
|
+
if (diffMins < 60)
|
|
39
|
+
return `${diffMins} min${diffMins > 1 ? 's' : ''} ago`;
|
|
40
|
+
if (diffHours < 24)
|
|
41
|
+
return `${diffHours} hour${diffHours > 1 ? 's' : ''} ago`;
|
|
42
|
+
if (diffDays < 30)
|
|
43
|
+
return `${diffDays} day${diffDays > 1 ? 's' : ''} ago`;
|
|
44
|
+
const diffMonths = Math.floor(diffDays / 30);
|
|
45
|
+
return `${diffMonths} month${diffMonths > 1 ? 's' : ''} ago`;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Scan local directory for markdown files and build a map by kaimon_id
|
|
49
|
+
*/
|
|
50
|
+
function scanLocalFiles(docsDir) {
|
|
51
|
+
const localMap = new Map();
|
|
52
|
+
if (!fs.existsSync(docsDir)) {
|
|
53
|
+
return localMap;
|
|
54
|
+
}
|
|
55
|
+
const files = fs.readdirSync(docsDir);
|
|
56
|
+
for (const file of files) {
|
|
57
|
+
if (!file.endsWith('.md'))
|
|
58
|
+
continue;
|
|
59
|
+
const filepath = path.join(docsDir, file);
|
|
60
|
+
try {
|
|
61
|
+
const content = fs.readFileSync(filepath, 'utf-8');
|
|
62
|
+
const { frontmatter } = parseFrontmatter(content);
|
|
63
|
+
const stats = fs.statSync(filepath);
|
|
64
|
+
if (frontmatter.kaimon_id) {
|
|
65
|
+
localMap.set(frontmatter.kaimon_id, {
|
|
66
|
+
path: filepath,
|
|
67
|
+
mtime: stats.mtime,
|
|
68
|
+
frontmatter
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
// Skip files that can't be read
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return localMap;
|
|
78
|
+
}
|
|
26
79
|
/**
|
|
27
80
|
* Pull all documents from Kaimon and save as markdown files
|
|
28
81
|
* @param flat - If true, save directly to current folder; if false, create KaimonDocs/ subfolder
|
|
82
|
+
* @param skipConfirmation - If true, skip confirmation prompt
|
|
29
83
|
*/
|
|
30
|
-
export async function pullDocuments(flat = false) {
|
|
84
|
+
export async function pullDocuments(flat = false, skipConfirmation = false) {
|
|
31
85
|
const spinner = ora('Fetching documents from Kaimon...').start();
|
|
32
86
|
try {
|
|
33
87
|
// Ensure token is valid (refresh if needed)
|
|
@@ -45,35 +99,14 @@ export async function pullDocuments(flat = false) {
|
|
|
45
99
|
if (!globalConfig.access_token) {
|
|
46
100
|
throw new Error('Not authenticated');
|
|
47
101
|
}
|
|
48
|
-
spinner.stop();
|
|
49
|
-
// Show confirmation before syncing
|
|
50
|
-
const readline = await import('readline');
|
|
51
|
-
const rl = readline.createInterface({
|
|
52
|
-
input: process.stdin,
|
|
53
|
-
output: process.stdout
|
|
54
|
-
});
|
|
55
102
|
const currentFolder = process.cwd();
|
|
56
103
|
const docsDir = flat
|
|
57
104
|
? currentFolder
|
|
58
105
|
: path.join(currentFolder, 'KaimonDocs');
|
|
59
|
-
console.log(chalk.blue('\n📁 Sync Location'));
|
|
60
|
-
console.log(chalk.gray(` Current folder: ${currentFolder}`));
|
|
61
|
-
console.log(chalk.gray(` Will sync to: ${docsDir}\n`));
|
|
62
|
-
const answer = await new Promise((resolve) => {
|
|
63
|
-
rl.question(chalk.cyan('Continue? (y/N): '), (ans) => {
|
|
64
|
-
rl.close();
|
|
65
|
-
resolve(ans);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
69
|
-
console.log(chalk.yellow('\n⚠️ Sync cancelled.\n'));
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
spinner.start();
|
|
73
106
|
// Get Supabase client
|
|
74
107
|
const supabase = getSupabaseClient();
|
|
75
108
|
// Fetch all user documents from database
|
|
76
|
-
spinner.text = '
|
|
109
|
+
spinner.text = 'Analyzing documents...';
|
|
77
110
|
const { data: documents, error: dbError } = await supabase
|
|
78
111
|
.from('user_documents')
|
|
79
112
|
.select('*')
|
|
@@ -86,7 +119,79 @@ export async function pullDocuments(flat = false) {
|
|
|
86
119
|
console.log(chalk.dim('Create some documents first at kaimon.ai\n'));
|
|
87
120
|
return;
|
|
88
121
|
}
|
|
89
|
-
|
|
122
|
+
// Scan local files to build map
|
|
123
|
+
const localMap = scanLocalFiles(docsDir);
|
|
124
|
+
// Determine what to pull based on timestamps
|
|
125
|
+
const toPull = [];
|
|
126
|
+
const toSkip = [];
|
|
127
|
+
for (const doc of documents) {
|
|
128
|
+
const local = localMap.get(doc.id);
|
|
129
|
+
const remoteTime = new Date(doc.updated_at);
|
|
130
|
+
if (!local) {
|
|
131
|
+
// New document - pull it
|
|
132
|
+
toPull.push({ doc, reason: 'new', remoteTime });
|
|
133
|
+
}
|
|
134
|
+
else if (remoteTime > local.mtime) {
|
|
135
|
+
// Remote is newer - pull it
|
|
136
|
+
toPull.push({ doc, reason: 'updated', localTime: local.mtime, remoteTime });
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
// Local is up-to-date or newer - skip
|
|
140
|
+
toSkip.push(doc);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
spinner.stop();
|
|
144
|
+
// If nothing to pull, we're done
|
|
145
|
+
if (toPull.length === 0) {
|
|
146
|
+
console.log(chalk.green(`\n✅ All ${documents.length} document(s) are up to date!`));
|
|
147
|
+
console.log(chalk.dim('No changes to pull.\n'));
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// Show preview
|
|
151
|
+
console.log(chalk.blue(`\n📄 Found ${toPull.length} document(s) to pull:\n`));
|
|
152
|
+
const newDocs = toPull.filter(item => item.reason === 'new');
|
|
153
|
+
const updatedDocs = toPull.filter(item => item.reason === 'updated');
|
|
154
|
+
if (newDocs.length > 0) {
|
|
155
|
+
console.log(chalk.cyan('New documents:'));
|
|
156
|
+
newDocs.forEach((item, idx) => {
|
|
157
|
+
console.log(chalk.gray(` ${idx + 1}. ${item.doc.title} (created ${formatRelativeTime(item.remoteTime)})`));
|
|
158
|
+
});
|
|
159
|
+
console.log();
|
|
160
|
+
}
|
|
161
|
+
if (updatedDocs.length > 0) {
|
|
162
|
+
console.log(chalk.cyan('Updated documents:'));
|
|
163
|
+
updatedDocs.forEach((item, idx) => {
|
|
164
|
+
const localTime = formatRelativeTime(item.localTime);
|
|
165
|
+
const remoteTime = formatRelativeTime(item.remoteTime);
|
|
166
|
+
console.log(chalk.gray(` ${idx + 1}. ${item.doc.title} (Local: ${localTime}, Remote: ${remoteTime})`));
|
|
167
|
+
});
|
|
168
|
+
console.log();
|
|
169
|
+
}
|
|
170
|
+
if (toSkip.length > 0) {
|
|
171
|
+
console.log(chalk.dim(`⏭️ ${toSkip.length} document(s) already up to date\n`));
|
|
172
|
+
}
|
|
173
|
+
console.log(chalk.blue('📁 Sync Location'));
|
|
174
|
+
console.log(chalk.gray(` Will sync to: ${flat ? '.' : './KaimonDocs'}\n`));
|
|
175
|
+
// Show confirmation before syncing (unless --yes flag)
|
|
176
|
+
if (!skipConfirmation) {
|
|
177
|
+
const readline = await import('readline');
|
|
178
|
+
const rl = readline.createInterface({
|
|
179
|
+
input: process.stdin,
|
|
180
|
+
output: process.stdout
|
|
181
|
+
});
|
|
182
|
+
const answer = await new Promise((resolve) => {
|
|
183
|
+
rl.question(chalk.cyan('Continue? (y/N): '), (ans) => {
|
|
184
|
+
rl.close();
|
|
185
|
+
resolve(ans);
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
189
|
+
console.log(chalk.yellow('\n⚠️ Pull cancelled.\n'));
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
spinner.start();
|
|
194
|
+
spinner.text = `Pulling ${toPull.length} document(s)...`;
|
|
90
195
|
// Create docs directory if it doesn't exist
|
|
91
196
|
if (!fs.existsSync(docsDir)) {
|
|
92
197
|
fs.mkdirSync(docsDir, { recursive: true });
|
|
@@ -94,8 +199,9 @@ export async function pullDocuments(flat = false) {
|
|
|
94
199
|
let successCount = 0;
|
|
95
200
|
let errorCount = 0;
|
|
96
201
|
const errors = [];
|
|
97
|
-
// Download
|
|
98
|
-
for (const
|
|
202
|
+
// Download only documents in toPull array
|
|
203
|
+
for (const item of toPull) {
|
|
204
|
+
const doc = item.doc;
|
|
99
205
|
try {
|
|
100
206
|
const documentPath = getDocumentPath(doc.user_id, doc.id);
|
|
101
207
|
// Download from Supabase Storage
|
|
@@ -105,7 +211,8 @@ export async function pullDocuments(flat = false) {
|
|
|
105
211
|
if (downloadError) {
|
|
106
212
|
// Handle missing file gracefully
|
|
107
213
|
if (downloadError.message.includes('not found')) {
|
|
108
|
-
|
|
214
|
+
errors.push(`${doc.title}: file not found in storage`);
|
|
215
|
+
errorCount++;
|
|
109
216
|
continue;
|
|
110
217
|
}
|
|
111
218
|
throw downloadError;
|
|
@@ -122,25 +229,26 @@ export async function pullDocuments(flat = false) {
|
|
|
122
229
|
markdown = content.content;
|
|
123
230
|
}
|
|
124
231
|
else {
|
|
125
|
-
|
|
232
|
+
errors.push(`${doc.title}: unsupported format`);
|
|
233
|
+
errorCount++;
|
|
126
234
|
continue;
|
|
127
235
|
}
|
|
128
236
|
// Generate filename
|
|
129
237
|
const filename = sanitizeFilename(doc.title) + '.md';
|
|
130
238
|
const filepath = path.join(docsDir, filename);
|
|
131
|
-
//
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
'',
|
|
140
|
-
markdown
|
|
141
|
-
].join('\n');
|
|
239
|
+
// Create frontmatter
|
|
240
|
+
const frontmatterData = {
|
|
241
|
+
title: doc.title,
|
|
242
|
+
kaimon_id: doc.id,
|
|
243
|
+
created_at: doc.created_at,
|
|
244
|
+
updated_at: doc.updated_at
|
|
245
|
+
};
|
|
246
|
+
const fullContent = combineFrontmatterAndMarkdown(frontmatterData, markdown);
|
|
142
247
|
// Write to file
|
|
143
|
-
fs.writeFileSync(filepath,
|
|
248
|
+
fs.writeFileSync(filepath, fullContent, 'utf-8');
|
|
249
|
+
// Update file mtime to match remote updated_at (for accurate next sync)
|
|
250
|
+
const remoteTime = new Date(doc.updated_at);
|
|
251
|
+
fs.utimesSync(filepath, remoteTime, remoteTime);
|
|
144
252
|
successCount++;
|
|
145
253
|
}
|
|
146
254
|
catch (error) {
|
|
@@ -149,13 +257,15 @@ export async function pullDocuments(flat = false) {
|
|
|
149
257
|
}
|
|
150
258
|
}
|
|
151
259
|
// Show results
|
|
152
|
-
|
|
153
|
-
|
|
260
|
+
spinner.succeed(chalk.green(`✅ Pulled ${successCount} document(s)`));
|
|
261
|
+
if (toSkip.length > 0) {
|
|
262
|
+
console.log(chalk.dim(`⏭️ Skipped ${toSkip.length} up-to-date document(s)`));
|
|
263
|
+
}
|
|
154
264
|
if (errorCount > 0) {
|
|
155
265
|
console.log(chalk.yellow(`\n⚠️ ${errorCount} error(s) occurred:`));
|
|
156
266
|
errors.forEach(err => console.log(chalk.dim(` - ${err}`)));
|
|
157
267
|
}
|
|
158
|
-
console.log(
|
|
268
|
+
console.log();
|
|
159
269
|
}
|
|
160
270
|
catch (error) {
|
|
161
271
|
spinner.fail(chalk.red('Failed to pull documents'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncOperations.js","sourceRoot":"","sources":["../../src/utils/syncOperations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"syncOperations.js","sourceRoot":"","sources":["../../src/utils/syncOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionCheck.d.ts","sourceRoot":"","sources":["../../src/utils/versionCheck.ts"],"names":[],"mappings":"AAsCA;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAqBlD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { dirname, join } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = dirname(__filename);
|
|
7
|
+
/**
|
|
8
|
+
* Compare two semantic versions
|
|
9
|
+
* Returns: -1 if v1 < v2, 0 if equal, 1 if v1 > v2
|
|
10
|
+
*/
|
|
11
|
+
function compareVersions(v1, v2) {
|
|
12
|
+
const parts1 = v1.split('.').map(Number);
|
|
13
|
+
const parts2 = v2.split('.').map(Number);
|
|
14
|
+
for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
|
|
15
|
+
const p1 = parts1[i] || 0;
|
|
16
|
+
const p2 = parts2[i] || 0;
|
|
17
|
+
if (p1 > p2)
|
|
18
|
+
return 1;
|
|
19
|
+
if (p1 < p2)
|
|
20
|
+
return -1;
|
|
21
|
+
}
|
|
22
|
+
return 0;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the current CLI version from package.json
|
|
26
|
+
*/
|
|
27
|
+
function getCurrentVersion() {
|
|
28
|
+
try {
|
|
29
|
+
const packagePath = join(__dirname, '../../package.json');
|
|
30
|
+
const packageData = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
31
|
+
return packageData.version || '0.0.0';
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
return '0.0.0';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if current version is outdated and warn user
|
|
39
|
+
* Minimum version is read from package.json
|
|
40
|
+
*/
|
|
41
|
+
export async function checkVersion() {
|
|
42
|
+
try {
|
|
43
|
+
const currentVersion = getCurrentVersion();
|
|
44
|
+
const packagePath = join(__dirname, '../../package.json');
|
|
45
|
+
const packageData = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
46
|
+
const minimumVersion = packageData.minimumVersion || packageData.version;
|
|
47
|
+
if (compareVersions(currentVersion, minimumVersion) < 0) {
|
|
48
|
+
console.error(chalk.yellow(`\n⚠️ Update Available\n`) +
|
|
49
|
+
chalk.gray(`Your kaimon-cli version (${currentVersion}) is outdated.\n`) +
|
|
50
|
+
chalk.gray(`Please upgrade to the latest version:\n\n`) +
|
|
51
|
+
chalk.cyan(` npm install -g kaimon-cli@latest\n`) +
|
|
52
|
+
chalk.gray(`This version may have bugs or missing features.\n`));
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
// Silently fail if version check encounters issues
|
|
58
|
+
// Don't block CLI execution on version check errors
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=versionCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionCheck.js","sourceRoot":"","sources":["../../src/utils/versionCheck.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;GAGG;AACH,SAAS,eAAe,CAAC,EAAU,EAAE,EAAU;IAC7C,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC;QACtB,IAAI,EAAE,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC;QAEzE,IAAI,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,4BAA4B,cAAc,kBAAkB,CAAC;gBACxE,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC;gBACvD,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC;gBAClD,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAClE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mDAAmD;QACnD,oDAAoD;IACtD,CAAC;AACH,CAAC"}
|