@layr-labs/ecloud-cli 0.2.0-dev → 0.2.0-dev.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 (71) hide show
  1. package/VERSION +2 -2
  2. package/dist/commands/auth/generate.js +4 -4
  3. package/dist/commands/auth/generate.js.map +1 -1
  4. package/dist/commands/auth/login.js +2 -2
  5. package/dist/commands/auth/login.js.map +1 -1
  6. package/dist/commands/auth/logout.js +2 -2
  7. package/dist/commands/auth/logout.js.map +1 -1
  8. package/dist/commands/auth/migrate.js +2 -2
  9. package/dist/commands/auth/migrate.js.map +1 -1
  10. package/dist/commands/auth/whoami.js +7 -5
  11. package/dist/commands/auth/whoami.js.map +1 -1
  12. package/dist/commands/billing/cancel.js +9 -7
  13. package/dist/commands/billing/cancel.js.map +1 -1
  14. package/dist/commands/billing/status.js +8 -5
  15. package/dist/commands/billing/status.js.map +1 -1
  16. package/dist/commands/billing/subscribe.js +14 -10
  17. package/dist/commands/billing/subscribe.js.map +1 -1
  18. package/dist/commands/compute/app/create.js +2 -2
  19. package/dist/commands/compute/app/create.js.map +1 -1
  20. package/dist/commands/compute/app/deploy.js +105 -105
  21. package/dist/commands/compute/app/deploy.js.map +1 -1
  22. package/dist/commands/compute/app/info.js +55 -8
  23. package/dist/commands/compute/app/info.js.map +1 -1
  24. package/dist/commands/compute/app/list.js +8 -9
  25. package/dist/commands/compute/app/list.js.map +1 -1
  26. package/dist/commands/compute/app/logs.js +58 -11
  27. package/dist/commands/compute/app/logs.js.map +1 -1
  28. package/dist/commands/compute/app/profile/set.js +147 -22
  29. package/dist/commands/compute/app/profile/set.js.map +1 -1
  30. package/dist/commands/compute/app/releases.js +110 -143
  31. package/dist/commands/compute/app/releases.js.map +1 -1
  32. package/dist/commands/compute/app/start.js +58 -11
  33. package/dist/commands/compute/app/start.js.map +1 -1
  34. package/dist/commands/compute/app/stop.js +58 -11
  35. package/dist/commands/compute/app/stop.js.map +1 -1
  36. package/dist/commands/compute/app/terminate.js +58 -11
  37. package/dist/commands/compute/app/terminate.js.map +1 -1
  38. package/dist/commands/compute/app/upgrade.js +121 -67
  39. package/dist/commands/compute/app/upgrade.js.map +1 -1
  40. package/dist/commands/compute/build/info.js +8 -9
  41. package/dist/commands/compute/build/info.js.map +1 -1
  42. package/dist/commands/compute/build/list.js +50 -131
  43. package/dist/commands/compute/build/list.js.map +1 -1
  44. package/dist/commands/compute/build/logs.js +9 -10
  45. package/dist/commands/compute/build/logs.js.map +1 -1
  46. package/dist/commands/compute/build/status.js +9 -10
  47. package/dist/commands/compute/build/status.js.map +1 -1
  48. package/dist/commands/compute/build/submit.js +8 -9
  49. package/dist/commands/compute/build/submit.js.map +1 -1
  50. package/dist/commands/compute/build/verify.js +59 -12
  51. package/dist/commands/compute/build/verify.js.map +1 -1
  52. package/dist/commands/compute/environment/list.js +2 -2
  53. package/dist/commands/compute/environment/list.js.map +1 -1
  54. package/dist/commands/compute/environment/set.js +2 -2
  55. package/dist/commands/compute/environment/set.js.map +1 -1
  56. package/dist/commands/compute/environment/show.js +2 -2
  57. package/dist/commands/compute/environment/show.js.map +1 -1
  58. package/dist/commands/compute/undelegate.js +8 -9
  59. package/dist/commands/compute/undelegate.js.map +1 -1
  60. package/dist/commands/{telemetry.js → telemetry/disable.js} +15 -64
  61. package/dist/commands/telemetry/disable.js.map +1 -0
  62. package/dist/commands/telemetry/enable.js +164 -0
  63. package/dist/commands/telemetry/enable.js.map +1 -0
  64. package/dist/commands/telemetry/status.js +159 -0
  65. package/dist/commands/telemetry/status.js.map +1 -0
  66. package/dist/commands/upgrade.js +2 -2
  67. package/dist/commands/upgrade.js.map +1 -1
  68. package/dist/commands/version.js +2 -2
  69. package/dist/commands/version.js.map +1 -1
  70. package/package.json +4 -2
  71. package/dist/commands/telemetry.js.map +0 -1
