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.
Files changed (2) hide show
  1. package/dist/index.js +76 -2
  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.4.3",
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.4.3",
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
  }