@specific.dev/cli 0.1.83 → 0.1.85

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 (68) hide show
  1. package/dist/admin/404/index.html +1 -1
  2. package/dist/admin/404.html +1 -1
  3. package/dist/admin/__next.!KGRlZmF1bHQp.__PAGE__.txt +1 -1
  4. package/dist/admin/__next.!KGRlZmF1bHQp.txt +1 -1
  5. package/dist/admin/__next._full.txt +1 -1
  6. package/dist/admin/__next._head.txt +1 -1
  7. package/dist/admin/__next._index.txt +1 -1
  8. package/dist/admin/__next._tree.txt +1 -1
  9. package/dist/admin/_not-found/__next._full.txt +1 -1
  10. package/dist/admin/_not-found/__next._head.txt +1 -1
  11. package/dist/admin/_not-found/__next._index.txt +1 -1
  12. package/dist/admin/_not-found/__next._not-found.__PAGE__.txt +1 -1
  13. package/dist/admin/_not-found/__next._not-found.txt +1 -1
  14. package/dist/admin/_not-found/__next._tree.txt +1 -1
  15. package/dist/admin/_not-found/index.html +1 -1
  16. package/dist/admin/_not-found/index.txt +1 -1
  17. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.__PAGE__.txt +1 -1
  18. package/dist/admin/databases/__next.!KGRlZmF1bHQp.databases.txt +1 -1
  19. package/dist/admin/databases/__next.!KGRlZmF1bHQp.txt +1 -1
  20. package/dist/admin/databases/__next._full.txt +1 -1
  21. package/dist/admin/databases/__next._head.txt +1 -1
  22. package/dist/admin/databases/__next._index.txt +1 -1
  23. package/dist/admin/databases/__next._tree.txt +1 -1
  24. package/dist/admin/databases/index.html +1 -1
  25. package/dist/admin/databases/index.txt +1 -1
  26. package/dist/admin/fullscreen/__next._full.txt +1 -1
  27. package/dist/admin/fullscreen/__next._head.txt +1 -1
  28. package/dist/admin/fullscreen/__next._index.txt +1 -1
  29. package/dist/admin/fullscreen/__next._tree.txt +1 -1
  30. package/dist/admin/fullscreen/__next.fullscreen.__PAGE__.txt +1 -1
  31. package/dist/admin/fullscreen/__next.fullscreen.txt +1 -1
  32. package/dist/admin/fullscreen/databases/__next._full.txt +1 -1
  33. package/dist/admin/fullscreen/databases/__next._head.txt +1 -1
  34. package/dist/admin/fullscreen/databases/__next._index.txt +1 -1
  35. package/dist/admin/fullscreen/databases/__next._tree.txt +1 -1
  36. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.__PAGE__.txt +1 -1
  37. package/dist/admin/fullscreen/databases/__next.fullscreen.databases.txt +1 -1
  38. package/dist/admin/fullscreen/databases/__next.fullscreen.txt +1 -1
  39. package/dist/admin/fullscreen/databases/index.html +1 -1
  40. package/dist/admin/fullscreen/databases/index.txt +1 -1
  41. package/dist/admin/fullscreen/index.html +1 -1
  42. package/dist/admin/fullscreen/index.txt +1 -1
  43. package/dist/admin/index.html +1 -1
  44. package/dist/admin/index.txt +1 -1
  45. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.__PAGE__.txt +1 -1
  46. package/dist/admin/mail/__next.!KGRlZmF1bHQp.mail.txt +1 -1
  47. package/dist/admin/mail/__next.!KGRlZmF1bHQp.txt +1 -1
  48. package/dist/admin/mail/__next._full.txt +1 -1
  49. package/dist/admin/mail/__next._head.txt +1 -1
  50. package/dist/admin/mail/__next._index.txt +1 -1
  51. package/dist/admin/mail/__next._tree.txt +1 -1
  52. package/dist/admin/mail/index.html +1 -1
  53. package/dist/admin/mail/index.txt +1 -1
  54. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.txt +1 -1
  55. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.__PAGE__.txt +1 -1
  56. package/dist/admin/workflows/__next.!KGRlZmF1bHQp.workflows.txt +1 -1
  57. package/dist/admin/workflows/__next._full.txt +1 -1
  58. package/dist/admin/workflows/__next._head.txt +1 -1
  59. package/dist/admin/workflows/__next._index.txt +1 -1
  60. package/dist/admin/workflows/__next._tree.txt +1 -1
  61. package/dist/admin/workflows/index.html +1 -1
  62. package/dist/admin/workflows/index.txt +1 -1
  63. package/dist/cli.js +18 -14
  64. package/dist/postinstall.js +1 -1
  65. package/package.json +1 -1
  66. /package/dist/admin/_next/static/{ZUhVyT91xXNDSM1fLwCBF → auYBWuR9QwsBXcoDWc3nc}/_buildManifest.js +0 -0
  67. /package/dist/admin/_next/static/{ZUhVyT91xXNDSM1fLwCBF → auYBWuR9QwsBXcoDWc3nc}/_clientMiddlewareManifest.json +0 -0
  68. /package/dist/admin/_next/static/{ZUhVyT91xXNDSM1fLwCBF → auYBWuR9QwsBXcoDWc3nc}/_ssgManifest.js +0 -0
package/dist/cli.js CHANGED
@@ -183482,7 +183482,19 @@ function caInstalledInTrustStore() {
183482
183482
  `security find-certificate -c "Specific Local Development CA" -p "${getLoginKeychainPath()}"`,
183483
183483
  { encoding: "utf-8" }
183484
183484
  ).replace(/\r\n/g, "\n").trim();
