@convext/cli 0.3.2 → 1.0.7
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/api.js +30 -47
- package/dist/api.js.map +1 -1
- package/dist/cli.js +45 -50
- package/dist/cli.js.map +1 -1
- package/dist/commands/check.js +26 -32
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/init.js +72 -78
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +48 -56
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/mcp.js +80 -87
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/sync.js +73 -79
- package/dist/commands/sync.js.map +1 -1
- package/dist/config.js +14 -20
- package/dist/config.js.map +1 -1
- package/dist/index.js +6 -25
- package/dist/index.js.map +1 -1
- package/dist/utils/fileManager.js +13 -17
- package/dist/utils/fileManager.js.map +1 -1
- package/dist/utils/prompts.js +10 -16
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/scanner.js +30 -33
- package/dist/utils/scanner.js.map +1 -1
- package/dist/utils/versionCheck.d.ts.map +1 -1
- package/dist/utils/versionCheck.js +32 -27
- package/dist/utils/versionCheck.js.map +1 -1
- package/package.json +2 -1
package/dist/commands/sync.js
CHANGED
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const ora_1 = __importDefault(require("ora"));
|
|
11
|
-
const api_js_1 = require("../api.js");
|
|
12
|
-
const fileManager_js_1 = require("../utils/fileManager.js");
|
|
13
|
-
const prompts_js_1 = require("../utils/prompts.js");
|
|
14
|
-
const scanner_js_1 = require("../utils/scanner.js");
|
|
15
|
-
const init_js_1 = require("./init.js");
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import chalk from "chalk";
|
|
4
|
+
import ora from "ora";
|
|
5
|
+
import { getProjectContext, getProjectMarkdown, assignRuleSets, } from "../api.js";
|
|
6
|
+
import { backupFile, ensureParentDir } from "../utils/fileManager.js";
|
|
7
|
+
import { promptConfirm, promptCheckbox } from "../utils/prompts.js";
|
|
8
|
+
import { scanRepository } from "../utils/scanner.js";
|
|
9
|
+
import { initCommand } from "./init.js";
|
|
16
10
|
function loadLocalProjectConfig() {
|
|
17
|
-
const configPath =
|
|
18
|
-
if (!
|
|
11
|
+
const configPath = join(process.cwd(), ".convext", "config.json");
|
|
12
|
+
if (!existsSync(configPath)) {
|
|
19
13
|
return null;
|
|
20
14
|
}
|
|
21
15
|
try {
|
|
22
|
-
const content =
|
|
16
|
+
const content = readFileSync(configPath, "utf-8");
|
|
23
17
|
const config = JSON.parse(content);
|
|
24
18
|
if (config.projectId && typeof config.projectId === "number") {
|
|
25
19
|
return config;
|
|
@@ -48,7 +42,7 @@ const DOTFILE_CONFIGS = {
|
|
|
48
42
|
},
|
|
49
43
|
};
|
|
50
44
|
function ensureDirectoryExists(filePath) {
|
|
51
|
-
|
|
45
|
+
ensureParentDir(filePath);
|
|
52
46
|
}
|
|
53
47
|
async function maybeAssignRuleSets(projectId, context, insights) {
|
|
54
48
|
const available = dedupeRuleSets([
|
|
@@ -56,7 +50,7 @@ async function maybeAssignRuleSets(projectId, context, insights) {
|
|
|
56
50
|
...(context.available_rule_sets?.global ?? []),
|
|
57
51
|
]);
|
|
58
52
|
if (available.length === 0) {
|
|
59
|
-
console.log(
|
|
53
|
+
console.log(chalk.yellow("No rule sets available. Create some in the Convext UI first."));
|
|
60
54
|
return false;
|
|
61
55
|
}
|
|
62
56
|
const suggestions = suggestRuleSets(available, insights);
|
|
@@ -66,27 +60,27 @@ async function maybeAssignRuleSets(projectId, context, insights) {
|
|
|
66
60
|
.map((rs, idx) => suggestedSlugs.has(rs.slug) ? idx : -1)
|
|
67
61
|
.filter(idx => idx >= 0);
|
|
68
62
|
// Use checkbox for multi-select with arrow keys and spacebar
|
|
69
|
-
const selection = await
|
|
70
|
-
label: `${rs.name}${rs.slug ?
|
|
63
|
+
const selection = await promptCheckbox("Select rule sets to assign (↑↓ navigate, space toggle, enter confirm):", available.map(rs => ({
|
|
64
|
+
label: `${rs.name}${rs.slug ? chalk.gray(` (${rs.slug})`) : ""}`,
|
|
71
65
|
value: rs,
|
|
72
66
|
})), defaultSelected);
|
|
73
67
|
if (selection.length === 0) {
|
|
74
|
-
console.log(
|
|
68
|
+
console.log(chalk.gray("No rule sets selected."));
|
|
75
69
|
return false;
|
|
76
70
|
}
|
|
77
71
|
const slugs = selection
|
|
78
72
|
.map((rs) => rs.slug)
|
|
79
73
|
.filter((slug) => Boolean(slug));
|
|
80
74
|
if (slugs.length === 0) {
|
|
81
|
-
console.log(
|
|
75
|
+
console.log(chalk.red("No valid rule set slugs selected."));
|
|
82
76
|
return false;
|
|
83
77
|
}
|
|
84
|
-
const assignment = await
|
|
78
|
+
const assignment = await assignRuleSets(projectId, slugs);
|
|
85
79
|
if (assignment.assigned > 0) {
|
|
86
|
-
console.log(
|
|
80
|
+
console.log(chalk.green(`\n✓ Assigned ${assignment.assigned} rule set(s): ${assignment.rule_sets.map((rs) => rs.name).join(", ")}`));
|
|
87
81
|
return true;
|
|
88
82
|
}
|
|
89
|
-
console.log(
|
|
83
|
+
console.log(chalk.gray("No new rule sets were assigned."));
|
|
90
84
|
return false;
|
|
91
85
|
}
|
|
92
86
|
function suggestRuleSets(available, insights) {
|
|
@@ -117,15 +111,15 @@ function dedupeRuleSets(ruleSets) {
|
|
|
117
111
|
return result;
|
|
118
112
|
}
|
|
119
113
|
function hasChanges(filePath, newContent) {
|
|
120
|
-
if (!
|
|
114
|
+
if (!existsSync(filePath)) {
|
|
121
115
|
return true;
|
|
122
116
|
}
|
|
123
|
-
const existing =
|
|
117
|
+
const existing = readFileSync(filePath, "utf-8");
|
|
124
118
|
return existing !== newContent;
|
|
125
119
|
}
|
|
126
|
-
async function syncCommand(options) {
|
|
120
|
+
export async function syncCommand(options) {
|
|
127
121
|
const verbose = options.verbose ?? false;
|
|
128
|
-
const log = (msg) => verbose && console.log(
|
|
122
|
+
const log = (msg) => verbose && console.log(chalk.gray(`[verbose] ${msg}`));
|
|
129
123
|
// Check for local project config first
|
|
130
124
|
const localConfig = loadLocalProjectConfig();
|
|
131
125
|
let projectId = options.projectId;
|
|
@@ -135,11 +129,11 @@ async function syncCommand(options) {
|
|
|
135
129
|
}
|
|
136
130
|
// If no project ID, prompt to initialize
|
|
137
131
|
if (!projectId) {
|
|
138
|
-
console.log(
|
|
139
|
-
console.log(
|
|
140
|
-
const shouldInit = await
|
|
132
|
+
console.log(chalk.yellow("\nNo project configured for this directory."));
|
|
133
|
+
console.log(chalk.gray("A .convext.json file links this repo to your Convext project.\n"));
|
|
134
|
+
const shouldInit = await promptConfirm("Would you like to initialize/connect this project now?", true);
|
|
141
135
|
if (shouldInit) {
|
|
142
|
-
await
|
|
136
|
+
await initCommand({});
|
|
143
137
|
// Re-load the config after init
|
|
144
138
|
const newConfig = loadLocalProjectConfig();
|
|
145
139
|
if (newConfig) {
|
|
@@ -147,58 +141,58 @@ async function syncCommand(options) {
|
|
|
147
141
|
console.log(""); // Add spacing
|
|
148
142
|
}
|
|
149
143
|
else {
|
|
150
|
-
console.log(
|
|
151
|
-
console.log(`Run ${
|
|
144
|
+
console.log(chalk.yellow("\nProject initialization was cancelled or failed."));
|
|
145
|
+
console.log(`Run ${chalk.cyan("convext init")} to set up the project manually.`);
|
|
152
146
|
return;
|
|
153
147
|
}
|
|
154
148
|
}
|
|
155
149
|
else {
|
|
156
|
-
console.log(
|
|
157
|
-
console.log(
|
|
150
|
+
console.log(chalk.gray("\nTo initialize later, run: ") + chalk.cyan("convext init"));
|
|
151
|
+
console.log(chalk.gray("Or specify a project ID: ") + chalk.cyan("convext sync --project <id>"));
|
|
158
152
|
return;
|
|
159
153
|
}
|
|
160
154
|
}
|
|
161
|
-
const spinner = (
|
|
155
|
+
const spinner = ora("Fetching engineering rules and standards...").start();
|
|
162
156
|
try {
|
|
163
157
|
log("Scanning repository for insights...");
|
|
164
|
-
const insights =
|
|
158
|
+
const insights = scanRepository();
|
|
165
159
|
log(`Found languages: ${Array.from(insights.languages).join(", ") || "none"}`);
|
|
166
160
|
log(`Found frameworks: ${Array.from(insights.frameworks).join(", ") || "none"}`);
|
|
167
161
|
let projectMeta;
|
|
168
162
|
spinner.text = "Fetching project context...";
|
|
169
163
|
log(`Fetching context for project ID: ${projectId}`);
|
|
170
164
|
try {
|
|
171
|
-
projectMeta = await
|
|
165
|
+
projectMeta = await getProjectContext(projectId);
|
|
172
166
|
log(`Project context response: ${JSON.stringify(projectMeta, null, 2)}`);
|
|
173
167
|
// Check if API returned an error (project not found)
|
|
174
168
|
if (projectMeta.error) {
|
|
175
169
|
spinner.fail("Project not found on server");
|
|
176
|
-
console.log(
|
|
177
|
-
console.log(
|
|
178
|
-
const shouldReinit = await
|
|
170
|
+
console.log(chalk.yellow(`\nProject ID ${projectId} no longer exists on the server.`));
|
|
171
|
+
console.log(chalk.gray("This can happen if the project was deleted or the database was reset.\n"));
|
|
172
|
+
const shouldReinit = await promptConfirm("Would you like to re-register this project?", true);
|
|
179
173
|
if (shouldReinit) {
|
|
180
174
|
// Delete the old config and run init
|
|
181
|
-
const configPath =
|
|
175
|
+
const configPath = join(process.cwd(), ".convext", "config.json");
|
|
182
176
|
const { unlinkSync } = await import("node:fs");
|
|
183
177
|
try {
|
|
184
178
|
unlinkSync(configPath);
|
|
185
179
|
}
|
|
186
180
|
catch { /* ignore */ }
|
|
187
|
-
await
|
|
181
|
+
await initCommand({});
|
|
188
182
|
// Re-load the config after init
|
|
189
183
|
const newConfig = loadLocalProjectConfig();
|
|
190
184
|
if (newConfig) {
|
|
191
185
|
projectId = newConfig.projectId;
|
|
192
186
|
spinner.start("Fetching project context...");
|
|
193
|
-
projectMeta = await
|
|
187
|
+
projectMeta = await getProjectContext(projectId);
|
|
194
188
|
}
|
|
195
189
|
else {
|
|
196
|
-
console.log(
|
|
190
|
+
console.log(chalk.yellow("\nProject registration was cancelled."));
|
|
197
191
|
return;
|
|
198
192
|
}
|
|
199
193
|
}
|
|
200
194
|
else {
|
|
201
|
-
console.log(
|
|
195
|
+
console.log(chalk.gray("\nTo re-register later, delete .convext.json and run: ") + chalk.cyan("convext init"));
|
|
202
196
|
return;
|
|
203
197
|
}
|
|
204
198
|
}
|
|
@@ -212,24 +206,24 @@ async function syncCommand(options) {
|
|
|
212
206
|
log(`Project has ${rulesCount} rules and ${standardsCount} standards`);
|
|
213
207
|
spinner.succeed(`Fetched project context (${rulesCount} rules, ${standardsCount} standards)`);
|
|
214
208
|
if (insights.aiFiles.length > 0) {
|
|
215
|
-
console.log(
|
|
209
|
+
console.log(chalk.gray(`Detected existing AI files:\n - ${insights.aiFiles.join("\n - ")}`));
|
|
216
210
|
}
|
|
217
211
|
// Check if project has explicitly assigned rulesets (not just inheriting globals)
|
|
218
212
|
const assignedRuleSets = projectMeta.assigned_rule_sets ?? [];
|
|
219
213
|
const hasExplicitAssignments = assignedRuleSets.length > 0;
|
|
220
214
|
if (!hasExplicitAssignments && projectId && projectMeta) {
|
|
221
|
-
console.log(
|
|
222
|
-
console.log(
|
|
215
|
+
console.log(chalk.yellow("\nNo rule sets are explicitly assigned to this project."));
|
|
216
|
+
console.log(chalk.gray("Select rule sets based on your tech stack:\n"));
|
|
223
217
|
const assigned = await maybeAssignRuleSets(projectId, projectMeta, insights);
|
|
224
218
|
if (assigned) {
|
|
225
219
|
spinner.start("Reloading project context...");
|
|
226
|
-
projectMeta = await
|
|
220
|
+
projectMeta = await getProjectContext(projectId);
|
|
227
221
|
spinner.succeed("Rule sets assigned and context refreshed");
|
|
228
222
|
}
|
|
229
223
|
else {
|
|
230
224
|
// User declined - don't use global rules by default
|
|
231
|
-
console.log(
|
|
232
|
-
console.log(
|
|
225
|
+
console.log(chalk.yellow("\nNo rule sets selected. Skipping file generation."));
|
|
226
|
+
console.log(chalk.gray("Run 'convext sync' again to select rule sets, or assign them in the Convext UI."));
|
|
233
227
|
return;
|
|
234
228
|
}
|
|
235
229
|
}
|
|
@@ -244,40 +238,40 @@ async function syncCommand(options) {
|
|
|
244
238
|
log("Fetching pre-rendered markdown from server...");
|
|
245
239
|
let serverMarkdown;
|
|
246
240
|
try {
|
|
247
|
-
const contextResponse = await
|
|
241
|
+
const contextResponse = await getProjectMarkdown(projectMeta.project?.slug || String(projectId));
|
|
248
242
|
serverMarkdown = contextResponse.markdown;
|
|
249
243
|
log(`Got ${contextResponse.rules_count} rules, ${contextResponse.standards_count} standards`);
|
|
250
244
|
}
|
|
251
245
|
catch (error) {
|
|
252
246
|
// Fallback: if API endpoint not available, we can't sync
|
|
253
|
-
console.error(
|
|
247
|
+
console.error(chalk.red("Failed to fetch project context from server"));
|
|
254
248
|
throw error;
|
|
255
249
|
}
|
|
256
250
|
for (const format of formats) {
|
|
257
251
|
const config = DOTFILE_CONFIGS[format];
|
|
258
252
|
if (!config)
|
|
259
253
|
continue;
|
|
260
|
-
const filePath =
|
|
254
|
+
const filePath = join(cwd, config.filename);
|
|
261
255
|
const content = config.transform(serverMarkdown);
|
|
262
256
|
if (options.dryRun) {
|
|
263
|
-
console.log(
|
|
264
|
-
console.log(
|
|
257
|
+
console.log(chalk.cyan(`\n[DRY RUN] Would write to ${config.filename}:`));
|
|
258
|
+
console.log(chalk.gray("─".repeat(60)));
|
|
265
259
|
console.log(content.slice(0, 500) + (content.length > 500 ? "\n..." : ""));
|
|
266
|
-
console.log(
|
|
260
|
+
console.log(chalk.gray("─".repeat(60)));
|
|
267
261
|
results.push({ file: config.filename, status: "unchanged" });
|
|
268
262
|
}
|
|
269
263
|
else {
|
|
270
264
|
const changed = hasChanges(filePath, content);
|
|
271
265
|
if (changed) {
|
|
272
266
|
ensureDirectoryExists(filePath);
|
|
273
|
-
const backupPath =
|
|
267
|
+
const backupPath = backupFile(filePath);
|
|
274
268
|
if (backupPath) {
|
|
275
|
-
console.log(
|
|
269
|
+
console.log(chalk.gray(` ↻ Backed up existing ${config.filename} to ${backupPath}`));
|
|
276
270
|
}
|
|
277
|
-
|
|
271
|
+
writeFileSync(filePath, content, "utf-8");
|
|
278
272
|
results.push({
|
|
279
273
|
file: config.filename,
|
|
280
|
-
status:
|
|
274
|
+
status: existsSync(filePath) ? "updated" : "created",
|
|
281
275
|
});
|
|
282
276
|
}
|
|
283
277
|
else {
|
|
@@ -286,41 +280,41 @@ async function syncCommand(options) {
|
|
|
286
280
|
}
|
|
287
281
|
}
|
|
288
282
|
// Summary
|
|
289
|
-
console.log("\n" +
|
|
283
|
+
console.log("\n" + chalk.bold("Sync Results:"));
|
|
290
284
|
for (const result of results) {
|
|
291
285
|
const icon = result.status === "created"
|
|
292
|
-
?
|
|
286
|
+
? chalk.green("✓")
|
|
293
287
|
: result.status === "updated"
|
|
294
|
-
?
|
|
295
|
-
:
|
|
288
|
+
? chalk.yellow("↻")
|
|
289
|
+
: chalk.gray("○");
|
|
296
290
|
const status = result.status === "created"
|
|
297
|
-
?
|
|
291
|
+
? chalk.green("created")
|
|
298
292
|
: result.status === "updated"
|
|
299
|
-
?
|
|
300
|
-
:
|
|
293
|
+
? chalk.yellow("updated")
|
|
294
|
+
: chalk.gray("unchanged");
|
|
301
295
|
console.log(` ${icon} ${result.file} - ${status}`);
|
|
302
296
|
}
|
|
303
297
|
const changedCount = results.filter((r) => r.status !== "unchanged").length;
|
|
304
298
|
if (changedCount > 0 && !options.dryRun) {
|
|
305
|
-
console.log("\n" +
|
|
299
|
+
console.log("\n" + chalk.green(`✓ Synced ${changedCount} file(s) with Convext`));
|
|
306
300
|
}
|
|
307
301
|
else if (options.dryRun) {
|
|
308
|
-
console.log("\n" +
|
|
302
|
+
console.log("\n" + chalk.cyan("Dry run complete - no files were modified"));
|
|
309
303
|
}
|
|
310
304
|
else {
|
|
311
|
-
console.log("\n" +
|
|
305
|
+
console.log("\n" + chalk.gray("All files are up to date"));
|
|
312
306
|
}
|
|
313
307
|
}
|
|
314
308
|
catch (error) {
|
|
315
309
|
spinner.fail("Sync failed");
|
|
316
310
|
if (error instanceof Error) {
|
|
317
|
-
console.error(
|
|
311
|
+
console.error(chalk.red(`Error: ${error.message}`));
|
|
318
312
|
if (verbose) {
|
|
319
|
-
console.error(
|
|
313
|
+
console.error(chalk.gray(`Stack trace:\n${error.stack}`));
|
|
320
314
|
}
|
|
321
315
|
}
|
|
322
316
|
else {
|
|
323
|
-
console.error(
|
|
317
|
+
console.error(chalk.red(`Unknown error: ${String(error)}`));
|
|
324
318
|
}
|
|
325
319
|
process.exit(1);
|
|
326
320
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -1,38 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.getApiUrl = getApiUrl;
|
|
7
|
-
const node_fs_1 = require("node:fs");
|
|
8
|
-
const node_os_1 = require("node:os");
|
|
9
|
-
const node_path_1 = require("node:path");
|
|
10
|
-
const CONFIG_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), ".convext");
|
|
11
|
-
const CONFIG_FILE = (0, node_path_1.join)(CONFIG_DIR, "config.json");
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
const CONFIG_DIR = join(homedir(), ".convext");
|
|
5
|
+
const CONFIG_FILE = join(CONFIG_DIR, "config.json");
|
|
12
6
|
const DEFAULT_CONFIG = {
|
|
13
7
|
apiUrl: "https://convext.app",
|
|
14
8
|
};
|
|
15
|
-
function loadConfig() {
|
|
16
|
-
if (!
|
|
9
|
+
export function loadConfig() {
|
|
10
|
+
if (!existsSync(CONFIG_FILE)) {
|
|
17
11
|
return DEFAULT_CONFIG;
|
|
18
12
|
}
|
|
19
13
|
try {
|
|
20
|
-
const content =
|
|
14
|
+
const content = readFileSync(CONFIG_FILE, "utf-8");
|
|
21
15
|
return { ...DEFAULT_CONFIG, ...JSON.parse(content) };
|
|
22
16
|
}
|
|
23
17
|
catch {
|
|
24
18
|
return DEFAULT_CONFIG;
|
|
25
19
|
}
|
|
26
20
|
}
|
|
27
|
-
function saveConfig(config) {
|
|
28
|
-
if (!
|
|
29
|
-
|
|
21
|
+
export function saveConfig(config) {
|
|
22
|
+
if (!existsSync(CONFIG_DIR)) {
|
|
23
|
+
mkdirSync(CONFIG_DIR, { recursive: true });
|
|
30
24
|
}
|
|
31
25
|
const existing = loadConfig();
|
|
32
26
|
const merged = { ...existing, ...config };
|
|
33
|
-
|
|
27
|
+
writeFileSync(CONFIG_FILE, JSON.stringify(merged, null, 2));
|
|
34
28
|
}
|
|
35
|
-
function getApiToken() {
|
|
29
|
+
export function getApiToken() {
|
|
36
30
|
// Check environment variable first
|
|
37
31
|
if (process.env.CONVEXT_TOKEN) {
|
|
38
32
|
return process.env.CONVEXT_TOKEN;
|
|
@@ -41,7 +35,7 @@ function getApiToken() {
|
|
|
41
35
|
const config = loadConfig();
|
|
42
36
|
return config.apiToken;
|
|
43
37
|
}
|
|
44
|
-
function getApiUrl() {
|
|
38
|
+
export function getApiUrl() {
|
|
45
39
|
// Check environment variable first
|
|
46
40
|
if (process.env.CONVEXT_URL) {
|
|
47
41
|
return process.env.CONVEXT_URL;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,MAAM,cAAc,GAAW;IAC7B,MAAM,EAAE,qBAAqB;CAC9B,CAAC;AAEF,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAuB;IAChD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1C,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,mCAAmC;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACnC,CAAC;IAED,oBAAoB;IACpB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,mCAAmC;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,27 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logoutCommand = exports.loginCommand = exports.initCommand = exports.checkCommand = exports.syncCommand = exports.ApiError = exports.getEngineeringContext = exports.registerProject = exports.getProjectContext = exports.getRuleSets = exports.getStandards = exports.getRules = exports.getApiUrl = exports.getApiToken = exports.saveConfig = exports.loadConfig = void 0;
|
|
4
1
|
// Code Charter CLI - main exports for programmatic use
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Object.defineProperty(exports, "getRules", { enumerable: true, get: function () { return api_js_1.getRules; } });
|
|
12
|
-
Object.defineProperty(exports, "getStandards", { enumerable: true, get: function () { return api_js_1.getStandards; } });
|
|
13
|
-
Object.defineProperty(exports, "getRuleSets", { enumerable: true, get: function () { return api_js_1.getRuleSets; } });
|
|
14
|
-
Object.defineProperty(exports, "getProjectContext", { enumerable: true, get: function () { return api_js_1.getProjectContext; } });
|
|
15
|
-
Object.defineProperty(exports, "registerProject", { enumerable: true, get: function () { return api_js_1.registerProject; } });
|
|
16
|
-
Object.defineProperty(exports, "getEngineeringContext", { enumerable: true, get: function () { return api_js_1.getEngineeringContext; } });
|
|
17
|
-
Object.defineProperty(exports, "ApiError", { enumerable: true, get: function () { return api_js_1.ApiError; } });
|
|
18
|
-
var sync_js_1 = require("./commands/sync.js");
|
|
19
|
-
Object.defineProperty(exports, "syncCommand", { enumerable: true, get: function () { return sync_js_1.syncCommand; } });
|
|
20
|
-
var check_js_1 = require("./commands/check.js");
|
|
21
|
-
Object.defineProperty(exports, "checkCommand", { enumerable: true, get: function () { return check_js_1.checkCommand; } });
|
|
22
|
-
var init_js_1 = require("./commands/init.js");
|
|
23
|
-
Object.defineProperty(exports, "initCommand", { enumerable: true, get: function () { return init_js_1.initCommand; } });
|
|
24
|
-
var login_js_1 = require("./commands/login.js");
|
|
25
|
-
Object.defineProperty(exports, "loginCommand", { enumerable: true, get: function () { return login_js_1.loginCommand; } });
|
|
26
|
-
Object.defineProperty(exports, "logoutCommand", { enumerable: true, get: function () { return login_js_1.logoutCommand; } });
|
|
2
|
+
export { loadConfig, saveConfig, getApiToken, getApiUrl } from "./config.js";
|
|
3
|
+
export { getRules, getStandards, getRuleSets, getProjectContext, registerProject, getEngineeringContext, ApiError, } from "./api.js";
|
|
4
|
+
export { syncCommand } from "./commands/sync.js";
|
|
5
|
+
export { checkCommand } from "./commands/check.js";
|
|
6
|
+
export { initCommand } from "./commands/init.js";
|
|
7
|
+
export { loginCommand, logoutCommand } from "./commands/login.js";
|
|
27
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,QAAQ,GAKT,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,35 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ensureParentDir = ensureParentDir;
|
|
4
|
-
exports.backupFile = backupFile;
|
|
5
|
-
const node_fs_1 = require("node:fs");
|
|
6
|
-
const node_path_1 = require("node:path");
|
|
1
|
+
import { existsSync, mkdirSync, renameSync, statSync } from "node:fs";
|
|
2
|
+
import { dirname, join, resolve } from "node:path";
|
|
7
3
|
function ensureDir(path) {
|
|
8
|
-
if (!
|
|
9
|
-
|
|
4
|
+
if (!existsSync(path)) {
|
|
5
|
+
mkdirSync(path, { recursive: true });
|
|
10
6
|
}
|
|
11
7
|
}
|
|
12
|
-
function ensureParentDir(filePath) {
|
|
13
|
-
const dir =
|
|
8
|
+
export function ensureParentDir(filePath) {
|
|
9
|
+
const dir = dirname(filePath);
|
|
14
10
|
ensureDir(dir);
|
|
15
11
|
}
|
|
16
|
-
function backupFile(filePath) {
|
|
17
|
-
const absolutePath =
|
|
18
|
-
if (!
|
|
12
|
+
export function backupFile(filePath) {
|
|
13
|
+
const absolutePath = resolve(filePath);
|
|
14
|
+
if (!existsSync(absolutePath)) {
|
|
19
15
|
return null;
|
|
20
16
|
}
|
|
21
|
-
const stats =
|
|
17
|
+
const stats = statSync(absolutePath);
|
|
22
18
|
if (!stats.isFile()) {
|
|
23
19
|
return null;
|
|
24
20
|
}
|
|
25
21
|
const projectRoot = process.cwd();
|
|
26
|
-
const backupsDir =
|
|
22
|
+
const backupsDir = join(projectRoot, ".convext", "backups");
|
|
27
23
|
ensureDir(backupsDir);
|
|
28
24
|
const fileName = absolutePath.replace(projectRoot, "").replace(/^\/+/, "").replace(/\//g, "__");
|
|
29
25
|
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
30
|
-
const backupPath =
|
|
26
|
+
const backupPath = join(backupsDir, `${fileName}.${timestamp}.bak`);
|
|
31
27
|
ensureParentDir(backupPath);
|
|
32
|
-
|
|
28
|
+
renameSync(absolutePath, backupPath);
|
|
33
29
|
return backupPath;
|
|
34
30
|
}
|
|
35
31
|
//# sourceMappingURL=fileManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileManager.js","sourceRoot":"","sources":["../../src/utils/fileManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fileManager.js","sourceRoot":"","sources":["../../src/utils/fileManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9B,SAAS,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC5D,SAAS,CAAC,UAAU,CAAC,CAAC;IAEtB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,IAAI,SAAS,MAAM,CAAC,CAAC;IAEpE,eAAe,CAAC,UAAU,CAAC,CAAC;IAC5B,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACrC,OAAO,UAAU,CAAC;AACpB,CAAC"}
|