@ship-safe/cli 1.1.0 → 1.1.1

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 +26 -20
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -6908,22 +6908,28 @@ import chalk2 from "chalk";
6908
6908
 
6909
6909
  // src/lib/banner.ts
6910
6910
  import chalk from "chalk";
6911
- var SHIELD = chalk.hex("#FF6B2B");
6912
- var DIM_ORANGE = chalk.hex("#FF8C42");
6913
- var BRAND2 = chalk.hex("#FF6B2B").bold;
6911
+ var PURPLE = chalk.hex("#A855F7");
6912
+ var PURPLE_BOLD = chalk.hex("#A855F7").bold;
6913
+ var DIM_PURPLE = chalk.hex("#C084FC");
6914
6914
  function printBanner() {
6915
6915
  console.log("");
6916
6916
  console.log(
6917
- SHIELD(" \u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E")
6917
+ PURPLE(" \u250F\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513")
6918
6918
  );
6919
6919
  console.log(
6920
- SHIELD(" \u2502") + chalk.bold.white(" \u{1F6E1}\uFE0F ShipSafe Security Scanner ") + SHIELD("\u2502")
6920
+ PURPLE(" \u2503") + chalk.bold.white(" ") + PURPLE("\u2503")
6921
6921
  );
6922
6922
  console.log(
6923
- SHIELD(" \u2502") + chalk.dim(" Ship fast. Ship safe. ") + SHIELD("\u2502")
6923
+ PURPLE(" \u2503") + chalk.bold.white(" ") + PURPLE_BOLD("S H I P S A F E") + chalk.bold.white(" ") + PURPLE("\u2503")
6924
6924
  );
6925
6925
  console.log(
6926
- SHIELD(" \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F")
6926
+ PURPLE(" \u2503") + chalk.dim(" Security Scanner for AI-gen code ") + PURPLE("\u2503")
6927
+ );
6928
+ console.log(
6929
+ PURPLE(" \u2503") + chalk.bold.white(" ") + PURPLE("\u2503")
6930
+ );
6931
+ console.log(
6932
+ PURPLE(" \u2517\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u251B")
6927
6933
  );
6928
6934
  console.log("");
6929
6935
  }
@@ -6963,31 +6969,31 @@ function printScanSummaryBox(stats) {
6963
6969
  }