183485
- return keychainCert === diskCert;
183485
+ if (keychainCert !== diskCert) {
183486
+ return false;
183487
+ }
183488
+ const trustOutput = execSync(
183489
+ `security dump-trust-settings 2>&1`,
183490
+ { encoding: "utf-8" }
183491
+ );
183492
+ const caSection = trustOutput.split("Specific Local Development CA");
183493
+ if (caSection.length < 2) {
183494
+ return false;
183495
+ }
183496
+ const afterCA = caSection[1].split(/^Cert \d+:/m)[0];
183497
+ return afterCA.includes("Policy OID");
183486
183498
  } else if (platform8 === "linux") {
183487
183499
  const trustPaths = [
183488
183500
  "/usr/local/share/ca-certificates/specific-local-ca.crt",
@@ -183601,7 +183613,7 @@ function getCADeleteCommand() {
183601
183613
  return `security delete-certificate -c "Specific Local Development CA" "${getLoginKeychainPath()}"`;
183602
183614
  }
183603
183615
  function getCATrustCommand(certPath) {
183604
- return `security add-trusted-cert -d -r trustRoot -k "${getLoginKeychainPath()}" "${certPath}"`;
183616
+ return `security add-trusted-cert -r trustRoot -p ssl -p basic -k "${getLoginKeychainPath()}" "${certPath}"`;
183605
183617
  }
183606
183618
  function getCAInstallCommands(certPath) {
183607
183619
  const platform8 = os.platform();
@@ -184669,7 +184681,7 @@ function trackEvent(event, properties) {
184669
184681
  event,
184670
184682
  properties: {
184671
184683
  ...properties,
184672
- cli_version: "0.1.83",
184684
+ cli_version: "0.1.85",
184673
184685
  platform: process.platform,
184674
184686
  node_version: process.version,
184675
184687
  project_id: getProjectId()
@@ -192748,14 +192760,6 @@ Add them to the config block in specific.local`);
192748
192760
  },
192749
192761
  { key: "admin-space", content: /* @__PURE__ */ React6.createElement(Text6, null, " ") }
192750
192762
  ] : [],
192751
- // Dashboard link (only when project is linked)
192752
- ...projectId ? [
192753
- {
192754
- key: "dashboard",
192755
- content: /* @__PURE__ */ React6.createElement(Text6, null, /* @__PURE__ */ React6.createElement(Text6, { bold: true }, "Dashboard:"), /* @__PURE__ */ React6.createElement(Text6, null, " "), /* @__PURE__ */ React6.createElement(Text6, { bold: true }, "https://dashboard.specific.dev/projects/", projectId))
192756
- },
192757
- { key: "dashboard-space", content: /* @__PURE__ */ React6.createElement(Text6, null, " ") }
192758
- ] : [],
192759
192763
  // Services section - different rendering for tunnel mode vs local mode
192760
192764
  ...tunnelEnabled ? (
192761
192765
  // Tunnel mode: show tunnel URLs for public services
@@ -192938,7 +192942,7 @@ async function createGitArchive(projectDir) {
192938
192942
  );
192939
192943
  const allFiles = filesOutput.trim().split("\n").filter(Boolean);
192940
192944
  const filteredFiles = allFiles.filter(
192941
- (file) => !file.startsWith(".specific/") && file !== ".specific"
192945
+ (file) => !file.startsWith(".specific/") && file !== ".specific" && fs25.existsSync(path22.join(projectDir, file))
192942
192946
  );
192943
192947
  writeLog(
192944
192948
  "tarball",
@@ -194755,7 +194759,7 @@ function compareVersions(a, b) {
194755
194759
  return 0;
194756
194760
  }
194757
194761
  async function checkForUpdate() {
194758
- const currentVersion = "0.1.83";
194762
+ const currentVersion = "0.1.85";
194759
194763
  const response = await fetch(`${BINARIES_BASE_URL}/latest?t=${Date.now()}`);
194760
194764
  if (!response.ok) {
194761
194765
  throw new Error(`Failed to check for updates: HTTP ${response.status}`);
@@ -194954,7 +194958,7 @@ function updateCommand() {
194954
194958
  var program = new Command();
194955
194959
  var env = "production";
194956
194960
  var envLabel = env !== "production" ? `[${env.toUpperCase()}] ` : "";
194957
- program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.83").enablePositionalOptions();
194961
+ program.name("specific").description(`${envLabel}Infrastructure-as-code for coding agents`).version("0.1.85").enablePositionalOptions();
194958
194962
  program.command("init").description("Initialize project for use with a coding agent").option("--agent <name...>", "Agents to configure (cursor, claude, codex, other)").action((options2) => initCommand(options2));
194959
194963
  program.command("docs [topic]").description("Fetch LLM-optimized documentation").action(docsCommand);
194960
194964
  program.command("check").description("Validate specific.hcl configuration").action(checkCommand);
@@ -126,7 +126,7 @@ function trackEvent(event, properties) {
126
126
  event,
127
127
  properties: {
128
128
  ...properties,
129
- cli_version: "0.1.83",
129
+ cli_version: "0.1.85",
130
130
  platform: process.platform,
131
131
  node_version: process.version,
132
132
  project_id: getProjectId()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@specific.dev/cli",
3
- "version": "0.1.83",
3
+ "version": "0.1.85",
4
4
  "description": "CLI for Specific infrastructure-as-code",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",