commet 1.4.3 → 1.5.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.
- package/dist/index.js +76 -2
- package/package.json +3 -2
package/dist/index.js
CHANGED
|
@@ -30,7 +30,7 @@ var import_commander11 = require("commander");
|
|
|
30
30
|
// package.json
|
|
31
31
|
var package_default = {
|
|
32
32
|
name: "commet",
|
|
33
|
-
version: "1.
|
|
33
|
+
version: "1.5.0",
|
|
34
34
|
description: "Commet CLI - Manage your billing platform from the command line",
|
|
35
35
|
bin: {
|
|
36
36
|
commet: "./bin/commet"
|
|
@@ -45,7 +45,8 @@ var package_default = {
|
|
|
45
45
|
dev: "tsup --watch",
|
|
46
46
|
lint: "biome lint src/",
|
|
47
47
|
"lint:fix": "biome lint --write src/",
|
|
48
|
-
typecheck: "tsc --noEmit"
|
|
48
|
+
typecheck: "tsc --noEmit",
|
|
49
|
+
clean: "rm -rf .turbo node_modules dist"
|
|
49
50
|
},
|
|
50
51
|
keywords: [
|
|
51
52
|
"billing",
|
|
@@ -399,6 +400,61 @@ function updatePackageJson(dest, projectName) {
|
|
|
399
400
|
fs2.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}
|
|
400
401
|
`);
|
|
401
402
|
}
|
|
403
|
+
async function fetchLatestVersion(packageName) {
|
|
404
|
+
const response = await fetch(
|
|
405
|
+
`https://registry.npmjs.org/${packageName}/latest`
|
|
406
|
+
);
|
|
407
|
+
if (!response.ok) {
|
|
408
|
+
throw new Error(
|
|
409
|
+
`Failed to fetch version for ${packageName} (HTTP ${response.status})`
|
|
410
|
+
);
|
|
411
|
+
}
|
|
412
|
+
const data = await response.json();
|
|
413
|
+
return data.version;
|
|
414
|
+
}
|
|
415
|
+
async function resolveWorkspaceDeps(dest) {
|
|
416
|
+
const pkgPath = path2.join(dest, "package.json");
|
|
417
|
+
const pkg = JSON.parse(fs2.readFileSync(pkgPath, "utf-8"));
|
|
418
|
+
const depSections = [
|
|
419
|
+
"dependencies",
|
|
420
|
+
"devDependencies",
|
|
421
|
+
"peerDependencies"
|
|
422
|
+
];
|
|
423
|
+
const workspaceDeps = /* @__PURE__ */ new Map();
|
|
424
|
+
for (const section of depSections) {
|
|
425
|
+
const deps = pkg[section];
|
|
426
|
+
if (!deps) continue;
|
|
427
|
+
for (const [name, version] of Object.entries(deps)) {
|
|
428
|
+
if (typeof version === "string" && version.startsWith("workspace:")) {
|
|
429
|
+
const existing = workspaceDeps.get(name);
|
|
430
|
+
if (existing) {
|
|
431
|
+
existing.push(section);
|
|
432
|
+
} else {
|
|
433
|
+
workspaceDeps.set(name, [section]);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
if (workspaceDeps.size === 0) return 0;
|
|
439
|
+
const resolved = /* @__PURE__ */ new Map();
|
|
440
|
+
await Promise.all(
|
|
441
|
+
Array.from(workspaceDeps.keys()).map(async (name) => {
|
|
442
|
+
resolved.set(name, await fetchLatestVersion(name));
|
|
443
|
+
})
|
|
444
|
+
);
|
|
445
|
+
for (const [name, sections] of workspaceDeps) {
|
|
446
|
+
const version = resolved.get(name);
|
|
447
|
+
if (!version) {
|
|
448
|
+
throw new Error(`Could not resolve version for ${name}`);
|
|
449
|
+
}
|
|
450
|
+
for (const section of sections) {
|
|
451
|
+
pkg[section][name] = version;
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
fs2.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}
|
|
455
|
+
`);
|
|
456
|
+
return workspaceDeps.size;
|
|
457
|
+
}
|
|
402
458
|
function copyEnvExample(dest) {
|
|
403
459
|
const examplePath = path2.join(dest, ".env.example");
|
|
404
460
|
const envPath = path2.join(dest, ".env");
|
|
@@ -600,6 +656,24 @@ var createCommand = new import_commander.Command("create").description("Create a
|
|
|
600
656
|
}
|
|
601
657
|
updatePackageJson(dest, projectName);
|
|
602
658
|
copyEnvExample(dest);
|
|
659
|
+
const resolveSpinner = (0, import_ora2.default)("Resolving package versions...").start();
|
|
660
|
+
try {
|
|
661
|
+
const count = await resolveWorkspaceDeps(dest);
|
|
662
|
+
if (count > 0) {
|
|
663
|
+
resolveSpinner.succeed(`Resolved ${count} package versions`);
|
|
664
|
+
} else {
|
|
665
|
+
resolveSpinner.stop();
|
|
666
|
+
}
|
|
667
|
+
} catch (error) {
|
|
668
|
+
resolveSpinner.fail("Failed to resolve package versions");
|
|
669
|
+
if (error instanceof Error) {
|
|
670
|
+
console.error(import_chalk3.default.red(error.message));
|
|
671
|
+
}
|
|
672
|
+
if (fs2.existsSync(dest)) {
|
|
673
|
+
fs2.rmSync(dest, { recursive: true, force: true });
|
|
674
|
+
}
|
|
675
|
+
return;
|
|
676
|
+
}
|
|
603
677
|
const planSpinner = (0, import_ora2.default)("Creating plans...").start();
|
|
604
678
|
const templateResult = await apiRequest(`${baseURL}/api/cli/templates`, {
|
|
605
679
|
method: "POST",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "commet",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Commet CLI - Manage your billing platform from the command line",
|
|
5
5
|
"bin": {
|
|
6
6
|
"commet": "./bin/commet"
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"dev": "tsup --watch",
|
|
51
51
|
"lint": "biome lint src/",
|
|
52
52
|
"lint:fix": "biome lint --write src/",
|
|
53
|
-
"typecheck": "tsc --noEmit"
|
|
53
|
+
"typecheck": "tsc --noEmit",
|
|
54
|
+
"clean": "rm -rf .turbo node_modules dist"
|
|
54
55
|
}
|
|
55
56
|
}
|