@snapvisor/cli 6.4.1 → 7.0.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.
package/LICENSE CHANGED
@@ -1,8 +1,8 @@
1
- Copyright 2026 Devino Solutions Inc. (Snapvisor modifications)
2
- Copyright 2022 Smooth Code
3
-
4
- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
-
6
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Copyright 2026 Devino Solutions Inc. (Snapvisor modifications)
2
+ Copyright 2022 Smooth Code
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
5
+
6
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -1,45 +1,45 @@
1
- <p align="center">
2
- <a href="https://argos-ci.com/?utm_source=github&utm_medium=logo" target="_blank">
3
- <picture>
4
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/argos-ci/argos/main/resources/logos/github-readme-logo-dark.png">
5
- <img alt="Argos" src="https://raw.githubusercontent.com/argos-ci/argos/main/resources/logos/github-readme-logo-light.png" width="360" height="70">
6
- </picture>
7
- </a>
8
- </p>
9
-
10
- <p align="center"><strong>The open source visual testing platform for AI-native engineering teams.</strong></p>
11
-
12
- # Argos Command Line Interface
13
-
14
- Interact with and upload screenshots to [argos-ci.com](https://argos-ci.com) from the command line.
15
-
16
- [![npm version](https://img.shields.io/npm/v/@snapvisor/cli.svg)](https://www.npmjs.com/package/@snapvisor/cli)
17
- [![npm dm](https://img.shields.io/npm/dm/@snapvisor/cli.svg)](https://www.npmjs.com/package/@snapvisor/cli)
18
- [![npm dt](https://img.shields.io/npm/dt/@snapvisor/cli.svg)](https://www.npmjs.com/package/@snapvisor/cli)
19
-
20
- Visit the [Argos CLI documentation](https://argos-ci.com/docs/reference/argos-command-line-interface-cli) for the full command reference and more.
21
-
22
- ## Installation
23
-
24
- ```sh
25
- npm install --save-dev @snapvisor/cli
26
- ```
27
-
28
- ## Usage
29
-
30
- Upload a directory of screenshots to Argos. Authenticate with your project token via the `ARGOS_TOKEN` environment variable:
31
-
32
- ```sh
33
- ARGOS_TOKEN="<your-argos-token>" npx @snapvisor/cli upload ./screenshots
34
- ```
35
-
36
- The CLI also exposes commands to `deploy` a static build, inspect and `review` builds, post a `comment`, and more. List them all with:
37
-
38
- ```sh
39
- npx @snapvisor/cli --help
40
- ```
41
-
42
- ## Links
43
-
44
- - [Official CLI Docs](https://argos-ci.com/docs/reference/argos-command-line-interface-cli)
45
- - [Discord](https://argos-ci.com/discord)
1
+ <p align="center">
2
+ <a href="https://argos-ci.com/?utm_source=github&utm_medium=logo" target="_blank">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/argos-ci/argos/main/resources/logos/github-readme-logo-dark.png">
5
+ <img alt="Argos" src="https://raw.githubusercontent.com/argos-ci/argos/main/resources/logos/github-readme-logo-light.png" width="360" height="70">
6
+ </picture>
7
+ </a>
8
+ </p>
9
+
10
+ <p align="center"><strong>The open source visual testing platform for AI-native engineering teams.</strong></p>
11
+
12
+ # Argos Command Line Interface
13
+
14
+ Interact with and upload screenshots to [argos-ci.com](https://argos-ci.com) from the command line.
15
+
16
+ [![npm version](https://img.shields.io/npm/v/@snapvisor/cli.svg)](https://www.npmjs.com/package/@snapvisor/cli)
17
+ [![npm dm](https://img.shields.io/npm/dm/@snapvisor/cli.svg)](https://www.npmjs.com/package/@snapvisor/cli)
18
+ [![npm dt](https://img.shields.io/npm/dt/@snapvisor/cli.svg)](https://www.npmjs.com/package/@snapvisor/cli)
19
+
20
+ Visit the [Argos CLI documentation](https://argos-ci.com/docs/reference/argos-command-line-interface-cli) for the full command reference and more.
21
+
22
+ ## Installation
23
+
24
+ ```sh
25
+ npm install --save-dev @snapvisor/cli
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ Upload a directory of screenshots to Argos. Authenticate with your project token via the `ARGOS_TOKEN` environment variable:
31
+
32
+ ```sh
33
+ ARGOS_TOKEN="<your-argos-token>" npx @snapvisor/cli upload ./screenshots
34
+ ```
35
+
36
+ The CLI also exposes commands to `deploy` a static build, inspect and `review` builds, post a `comment`, and more. List them all with:
37
+
38
+ ```sh
39
+ npx @snapvisor/cli --help
40
+ ```
41
+
42
+ ## Links
43
+
44
+ - [Official CLI Docs](https://argos-ci.com/docs/reference/argos-command-line-interface-cli)
45
+ - [Discord](https://argos-ci.com/discord)
package/bin/argos-cli.js CHANGED
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env node
2
-
3
- import "../dist/index.mjs";
1
+ #!/usr/bin/env node
2
+
3
+ import "../dist/index.mjs";
package/dist/index.mjs CHANGED
@@ -33,7 +33,7 @@ function toMetricsPeriod(choice) {
33
33
  //#endregion
34
34
  //#region src/commands/upload.ts
35
35
  function uploadCommand(program) {
36
- program.command("upload").argument("<directory>", "Directory to upload").description("Upload screenshots to Snapvisor").option("-f, --files <patterns...>", "One or more globs matching image file paths to upload", "**/*.{png,jpg,jpeg}").option("-i, --ignore <patterns...>", "One or more globs matching image file paths to ignore (ex: \"**/*.png **/diff.jpg\")").addOption(tokenOption).addOption(projectOption).addOption(buildNameOption).addOption(new Option("--mode <string>", "Mode of comparison applied. CI for visual regression testing, monitoring for visual monitoring.").default("ci").choices(["ci", "monitoring"])).addOption(new Option("--parallel", "Enable parallel mode. Run multiple Argos builds and combine them at the end.\nCan also be set via the ARGOS_PARALLEL environment variable.")).addOption(new Option("--parallel-total <number>", "The number of parallel nodes being ran")).addOption(parallelNonceOption).addOption(new Option("--parallel-index <number>", "The index of the parallel node being ran (must be at least 1)")).addOption(new Option("--reference-branch <string>", "Branch used as baseline for screenshot comparison")).addOption(new Option("--reference-commit <string>", "Commit used as baseline for screenshot comparison")).addOption(new Option("--threshold <number>", "Sensitivity threshold between 0 and 1. The higher the threshold, the less sensitive the diff will be. Default to 0.5")).addOption(new Option("--subset", "Whether this build contains only a subset of screenshots.\nThis is useful when a build is created from an incomplete test suite where some tests are skipped.\nCan also be set via the ARGOS_SUBSET environment variable.")).action(async (directory, options) => {
36
+ program.command("upload").argument("<directory>", "Directory to upload").description("Upload screenshots to Snapvisor").option("-f, --files <patterns...>", "One or more globs matching image file paths to upload", "**/*.{png,jpg,jpeg}").option("-i, --ignore <patterns...>", "One or more globs matching image file paths to ignore (ex: \"**/*.png **/diff.jpg\")").addOption(tokenOption).addOption(projectOption).addOption(buildNameOption).addOption(new Option("--mode <string>", "Mode of comparison applied. CI for visual regression testing, monitoring for visual monitoring.").default("ci").choices(["ci", "monitoring"])).addOption(new Option("--parallel", "Enable parallel mode. Run multiple Snapvisor builds and combine them at the end.\nCan also be set via the ARGOS_PARALLEL environment variable.")).addOption(new Option("--parallel-total <number>", "The number of parallel nodes being ran")).addOption(parallelNonceOption).addOption(new Option("--parallel-index <number>", "The index of the parallel node being ran (must be at least 1)")).addOption(new Option("--reference-branch <string>", "Branch used as baseline for screenshot comparison")).addOption(new Option("--reference-commit <string>", "Commit used as baseline for screenshot comparison")).addOption(new Option("--threshold <number>", "Sensitivity threshold between 0 and 1. The higher the threshold, the less sensitive the diff will be. Default to 0.5")).addOption(new Option("--subset", "Whether this build contains only a subset of screenshots.\nThis is useful when a build is created from an incomplete test suite where some tests are skipped.\nCan also be set via the ARGOS_SUBSET environment variable.")).action(async (directory, options) => {
37
37
  const spinner = ora("Uploading screenshots").start();
38
38
  try {
39
39
  const parallel = (() => {
@@ -78,7 +78,7 @@ function uploadCommand(program) {
78
78
  }
79
79
  //#endregion
80
80
  //#region src/commands/finalize.ts
81
- const skipIfEmptyOption = new Option("--skip-if-empty", "Create a skipped build when no parallel build matches the nonce.\nUseful when uploads are conditional (e.g. skipped by a CI cache) and Argos is a required status check: the skipped build reports a success status even though nothing was uploaded.");
81
+ const skipIfEmptyOption = new Option("--skip-if-empty", "Create a skipped build when no parallel build matches the nonce.\nUseful when uploads are conditional (e.g. skipped by a CI cache) and Snapvisor is a required status check: the skipped build reports a success status even though nothing was uploaded.");
82
82
  function finalizeCommand(program) {
83
83
  program.command("finalize").description("Finalize pending parallel builds").addOption(parallelNonceOption).addOption(tokenOption).addOption(skipIfEmptyOption).addOption(buildNameOption).action(async (options) => {
84
84
  const spinner = ora("Finalizing builds").start();
@@ -125,7 +125,7 @@ function skipCommand(program) {
125
125
  function getApiBaseUrl() {
126
126
  return process.env["ARGOS_API_BASE_URL"];
127
127
  }
128
- /** Create an Argos API client authenticated with the given token. */
128
+ /** Create an Snapvisor API client authenticated with the given token. */
129
129
  function createApiClient(authToken) {
130
130
  return createClient({
131
131
  authToken,
@@ -154,7 +154,7 @@ function formatUser(user) {
154
154
  }
155
155
  function formatMe(me) {
156
156
  const lines = [
157
- `Logged in to Argos as ${formatValue(me.user.name)}.`,
157
+ `Logged in to Snapvisor as ${formatValue(me.user.name)}.`,
158
158
  `Name: ${formatValue(me.user.name)}`,
159
159
  `Email: ${formatValue(me.user.email)}`
160
160
  ];
@@ -375,10 +375,10 @@ function fail(message) {
375
375
  * OAuth 2.1 client configuration and helpers for the `argos login` flow
376
376
  * (Authorization Code + PKCE with a loopback redirect, RFC 8252).
377
377
  *
378
- * The authorization server is the Argos app origin; endpoints and token
379
- * validation are implemented in the main Argos repo (`apps/backend/src/oauth`).
378
+ * The authorization server is the Snapvisor app origin; endpoints and token
379
+ * validation are implemented in the main Snapvisor repo (`apps/backend/src/oauth`).
380
380
  */
381
- /** First-party public client id, seeded in the Argos database. */
381
+ /** First-party public client id, seeded in the Snapvisor database. */
382
382
  const OAUTH_CLIENT_ID = "argos-cli";
383
383
  /**
384
384
  * Scopes requested by `argos login`, covering the CLI's user actions (identity,
@@ -564,8 +564,8 @@ async function getAccessToken() {
564
564
  return tokens.accessToken;
565
565
  } catch (err) {
566
566
  if (config.token) return config.token;
567
- if (err instanceof OAuthTokenError) console.warn("Warning: Your Argos session has expired. Run `argos login` again.");
568
- else console.warn("Warning: Could not reach Argos to refresh your session. Check your connection and try again.");
567
+ if (err instanceof OAuthTokenError) console.warn("Warning: Your Snapvisor session has expired. Run `argos login` again.");
568
+ else console.warn("Warning: Could not reach Snapvisor to refresh your session. Check your connection and try again.");
569
569
  return;
570
570
  }
571
571
  }
@@ -588,7 +588,7 @@ async function clearStoredCredentials() {
588
588
  const BUILD_URL_REGEXP = /^https:\/\/app\.argos-ci\.(?:com|dev(?::\d+)?)\/(?<owner>[^/?#]+)\/(?<project>[^/?#]+)\/builds\/(?<buildNumber>\d+)(?:[/?#]|$)/;
589
589
  /**
590
590
  * Parse a build reference, accepting either a bare build number (`"1234"`) or a
591
- * full Argos build URL. Returns `null` when the input is neither.
591
+ * full Snapvisor build URL. Returns `null` when the input is neither.
592
592
  */
593
593
  function parseBuildReference(reference) {
594
594
  const asNumber = Number(reference);
@@ -607,7 +607,7 @@ function parseBuildReference(reference) {
607
607
  */
608
608
  function parseBuildReferenceOrFail(reference) {
609
609
  const parsed = parseBuildReference(reference);
610
- if (!parsed) fail(`Build reference must be a valid build number or Argos build URL (https://app.argos-ci.com/.../builds/<number>), got "${reference}".`);
610
+ if (!parsed) fail(`Build reference must be a valid build number or Snapvisor build URL (https://app.snapvisor.io/.../builds/<number>), got "${reference}".`);
611
611
  return parsed;
612
612
  }
613
613
  //#endregion
@@ -640,7 +640,7 @@ function parseProjectPathOrFail(slug) {
640
640
  */
641
641
  async function resolveToken(options) {
642
642
  const token = options.token || process.env["ARGOS_TOKEN"] || await getAccessToken();
643
- if (!token) fail("No Argos token found. Use --token, set ARGOS_TOKEN, or run `argos login`.");
643
+ if (!token) fail("No Snapvisor token found. Use --token, set ARGOS_TOKEN, or run `argos login`.");
644
644
  return token;
645
645
  }
646
646
  function explicitProjectPath(reference, options) {
@@ -820,7 +820,7 @@ function buildCommand(program) {
820
820
  * Resolve the Markdown body of a comment or review from the mutually-exclusive
821
821
  * `--body` (inline) and `--body-file` (path) options.
822
822
  *
823
- * The Argos API also accepts a rich-text JSON document, but that form is only
823
+ * The Snapvisor API also accepts a rich-text JSON document, but that form is only
824
824
  * needed for `@mentions` (which require user ids); the CLI exposes Markdown
825
825
  * only, which the API converts server-side.
826
826
  */
@@ -843,7 +843,7 @@ const events = {
843
843
  comment: "COMMENT"
844
844
  };
845
845
  function registerReviewCreate(review) {
846
- review.command("create").description("Submit a review on a build").argument("<buildReference>", "Build number or Argos build URL").addOption(new Option("--event <event>", "Review event to apply to the build").choices(Object.keys(events)).makeOptionMandatory()).option("--body <markdown>", "Markdown comment to attach to the review").option("--body-file <path>", "Read the review comment from a Markdown file").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, options) => runBuildAction({
846
+ review.command("create").description("Submit a review on a build").argument("<buildReference>", "Build number or Snapvisor build URL").addOption(new Option("--event <event>", "Review event to apply to the build").choices(Object.keys(events)).makeOptionMandatory()).option("--body <markdown>", "Markdown comment to attach to the review").option("--body-file <path>", "Read the review comment from a Markdown file").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, options) => runBuildAction({
847
847
  reference,
848
848
  options,
849
849
  auth: "user",
@@ -867,7 +867,7 @@ function registerReviewCreate(review) {
867
867
  //#endregion
868
868
  //#region src/commands/review/dismiss.ts
869
869
  function registerReviewDismiss(review) {
870
- review.command("dismiss").description("Dismiss a submitted review on a build").argument("<buildReference>", "Build number or Argos build URL").argument("<reviewId>", "ID of the review to dismiss").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, reviewId, options) => runBuildAction({
870
+ review.command("dismiss").description("Dismiss a submitted review on a build").argument("<buildReference>", "Build number or Snapvisor build URL").argument("<reviewId>", "ID of the review to dismiss").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, reviewId, options) => runBuildAction({
871
871
  reference,
872
872
  options,
873
873
  auth: "user",
@@ -883,7 +883,7 @@ function registerReviewDismiss(review) {
883
883
  //#endregion
884
884
  //#region src/commands/review/list.ts
885
885
  function registerReviewList(review) {
886
- review.command("list").description("List the reviews submitted on a build").argument("<buildReference>", "Build number or Argos build URL").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, options) => runBuildAction({
886
+ review.command("list").description("List the reviews submitted on a build").argument("<buildReference>", "Build number or Snapvisor build URL").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, options) => runBuildAction({
887
887
  reference,
888
888
  options,
889
889
  auth: "user",
@@ -943,7 +943,7 @@ function parseAnchor(options) {
943
943
  //#endregion
944
944
  //#region src/commands/comment/create.ts
945
945
  function registerCommentCreate(comment) {
946
- comment.command("create").description("Post a comment (or reply) on a build").argument("<buildReference>", "Build number or Argos build URL").option("--body <markdown>", "Markdown body of the comment").option("--body-file <path>", "Read the comment body from a Markdown file").option("--reply-to <threadId>", "Reply to an existing thread (its root comment ID)").option("--diff <screenshotDiffId>", "Anchor the comment to a screenshot diff").option("--anchor-point <x,y>", "Point on the diff in normalized 0-1 coordinates (requires --diff)").option("--anchor-lines <from,to>", "1-based inclusive line range on the diff (requires --diff)").option("--draft", "Attach to your pending review instead of posting immediately").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, options) => runBuildAction({
946
+ comment.command("create").description("Post a comment (or reply) on a build").argument("<buildReference>", "Build number or Snapvisor build URL").option("--body <markdown>", "Markdown body of the comment").option("--body-file <path>", "Read the comment body from a Markdown file").option("--reply-to <threadId>", "Reply to an existing thread (its root comment ID)").option("--diff <screenshotDiffId>", "Anchor the comment to a screenshot diff").option("--anchor-point <x,y>", "Point on the diff in normalized 0-1 coordinates (requires --diff)").option("--anchor-lines <from,to>", "1-based inclusive line range on the diff (requires --diff)").option("--draft", "Attach to your pending review instead of posting immediately").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, options) => runBuildAction({
947
947
  reference,
948
948
  options,
949
949
  auth: "user",
@@ -978,7 +978,7 @@ function registerCommentCreate(comment) {
978
978
  */
979
979
  function defineCommentAction(opts) {
980
980
  return (comment) => {
981
- comment.command(opts.name).description(opts.description).argument("<buildReference>", "Build number or Argos build URL").argument("<commentId>", "ID of the comment").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, commentId, options) => runBuildAction({
981
+ comment.command(opts.name).description(opts.description).argument("<buildReference>", "Build number or Snapvisor build URL").argument("<commentId>", "ID of the comment").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, commentId, options) => runBuildAction({
982
982
  reference,
983
983
  options,
984
984
  auth: "user",
@@ -1008,7 +1008,7 @@ const registerCommentDelete = defineCommentAction({
1008
1008
  //#endregion
1009
1009
  //#region src/commands/comment/edit.ts
1010
1010
  function registerCommentEdit(comment) {
1011
- comment.command("edit").description("Update the body of a comment (author only)").argument("<buildReference>", "Build number or Argos build URL").argument("<commentId>", "ID of the comment").option("--body <markdown>", "New Markdown body of the comment").option("--body-file <path>", "Read the new body from a Markdown file").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, commentId, options) => runBuildAction({
1011
+ comment.command("edit").description("Update the body of a comment (author only)").argument("<buildReference>", "Build number or Snapvisor build URL").argument("<commentId>", "ID of the comment").option("--body <markdown>", "New Markdown body of the comment").option("--body-file <path>", "Read the new body from a Markdown file").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, commentId, options) => runBuildAction({
1012
1012
  reference,
1013
1013
  options,
1014
1014
  auth: "user",
@@ -1042,7 +1042,7 @@ const registerCommentGet = defineCommentAction({
1042
1042
  //#endregion
1043
1043
  //#region src/commands/comment/list.ts
1044
1044
  function registerCommentList(comment) {
1045
- comment.command("list").description("List the comments on a build").argument("<buildReference>", "Build number or Argos build URL").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, options) => runBuildAction({
1045
+ comment.command("list").description("List the comments on a build").argument("<buildReference>", "Build number or Snapvisor build URL").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, options) => runBuildAction({
1046
1046
  reference,
1047
1047
  options,
1048
1048
  auth: "user",
@@ -1057,7 +1057,7 @@ function registerCommentList(comment) {
1057
1057
  //#endregion
1058
1058
  //#region src/commands/comment/react.ts
1059
1059
  function registerCommentReact(comment) {
1060
- comment.command("react").description("Add an emoji reaction to a comment").argument("<buildReference>", "Build number or Argos build URL").argument("<commentId>", "ID of the comment").argument("<emoji>", "Emoji to react with").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, commentId, emoji, options) => runBuildAction({
1060
+ comment.command("react").description("Add an emoji reaction to a comment").argument("<buildReference>", "Build number or Snapvisor build URL").argument("<commentId>", "ID of the comment").argument("<emoji>", "Emoji to react with").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, commentId, emoji, options) => runBuildAction({
1061
1061
  reference,
1062
1062
  options,
1063
1063
  auth: "user",
@@ -1100,7 +1100,7 @@ const registerCommentSubscribe = defineCommentAction({
1100
1100
  //#endregion
1101
1101
  //#region src/commands/comment/unreact.ts
1102
1102
  function registerCommentUnreact(comment) {
1103
- comment.command("unreact").description("Remove one of your emoji reactions from a comment").argument("<buildReference>", "Build number or Argos build URL").argument("<commentId>", "ID of the comment").argument("<emoji>", "Emoji reaction to remove").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, commentId, emoji, options) => runBuildAction({
1103
+ comment.command("unreact").description("Remove one of your emoji reactions from a comment").argument("<buildReference>", "Build number or Snapvisor build URL").argument("<commentId>", "ID of the comment").argument("<emoji>", "Emoji reaction to remove").addOption(tokenOption).addOption(projectPathOption).addOption(jsonOption).action((reference, commentId, emoji, options) => runBuildAction({
1104
1104
  reference,
1105
1105
  options,
1106
1106
  auth: "user",
@@ -1163,7 +1163,7 @@ const LOGIN_TIMEOUT_MS = 300 * 1e3;
1163
1163
  const CALLBACK_ERROR_HTML = `<!DOCTYPE html><html lang="en">
1164
1164
  <head>
1165
1165
  <meta charset="UTF-8">
1166
- <title>Argos CLI</title>
1166
+ <title>Snapvisor CLI</title>
1167
1167
  </head>
1168
1168
  <body>
1169
1169
  <p>Authorization failed. Please run <code>argos login</code> again.</p>
@@ -1297,7 +1297,7 @@ function loginCommand(program) {
1297
1297
  console.error(errorColor(`Error: Authentication failed${err instanceof Error ? ` — ${err.message}` : ""}. Please run \`argos login\` again.`));
1298
1298
  process.exit(1);
1299
1299
  }
1300
- console.log(successColor("Logged in to Argos successfully."));
1300
+ console.log(successColor("Logged in to Snapvisor successfully."));
1301
1301
  });
1302
1302
  }
1303
1303
  //#endregion
@@ -1311,7 +1311,7 @@ function logoutCommand(program) {
1311
1311
  }
1312
1312
  if (oauth) await revokeToken(oauth.refreshToken);
1313
1313
  await clearStoredCredentials();
1314
- console.log("Logged out from Argos.");
1314
+ console.log("Logged out from Snapvisor.");
1315
1315
  });
1316
1316
  }
1317
1317
  //#endregion
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@snapvisor/cli",
3
3
  "description": "Command-line (CLI) for visual testing with Snapvisor.",
4
- "version": "6.4.1",
4
+ "version": "7.0.0",
5
5
  "bin": {
6
6
  "snapvisor": "./bin/argos-cli.js",
7
7
  "argos": "./bin/argos-cli.js"
@@ -12,10 +12,10 @@
12
12
  },
13
13
  "repository": {
14
14
  "type": "git",
15
- "url": "https://github.com/argos-ci/argos-javascript.git",
16
- "directory": "packages/core"
15
+ "url": "git+https://github.com/DevinoSolutions/snapvisor-js.git",
16
+ "directory": "packages/cli"
17
17
  },
18
- "homepage": "https://argos-ci.com/docs/reference/argos-command-line-interface-cli",
18
+ "homepage": "https://snapvisor.io/docs",
19
19
  "bugs": {
20
20
  "url": "https://github.com/argos-ci/argos-javascript/issues"
21
21
  },
@@ -35,8 +35,8 @@
35
35
  "access": "public"
36
36
  },
37
37
  "dependencies": {
38
- "@snapvisor/api-client": "0.26.0",
39
- "@snapvisor/core": "6.6.2",
38
+ "@snapvisor/api-client": "0.27.0",
39
+ "@snapvisor/core": "7.0.0",
40
40
  "commander": "^15.0.0",
41
41
  "open": "^11.0.0",
42
42
  "ora": "^9.4.0",
@@ -55,5 +55,5 @@
55
55
  "check-format": "prettier --check --ignore-unknown --ignore-path=../../.gitignore --ignore-path=../../.prettierignore .",
56
56
  "lint": "eslint ."
57
57
  },
58
- "gitHead": "7c74326b53f6f513ac4087385b88e8fbd7e92eac"
58
+ "gitHead": "b27308a53667724cc3c4f3e5eb7811bce3321f15"
59
59
  }