6964
6970
  function printUpsellBox(criticalHigh) {
6965
6971
  console.log("");
6966
- console.log(DIM_ORANGE(" \u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E"));
6972
+ console.log(DIM_PURPLE(" \u256D\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256E"));
6967
6973
  console.log(
6968
- DIM_ORANGE(" \u2502") + BRAND2(" \u{1F512} Unlock AI-Powered Deep Analysis ") + DIM_ORANGE("\u2502")
6974
+ DIM_PURPLE(" \u2502") + PURPLE_BOLD(" \u{1F512} Unlock AI-Powered Deep Analysis ") + DIM_PURPLE("\u2502")
6969
6975
  );
6970
- console.log(DIM_ORANGE(" \u2502 \u2502"));
6976
+ console.log(DIM_PURPLE(" \u2502 \u2502"));
6971
6977
  if (criticalHigh > 0) {
6972
6978
  console.log(
6973
- DIM_ORANGE(" \u2502 ") + chalk.white(`Found ${criticalHigh} critical/high issues. AI finds`) + " ".repeat(Math.max(0, 46 - `Found ${criticalHigh} critical/high issues. AI finds`.length)) + DIM_ORANGE("\u2502")
6979
+ DIM_PURPLE(" \u2502 ") + chalk.white(`Found ${criticalHigh} critical/high issues. AI finds`) + " ".repeat(Math.max(0, 46 - `Found ${criticalHigh} critical/high issues. AI finds`.length)) + DIM_PURPLE("\u2502")
6974
6980
  );
6975
6981
  console.log(
6976
- DIM_ORANGE(" \u2502 ") + chalk.dim("auth logic flaws, business logic bugs & more.") + " ".repeat(3) + DIM_ORANGE("\u2502")
6982
+ DIM_PURPLE(" \u2502 ") + chalk.dim("auth logic flaws, business logic bugs & more.") + " ".repeat(3) + DIM_PURPLE("\u2502")
6977
6983
  );
6978
6984
  } else {
6979
6985
  console.log(
6980
- DIM_ORANGE(" \u2502 ") + chalk.dim("Surface scan clean. AI finds auth logic,") + " ".repeat(8) + DIM_ORANGE("\u2502")
6986
+ DIM_PURPLE(" \u2502 ") + chalk.dim("Surface scan clean. AI finds auth logic,") + " ".repeat(8) + DIM_PURPLE("\u2502")
6981
6987
  );
6982
6988
  console.log(
6983
- DIM_ORANGE(" \u2502 ") + chalk.dim("RLS policies & business logic bugs.") + " ".repeat(13) + DIM_ORANGE("\u2502")
6989
+ DIM_PURPLE(" \u2502 ") + chalk.dim("RLS policies & business logic bugs.") + " ".repeat(13) + DIM_PURPLE("\u2502")
6984
6990
  );
6985
6991
  }
6986
- console.log(DIM_ORANGE(" \u2502 \u2502"));
6992
+ console.log(DIM_PURPLE(" \u2502 \u2502"));
6987
6993
  console.log(
6988
- DIM_ORANGE(" \u2502 ") + chalk.white("\u2192 Run ") + BRAND2("shipsafe login") + chalk.white(" to get started") + " ".repeat(13) + DIM_ORANGE("\u2502")
6994
+ DIM_PURPLE(" \u2502 ") + chalk.white("\u2192 Run ") + PURPLE_BOLD("shipsafe login") + chalk.white(" to get started") + " ".repeat(13) + DIM_PURPLE("\u2502")
6989
6995
  );
6990
- console.log(DIM_ORANGE(" \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F"));
6996
+ console.log(DIM_PURPLE(" \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256F"));
6991
6997
  }
6992
6998
 
6993
6999
  // src/lib/output.ts
@@ -7541,14 +7547,14 @@ async function scanCommand(targetPath, options) {
7541
7547
  value: "free"
7542
7548
  },
7543
7549
  {
7544
- name: `${chalk5.hex("#FF6B2B")("\u25B8")} ${chalk5.bold("Login first")} ${chalk5.dim("\u2014 unlock AI-powered deep analysis")}`,
7550
+ name: `${chalk5.hex("#A855F7")("\u25B8")} ${chalk5.bold("Login first")} ${chalk5.dim("\u2014 unlock AI-powered deep analysis")}`,
7545
7551
  value: "login"
7546
7552
  }
7547
7553
  ],
7548
7554
  theme: {
7549
- prefix: { idle: chalk5.hex("#FF6B2B")(" \u{1F6E1}\uFE0F"), done: chalk5.green(" \u2713") },
7555
+ prefix: { idle: chalk5.hex("#A855F7")(" \u{1F6E1}\uFE0F"), done: chalk5.green(" \u2713") },
7550
7556
  style: {
7551
- highlight: (text) => chalk5.hex("#FF6B2B")(text)
7557
+ highlight: (text) => chalk5.hex("#A855F7")(text)
7552
7558
  }
7553
7559
  }
7554
7560
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ship-safe/cli",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Security scanner for AI-generated code — find vulnerabilities before you ship",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -51,8 +51,8 @@
51
51
  "@types/node": "^22",
52
52
  "tsup": "^8",
53
53
  "typescript": "^5.7",
54
- "@shipsafe/scanner": "0.1.0",
55
- "@shipsafe/shared": "0.1.0"
54
+ "@shipsafe/shared": "0.1.0",
55
+ "@shipsafe/scanner": "0.1.0"
56
56
  },
57
57
  "scripts": {
58
58
  "build": "tsup",