@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.
- package/VERSION +2 -2
- package/dist/commands/auth/generate.js +4 -4
- package/dist/commands/auth/generate.js.map +1 -1
- package/dist/commands/auth/login.js +2 -2
- package/dist/commands/auth/login.js.map +1 -1
- package/dist/commands/auth/logout.js +2 -2
- package/dist/commands/auth/logout.js.map +1 -1
- package/dist/commands/auth/migrate.js +2 -2
- package/dist/commands/auth/migrate.js.map +1 -1
- package/dist/commands/auth/whoami.js +7 -5
- package/dist/commands/auth/whoami.js.map +1 -1
- package/dist/commands/billing/cancel.js +9 -7
- package/dist/commands/billing/cancel.js.map +1 -1
- package/dist/commands/billing/status.js +8 -5
- package/dist/commands/billing/status.js.map +1 -1
- package/dist/commands/billing/subscribe.js +14 -10
- package/dist/commands/billing/subscribe.js.map +1 -1
- package/dist/commands/compute/app/create.js +2 -2
- package/dist/commands/compute/app/create.js.map +1 -1
- package/dist/commands/compute/app/deploy.js +105 -105
- package/dist/commands/compute/app/deploy.js.map +1 -1
- package/dist/commands/compute/app/info.js +55 -8
- package/dist/commands/compute/app/info.js.map +1 -1
- package/dist/commands/compute/app/list.js +8 -9
- package/dist/commands/compute/app/list.js.map +1 -1
- package/dist/commands/compute/app/logs.js +58 -11
- package/dist/commands/compute/app/logs.js.map +1 -1
- package/dist/commands/compute/app/profile/set.js +147 -22
- package/dist/commands/compute/app/profile/set.js.map +1 -1
- package/dist/commands/compute/app/releases.js +110 -143
- package/dist/commands/compute/app/releases.js.map +1 -1
- package/dist/commands/compute/app/start.js +58 -11
- package/dist/commands/compute/app/start.js.map +1 -1
- package/dist/commands/compute/app/stop.js +58 -11
- package/dist/commands/compute/app/stop.js.map +1 -1
- package/dist/commands/compute/app/terminate.js +58 -11
- package/dist/commands/compute/app/terminate.js.map +1 -1
- package/dist/commands/compute/app/upgrade.js +121 -67
- package/dist/commands/compute/app/upgrade.js.map +1 -1
- package/dist/commands/compute/build/info.js +8 -9
- package/dist/commands/compute/build/info.js.map +1 -1
- package/dist/commands/compute/build/list.js +50 -131
- package/dist/commands/compute/build/list.js.map +1 -1
- package/dist/commands/compute/build/logs.js +9 -10
- package/dist/commands/compute/build/logs.js.map +1 -1
- package/dist/commands/compute/build/status.js +9 -10
- package/dist/commands/compute/build/status.js.map +1 -1
- package/dist/commands/compute/build/submit.js +8 -9
- package/dist/commands/compute/build/submit.js.map +1 -1
- package/dist/commands/compute/build/verify.js +59 -12
- package/dist/commands/compute/build/verify.js.map +1 -1
- package/dist/commands/compute/environment/list.js +2 -2
- package/dist/commands/compute/environment/list.js.map +1 -1
- package/dist/commands/compute/environment/set.js +2 -2
- package/dist/commands/compute/environment/set.js.map +1 -1
- package/dist/commands/compute/environment/show.js +2 -2
- package/dist/commands/compute/environment/show.js.map +1 -1
- package/dist/commands/compute/undelegate.js +8 -9
- package/dist/commands/compute/undelegate.js.map +1 -1
- package/dist/commands/{telemetry.js → telemetry/disable.js} +15 -64
- package/dist/commands/telemetry/disable.js.map +1 -0
- package/dist/commands/telemetry/enable.js +164 -0
- package/dist/commands/telemetry/enable.js.map +1 -0
- package/dist/commands/telemetry/status.js +159 -0
- package/dist/commands/telemetry/status.js.map +1 -0
- package/dist/commands/upgrade.js +2 -2
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/commands/version.js +2 -2
- package/dist/commands/version.js.map +1 -1
- package/package.json +4 -2
- 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
|
|
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
|
|
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
|
|
661
|
-
//
|
|
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 =
|
|
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 AppLifecycleStart = class _AppLifecycleStart extends Command {
|
|
|
716
763
|
return withTelemetry(this, async () => {
|
|
717
764
|
const { args, flags } = await this.parse(_AppLifecycleStart);
|
|
718
765
|
const compute = await createComputeClient(flags);
|
|
719
|
-
const environment = flags.environment
|
|
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);
|