@@ -15,6 +15,7 @@ import {
15
15
 
16
16
  // src/flags.ts
17
17
  import { Flags } from "@oclif/core";
18
+ import { getBuildType as getBuildType2 } from "@layr-labs/ecloud-sdk";
18
19
 
19
20
  // src/utils/prompts.ts
20
21
  import { input, select, password, confirm as inquirerConfirm } from "@inquirer/prompts";
@@ -96,6 +97,27 @@ function saveGlobalConfig(config) {
96
97
  const content = dumpYaml(config, { lineWidth: -1 });
97
98
  fs.writeFileSync(configPath, content, { mode: 420 });
98
99
  }
100
+ function normalizeDirectoryPath(directoryPath) {
101
+ const resolved = path.resolve(directoryPath);
102
+ try {
103
+ return fs.realpathSync(resolved);
104
+ } catch {
105
+ return resolved;
106
+ }
107
+ }
108
+ function getLinkedAppForDirectory(environment, directoryPath) {
109
+ if (!directoryPath) {
110
+ return null;
111
+ }
112
+ const config = loadGlobalConfig();
113
+ const links = config.directory_links?.[environment];
114
+ if (!links) {
115
+ return null;
116
+ }
117
+ const normalizedPath = normalizeDirectoryPath(directoryPath);
118
+ const appId = links[normalizedPath];
119
+ return appId || null;
120
+ }
99
121
  function getDefaultEnvironment() {
100
122
  const config = loadGlobalConfig();
101
123
  return config.default_environment;
@@ -192,7 +214,7 @@ function listApps(environment) {
192
214
 
193
215
  // src/utils/version.ts
194
216
  function getCliVersion() {
195
- return true ? "0.2.0-dev" : "0.0.0";
217
+ return true ? "0.2.0-dev.1" : "0.0.0";
196
218
  }
197
219
  function getClientId() {
198
220
  return `ecloud-cli/v${getCliVersion()}`;
@@ -221,6 +243,9 @@ function addHexPrefix(value) {
221
243
  }
222
244
  return `0x${value}`;
223
245
  }
246
+ function getCurrentProjectPath() {
247
+ return process.env.INIT_CWD || process.cwd();
248
+ }
224
249
  var ContractAppStatusStarted = 1;
225
250
  var ContractAppStatusStopped = 2;
226
251
  var ContractAppStatusTerminated = 3;
@@ -359,6 +384,7 @@ Select an app to ${action}:
359
384
  switch (action) {
360
385
  case "view":
361
386
  case "view info for":
387
+ case "view releases for":
362
388
  case "set profile for":
363
389
  return true;
364
390
  case "start":
@@ -387,7 +413,19 @@ Select an app to ${action}:
387
413
  index: i
388
414
  });
389
415
  }
416
+ const linkedAppId = getLinkedAppForDirectory(environment, getCurrentProjectPath());
417
+ const normalizedLinkedAppId = linkedAppId ? linkedAppId.toLowerCase() : "";
390
418
  appItems.sort((a, b) => {
419
+ if (normalizedLinkedAppId) {
420
+ const aLinked = String(a.addr).toLowerCase() === normalizedLinkedAppId;
421
+ const bLinked = String(b.addr).toLowerCase() === normalizedLinkedAppId;
422
+ if (aLinked && !bLinked) {
423
+ return -1;
424
+ }
425
+ if (bLinked && !aLinked) {
426
+ return 1;
427
+ }
428
+ }
391
429
  const aPriority = getStatusPriority(a.status, false);
392
430
  const bPriority = getStatusPriority(b.status, false);
393
431
  if (aPriority !== bPriority) {
@@ -453,7 +491,18 @@ async function getAppIDInteractiveFromRegistry(environment, action) {
453
491
  }
454
492
  throw new Error(`Invalid app ID address: ${appIDInput}`);
455
493
  }
456
- const choices = Object.entries(allApps).map(([name, appID]) => {
494
+ const entries = Object.entries(allApps);
495
+ const linkedAppId = getLinkedAppForDirectory(environment, getCurrentProjectPath());
496
+ if (linkedAppId) {
497
+ const linkedIndex = entries.findIndex(
498
+ ([, appId]) => String(appId).toLowerCase() === linkedAppId.toLowerCase()
499
+ );
500
+ if (linkedIndex > 0) {
501
+ const [linkedEntry] = entries.splice(linkedIndex, 1);
502
+ entries.unshift(linkedEntry);
503
+ }
504
+ }
505
+ const choices = entries.map(([name, appID]) => {
457
506
  const displayName = `${name} (${appID})`;
458
507
  return { name: displayName, value: appID };
459
508
  });
@@ -581,7 +630,8 @@ var commonFlags = {
581
630
  environment: Flags.string({
582
631
  required: false,
583
632
  description: "Deployment environment to use",
584
- env: "ECLOUD_ENV"
633
+ env: "ECLOUD_ENV",
634
+ default: async () => getDefaultEnvironment() || (getBuildType2() === "dev" ? "sepolia-dev" : "sepolia")
585
635
  }),
586
636
  "private-key": Flags.string({
587
637
  required: false,
@@ -600,9 +650,6 @@ var commonFlags = {
600
650
  })
601
651
  };
602
652
  async function validateCommonFlags(flags, options) {
603
- if (!flags["environment"]) {
604
- flags["environment"] = getDefaultEnvironment();
605
- }
606
653
  flags["environment"] = await getEnvironmentInteractive(flags["environment"]);
607
654
  if (options?.requirePrivateKey !== false) {
608
655
  flags["private-key"] = await getPrivateKeyInteractive(flags["private-key"]);
@@ -650,15 +697,15 @@ import {
650
697
  addMetric,
651
698
  addMetricWithDimensions,
652
699
  emitMetrics,
653
- getBuildType as getBuildType2
700
+ getBuildType as getBuildType3
654
701
  } from "@layr-labs/ecloud-sdk";
655
702
  function createCLITelemetryClient() {
656
703
  const userUUID = getOrCreateUserUUID();
657
704
  const environment = createAppEnvironment(userUUID);
658
705
  const telemetryEnabled = getGlobalTelemetryPreference();
659
706
  return createTelemetryClient(environment, "ecloud-cli", {
660
- telemetryEnabled: telemetryEnabled === true
661
- // Only enabled if explicitly set to true
707
+ telemetryEnabled: telemetryEnabled !== false
708
+ // Enabled by default, disabled only if explicitly set to false
662
709
  });
663
710
  }
664
711
  async function withTelemetry(command, action) {
@@ -668,7 +715,7 @@ async function withTelemetry(command, action) {
668
715
  metrics.properties["command"] = command.id || command.constructor.name;
669
716
  const environment = getDefaultEnvironment() || "sepolia";
670
717
  metrics.properties["environment"] = environment;
671
- const buildType = getBuildType2() || "prod";
718
+ const buildType = getBuildType3() || "prod";
672
719
  metrics.properties["build_type"] = buildType;
673
720
  const cliVersion = command.config.version;
674
721
  if (cliVersion) {
@@ -716,7 +763,7 @@ var AppLifecycleStop = class _AppLifecycleStop extends Command {
716
763
  return withTelemetry(this, async () => {
717
764
  const { args, flags } = await this.parse(_AppLifecycleStop);
718
765
  const compute = await createComputeClient(flags);
719
- const environment = flags.environment || "sepolia";
766
+ const environment = flags.environment;
720
767
  const environmentConfig = getEnvironmentConfig3(environment);
721
768
  const rpcUrl = flags.rpcUrl || environmentConfig.defaultRPCURL;
722
769
  const privateKey = flags["private-key"] || await getPrivateKeyInteractive(environment);