@eik/cli 3.1.50 → 3.1.51

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/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [3.1.51](https://github.com/eik-lib/cli/compare/v3.1.50...v3.1.51) (2026-05-28)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * replace ora with picospinner ([784e3c5](https://github.com/eik-lib/cli/commit/784e3c51c677fbe9d542622ce9f5375532b244b6))
7
+ * replace rimraf with native Node ([ee58048](https://github.com/eik-lib/cli/commit/ee58048544dffedfc9f9a359f9fdd56a0130d280))
8
+
1
9
  ## [3.1.50](https://github.com/eik-lib/cli/compare/v3.1.49...v3.1.50) (2026-05-25)
2
10
 
3
11
 
package/classes/meta.js CHANGED
@@ -61,7 +61,7 @@ export default class Meta {
61
61
  };
62
62
 
63
63
  const vers = new Map(versions);
64
- data[type].versions = Array.from(vers.values());
64
+ data[type].versions = [...vers.values()];
65
65
  for (let i = 0; i < data[type].versions.length; i++) {
66
66
  const { version } = data[type].versions[i];
67
67
  const url = new URL(
@@ -1,7 +1,6 @@
1
1
  import { join } from "node:path";
2
2
  import { existsSync } from "node:fs";
3
- import { readdir } from "node:fs/promises";
4
- import { rimraf } from "rimraf";
3
+ import { readdir, rm } from "node:fs/promises";
5
4
  import Task from "./task.js";
6
5
 
7
6
  export default class Cleanup extends Task {
@@ -14,7 +13,9 @@ export default class Cleanup extends Task {
14
13
  await Promise.all(
15
14
  dir
16
15
  .filter((file) => file !== "integrity.json")
17
- .map((file) => rimraf(join(path, file))),
16
+ .map((file) =>
17
+ rm(join(path, file), { recursive: true, force: true }),
18
+ ),
18
19
  );
19
20
  }
20
21
  }
package/commands/login.js CHANGED
@@ -71,7 +71,7 @@ export const handler = commandHandler(
71
71
 
72
72
  if (rl) rl.close();
73
73
 
74
- spinner.start();
74
+ if (!spinner.running) spinner.start();
75
75
  const token = await new Login({
76
76
  logger,
77
77
  key: k,
@@ -85,7 +85,7 @@ export const handler = commandHandler(
85
85
 
86
86
  const tokens = new Map(meta.tokens);
87
87
  tokens.set(s, token);
88
- meta.tokens = Array.from(tokens);
88
+ meta.tokens = [...tokens];
89
89
 
90
90
  await write(meta, { cwd: homedir, filename: ".eikrc" });
91
91
  }
package/commands/map.js CHANGED
@@ -68,7 +68,7 @@ export const handler = commandHandler(
68
68
 
69
69
  const artifact = new Artifact(pkgMeta);
70
70
  const versions = new Map(pkgMeta.versions);
71
- artifact.versions = Array.from(versions.values());
71
+ artifact.versions = [...versions.values()];
72
72
  artifact.format(server);
73
73
 
74
74
  process.stdout.write("\n");
@@ -96,14 +96,14 @@ export const handler = commandHandler(
96
96
  const artifact = new Artifact(pkgMeta);
97
97
  artifact.versions = [pkgVersionMeta];
98
98
 
99
- spinner.text = "";
100
- spinner.stopAndPersist();
99
+ spinner.setText("");
100
+ spinner.stop();
101
101
 
102
102
  artifact.format(server);
103
103
  process.stdout.write("\n");
104
104
  } else {
105
- spinner.text = "";
106
- spinner.stopAndPersist();
105
+ spinner.setText("");
106
+ spinner.stop();
107
107
 
108
108
  process.stdout.write(
109
109
  `:: ${c.bgYellow(
package/index.js CHANGED
@@ -34,7 +34,7 @@ const { version: cliVersion } = JSON.parse(
34
34
  if (
35
35
  process.argv.includes("-v") ||
36
36
  // last position only to avoid conflict with publish command
37
- process.argv[process.argv.length - 1].includes("--version")
37
+ process.argv.at(-1).includes("--version")
38
38
  ) {
39
39
  console.log(cliVersion);
40
40
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eik/cli",
3
- "version": "3.1.50",
3
+ "version": "3.1.51",
4
4
  "description": "CLI tool for publishing assets to an Eik server",
5
5
  "main": "./classes/index.js",
6
6
  "types": "./types/classes/index.d.ts",
@@ -20,7 +20,7 @@
20
20
  "types"
21
21
  ],
22
22
  "scripts": {
23
- "clean": "rimraf .tap node_modules types",
23
+ "clean": "git clean -fdx",
24
24
  "test": "cross-env HTTP_PORT=0 LOG_LEVEL=fatal tap --timeout 180 --jobs=1 --disable-coverage",
25
25
  "test:integration": "cross-env HTTP_PORT=0 LOG_LEVEL=fatal tap --timeout 180 --jobs=1 --disable-coverage test/integration/**/*.test.mjs",
26
26
  "test:unit": "cross-env HTTP_PORT=0 LOG_LEVEL=fatal tap --timeout 180 --jobs=1 --disable-coverage test/*.test.mjs",
@@ -48,8 +48,7 @@
48
48
  "date-fns": "4.3.0",
49
49
  "form-data": "4.0.5",
50
50
  "gzip-size": "7.0.0",
51
- "ora": "9.4.0",
52
- "rimraf": "6.1.3",
51
+ "picospinner": "3.0.0",
53
52
  "semver": "7.8.1",
54
53
  "tar": "7.5.15",
55
54
  "tinyrainbow": "3.1.0",
@@ -62,17 +61,17 @@
62
61
  }
63
62
  },
64
63
  "devDependencies": {
65
- "@eik/eslint-config": "1.0.25",
64
+ "@eik/eslint-config": "2.0.0",
66
65
  "@eik/prettier-config": "1.0.1",
67
66
  "@eik/semantic-release-config": "1.0.15",
68
67
  "@eik/service": "5.1.45",
69
68
  "@eik/sink-memory": "2.0.27",
70
69
  "@eik/typescript-config": "1.0.0",
70
+ "@types/node": "^20.0.0",
71
71
  "@types/yargs": "17.0.35",
72
72
  "cross-env": "10.1.0",
73
73
  "eslint": "9.39.2",
74
74
  "fastify": "5.8.5",
75
- "fs-extra": "11.3.3",
76
75
  "npm-run-all2": "8.0.4",
77
76
  "prettier": "3.8.1",
78
77
  "semantic-release": "25.0.3",
@@ -1,4 +1,4 @@
1
- import ora from "ora";
1
+ import { Spinner } from "picospinner";
2
2
  import logger from "./logger.js";
3
3
  import { EikCliError } from "./error.js";
4
4
  import { getArgsOrDefaults } from "./defaults.js";
@@ -25,7 +25,8 @@ import { getArgsOrDefaults } from "./defaults.js";
25
25
  */
26
26
  export function commandHandler(opts, handlerFunction) {
27
27
  return async (argv) => {
28
- const spinner = ora({ stream: process.stdout }).start();
28
+ const spinner = new Spinner();
29
+ spinner.start();
29
30
  const log = logger(spinner, argv.debug);
30
31
 
31
32
  try {
@@ -38,8 +39,8 @@ ${JSON.stringify(args, null, 2)}`);
38
39
 
39
40
  await handlerFunction(args, log, spinner);
40
41
 
41
- spinner.text = "";
42
- spinner.stopAndPersist();
42
+ spinner.setText("");
43
+ spinner.stop();
43
44
  } catch (e) {
44
45
  if (e instanceof EikCliError) {
45
46
  log.error(e.message);
@@ -52,8 +53,8 @@ ${JSON.stringify(args, null, 2)}`);
52
53
  }
53
54
  }
54
55
 
55
- spinner.text = "";
56
- spinner.stopAndPersist();
56
+ spinner.setText("");
57
+ spinner.stop();
57
58
  return process.exit(e.exitCode);
58
59
  }
59
60
 
@@ -64,8 +65,8 @@ ${JSON.stringify(args, null, 2)}`);
64
65
  log.debug(error.stack);
65
66
  }
66
67
 
67
- spinner.text = "";
68
- spinner.stopAndPersist();
68
+ spinner.setText("");
69
+ spinner.stop();
69
70
  process.exit(1);
70
71
  }
71
72
  };
package/utils/logger.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Creates a logger object that wraps an instance of the "ora" module in order to provide consistent command line logging that includes a spinner
2
+ * Creates a logger object that wraps an instance of the "picospinner" module in order to provide consistent command line logging that includes a spinner
3
3
  *
4
- * @param {object} spinner
4
+ * @param {import('picospinner').Spinner} spinner
5
5
  * @param {boolean} debug
6
6
  */
7
7
  const logger = (spinner, debug = false) => ({
@@ -9,45 +9,55 @@ const logger = (spinner, debug = false) => ({
9
9
  * @param {string} message
10
10
  */
11
11
  fatal(message) {
12
- spinner.fail(message).start();
12
+ spinner.fail(message);
13
+ if (!spinner.running) spinner.start();
13
14
  },
14
15
  /**
15
16
  * @param {string} message
16
17
  */
17
18
  error(message) {
18
- spinner.fail(message).start();
19
+ spinner.fail(message);
20
+ if (!spinner.running) spinner.start();
19
21
  },
20
22
  /**
21
23
  * @param {string} message
22
24
  */
23
25
  warn(message) {
24
- spinner.warn(message).start();
26
+ spinner.warn(message);
27
+ if (!spinner.running) spinner.start();
25
28
  },
26
29
  /**
27
30
  * @param {string} message
28
31
  */
29
32
  info(message) {
30
33
  if (typeof message !== "string") {
31
- spinner.text = "";
32
- spinner.stopAndPersist();
34
+ spinner.setText("");
35
+ spinner.stop();
33
36
 
34
37
  console.log(message);
35
38
  spinner.start();
36
39
  } else {
37
- spinner.succeed(message).start();
40
+ spinner.succeed(message);
41
+ if (!spinner.running) spinner.start();
38
42
  }
39
43
  },
40
44
  /**
41
45
  * @param {string} message
42
46
  */
43
47
  debug(message) {
44
- if (debug) spinner.info(message).start();
48
+ if (debug) {
49
+ spinner.info(message);
50
+ if (!spinner.running) spinner.start();
51
+ }
45
52
  },
46
53
  /**
47
54
  * @param {string} message
48
55
  */
49
56
  trace(message) {
50
- if (debug) spinner.info(message).start();
57
+ if (debug) {
58
+ spinner.info(message);
59
+ if (!spinner.running) spinner.start();
60
+ }
51
61
  },
52
62
  });
53
63