@eik/cli 3.0.0-next.1 → 3.0.2

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 (95) hide show
  1. package/CHANGELOG.md +156 -3
  2. package/classes/alias.js +43 -16
  3. package/classes/index.js +47 -23
  4. package/classes/integrity.js +27 -16
  5. package/classes/login.js +21 -7
  6. package/classes/meta.js +20 -12
  7. package/classes/ping.js +20 -9
  8. package/classes/publish/map.js +33 -10
  9. package/classes/publish/package/index.js +54 -17
  10. package/classes/publish/package/tasks/check-bundle-sizes.js +7 -11
  11. package/classes/publish/package/tasks/check-if-already-published.js +8 -11
  12. package/classes/publish/package/tasks/cleanup.js +7 -9
  13. package/classes/publish/package/tasks/create-temp-directory.js +5 -9
  14. package/classes/publish/package/tasks/create-zip-file.js +6 -11
  15. package/classes/publish/package/tasks/dry-run.js +4 -8
  16. package/classes/publish/package/tasks/save-metafile.js +5 -7
  17. package/classes/publish/package/tasks/task.js +3 -5
  18. package/classes/publish/package/tasks/upload-files.js +16 -17
  19. package/classes/publish/package/tasks/validate-input.js +4 -8
  20. package/classes/version.js +38 -21
  21. package/commands/alias.js +105 -0
  22. package/commands/index.js +27 -0
  23. package/commands/init.js +69 -52
  24. package/commands/integrity.js +15 -32
  25. package/commands/login.js +23 -35
  26. package/commands/map-alias.js +16 -26
  27. package/commands/map.js +90 -0
  28. package/commands/meta.js +12 -29
  29. package/commands/npm-alias.js +16 -26
  30. package/commands/package-alias.js +21 -28
  31. package/commands/ping.js +11 -21
  32. package/commands/publish.js +82 -138
  33. package/commands/version.js +16 -33
  34. package/formatters/alias.js +4 -8
  35. package/formatters/artifact.js +4 -8
  36. package/formatters/file.js +3 -10
  37. package/formatters/index.js +5 -5
  38. package/formatters/version.js +5 -12
  39. package/index.js +53 -12
  40. package/package.json +49 -52
  41. package/readme.md +16 -4
  42. package/types/classes/alias.d.ts +60 -0
  43. package/types/classes/index.d.ts +37 -0
  44. package/types/classes/integrity.d.ts +35 -0
  45. package/types/classes/login.d.ts +25 -0
  46. package/types/classes/meta.d.ts +28 -0
  47. package/types/classes/ping.d.ts +23 -0
  48. package/types/classes/publish/map.d.ts +51 -0
  49. package/types/classes/publish/package/index.d.ts +94 -0
  50. package/types/classes/publish/package/tasks/check-bundle-sizes.d.ts +4 -0
  51. package/types/classes/publish/package/tasks/check-if-already-published.d.ts +4 -0
  52. package/types/classes/publish/package/tasks/cleanup.d.ts +4 -0
  53. package/types/classes/publish/package/tasks/create-temp-directory.d.ts +4 -0
  54. package/types/classes/publish/package/tasks/create-zip-file.d.ts +4 -0
  55. package/types/classes/publish/package/tasks/dry-run.d.ts +7 -0
  56. package/types/classes/publish/package/tasks/save-metafile.d.ts +4 -0
  57. package/types/classes/publish/package/tasks/task.d.ts +8 -0
  58. package/types/classes/publish/package/tasks/upload-files.d.ts +4 -0
  59. package/types/classes/publish/package/tasks/validate-input.d.ts +4 -0
  60. package/types/classes/version.d.ts +43 -0
  61. package/types/utils/hash/compare.d.ts +2 -0
  62. package/types/utils/hash/file.d.ts +2 -0
  63. package/types/utils/hash/files.d.ts +2 -0
  64. package/types/utils/hash/index.d.ts +9 -0
  65. package/types/utils/http/index.d.ts +12 -0
  66. package/types/utils/http/integrity.d.ts +2 -0
  67. package/types/utils/http/latest-version.d.ts +2 -0
  68. package/types/utils/http/request.d.ts +33 -0
  69. package/types/utils/http/versions.d.ts +5 -0
  70. package/types/utils/index.d.ts +6 -0
  71. package/types/utils/json/index.d.ts +9 -0
  72. package/types/utils/json/read.d.ts +5 -0
  73. package/types/utils/json/write-eik.d.ts +5 -0
  74. package/types/utils/json/write.d.ts +5 -0
  75. package/types/utils/logger.d.ts +33 -0
  76. package/types/utils/type-slug.d.ts +2 -0
  77. package/types/utils/type-title.d.ts +2 -0
  78. package/utils/hash/compare.js +1 -3
  79. package/utils/hash/file.js +3 -5
  80. package/utils/hash/files.js +4 -6
  81. package/utils/hash/index.js +4 -4
  82. package/utils/http/index.js +6 -5
  83. package/utils/http/integrity.js +2 -5
  84. package/utils/http/latest-version.js +2 -5
  85. package/utils/http/request.js +25 -19
  86. package/utils/http/versions.js +2 -5
  87. package/utils/index.js +6 -4
  88. package/utils/json/index.js +4 -4
  89. package/utils/json/read.js +5 -7
  90. package/utils/json/write-eik.js +4 -6
  91. package/utils/json/write.js +4 -6
  92. package/utils/logger.js +2 -5
  93. package/utils/type-slug.js +1 -1
  94. package/utils/type-title.js +1 -1
  95. package/utils/get-cwd.js +0 -14
@@ -1,23 +1,18 @@
1
- 'use strict';
1
+ // @deprecated in favor of `alias` command
2
2
 
3
- const ora = require('ora');
4
- const { getDefaults } = require('@eik/common-config-loader');
5
- const Alias = require('../classes/alias');
6
- const { logger, getCWD } = require('../utils');
7
- const { Alias: AliasFormatter } = require('../formatters');
3
+ import ora from 'ora';
4
+ import Alias from '../classes/alias.js';
5
+ import { logger, getDefaults } from '../utils/index.js';
6
+ import { Alias as AliasFormatter } from '../formatters/index.js';
8
7
 
9
- exports.command = 'npm-alias <name> <version> <alias>';
8
+ export const command = 'npm-alias <name> <version> <alias>';
10
9
 
11
- exports.aliases = ['na', 'dep-alias', 'dependency-alias'];
10
+ export const aliases = ['na', 'dep-alias', 'dependency-alias'];
12
11
 
13
- exports.describe = `Create a semver major alias for an NPM package as identified by its name and version.
14
- An NPM package with the given name and version must already exist on the asset server
15
- Alias should be the semver major part of the NPM package version.
16
- Eg. For an NPM package of version 5.4.3, you should use 5 as the alias`;
12
+ export const describe = `DEPRECATED: This command has been replaced by the alias command and will be removed in a future version. Create a semver major alias for an NPM package as identified by its name and version. An NPM package with the given name and version must already exist on the asset server. Alias should be the semver major part of the NPM package version. Eg. For an NPM package of version 5.4.3, you should use 5 as the alias`;
17
13
 
18
- exports.builder = (yargs) => {
19
- const cwd = getCWD();
20
- const defaults = getDefaults(cwd);
14
+ export const builder = (yargs) => {
15
+ const defaults = getDefaults(yargs.argv.config || yargs.argv.cwd);
21
16
 
22
17
  yargs
23
18
  .positional('name', {
@@ -38,18 +33,9 @@ exports.builder = (yargs) => {
38
33
  server: {
39
34
  alias: 's',
40
35
  describe: 'Specify location of asset server.',
36
+ // @ts-expect-error
41
37
  default: defaults.server,
42
38
  },
43
- cwd: {
44
- alias: 'c',
45
- describe: 'Alter current working directory.',
46
- default: defaults.cwd,
47
- },
48
- debug: {
49
- describe: 'Logs additional messages',
50
- default: false,
51
- type: 'boolean',
52
- },
53
39
  token: {
54
40
  describe:
55
41
  'Provide a jwt token to be used to authenticate with the Eik server.',
@@ -58,6 +44,7 @@ exports.builder = (yargs) => {
58
44
  },
59
45
  });
60
46
 
47
+ // @ts-expect-error
61
48
  yargs.default('token', defaults.token, defaults.token ? '######' : '');
62
49
 
63
50
  yargs.example(`eik npm lit-html 1.0.0 1`);
@@ -67,7 +54,7 @@ exports.builder = (yargs) => {
67
54
  );
68
55
  };
69
56
 
70
- exports.handler = async (argv) => {
57
+ export const handler = async (argv) => {
71
58
  const spinner = ora({ stream: process.stdout }).start('working...');
72
59
  let success = false;
73
60
  const { debug, server } = argv;
@@ -98,3 +85,6 @@ exports.handler = async (argv) => {
98
85
  process.exit(1);
99
86
  }
100
87
  };
88
+
89
+ export const deprecated =
90
+ '"npm-alias" will be removed in a future version. Please use "alias" instead';
@@ -1,41 +1,39 @@
1
- 'use strict';
1
+ // @deprecated in favor of `alias` command
2
2
 
3
- const ora = require('ora');
4
- const semver = require('semver');
5
- const { getDefaults } = require('@eik/common-config-loader');
6
- const Alias = require('../classes/alias');
7
- const { logger, getCWD } = require('../utils');
8
- const { Alias: AliasFormatter } = require('../formatters');
3
+ import ora from 'ora';
4
+ import semver from 'semver';
5
+ import Alias from '../classes/alias.js';
6
+ import { logger, getDefaults } from '../utils/index.js';
7
+ import { Alias as AliasFormatter } from '../formatters/index.js';
9
8
 
10
- exports.command = 'package-alias [name] [version] [alias]';
9
+ export const command = 'package-alias [name] [version] [alias]';
11
10
 
12
- exports.aliases = ['pkg-alias', 'pa'];
11
+ export const aliases = ['pkg-alias', 'pa'];
13
12
 
14
- exports.describe = `Create a semver major alias for a package as identified by its name and version.
15
- A package with the given name and version must already exist on asset server
16
- Alias should be the semver major part of the package version.
17
- Eg. For a package of version 5.4.3, you should use 5 as the alias`;
13
+ export const describe = `DEPRECATED: This command has been replaced by the alias command and will be removed in a future version. Create a semver major alias for a package as identified by its name and version. A package with the given name and version must already exist on asset server. Alias should be the semver major part of the package version. Eg. For a package of version 5.4.3, you should use 5 as the alias`;
18
14
 
19
- exports.builder = (yargs) => {
20
- const cwd = getCWD();
21
- const defaults = getDefaults(cwd);
15
+ export const builder = (yargs) => {
16
+ const defaults = getDefaults(yargs.argv.config || yargs.argv.cwd);
22
17
 
23
18
  yargs
24
19
  .positional('name', {
25
20
  describe: 'Name matching existing name for a package on Eik server',
26
21
  type: 'string',
22
+ // @ts-expect-error
27
23
  default: defaults.name,
28
24
  })
29
25
  .positional('version', {
30
26
  describe:
31
27
  'Version matching existing version for a package on Eik server',
32
28
  type: 'string',
29
+ // @ts-expect-error
33
30
  default: defaults.version,
34
31
  })
35
32
  .positional('alias', {
36
33
  describe:
37
34
  'Alias for a semver version. Must be the semver major component of version. Eg. 1.0.0 should be given as 1',
38
35
  type: 'string',
36
+ // @ts-expect-error
39
37
  default: defaults.version ? semver.major(defaults.version) : null,
40
38
  });
41
39
 
@@ -43,18 +41,9 @@ exports.builder = (yargs) => {
43
41
  server: {
44
42
  alias: 's',
45
43
  describe: 'Specify location of Eik asset server.',
44
+ // @ts-expect-error
46
45
  default: defaults.server,
47
46
  },
48
- cwd: {
49
- alias: 'c',
50
- describe: 'Alter the current working directory.',
51
- default: defaults.cwd,
52
- },
53
- debug: {
54
- describe: 'Logs additional messages',
55
- default: false,
56
- type: 'boolean',
57
- },
58
47
  token: {
59
48
  describe:
60
49
  'Provide a jwt token to be used to authenticate with the Eik server.',
@@ -63,6 +52,7 @@ exports.builder = (yargs) => {
63
52
  },
64
53
  });
65
54
 
55
+ // @ts-expect-error
66
56
  yargs.default('token', defaults.token, defaults.token ? '######' : '');
67
57
 
68
58
  yargs.example(`eik package-alias my-app 1.0.0 1`);
@@ -74,7 +64,7 @@ exports.builder = (yargs) => {
74
64
  yargs.example(`eik package-alias my-app 4.2.2 4 --debug`);
75
65
  };
76
66
 
77
- exports.handler = async (argv) => {
67
+ export const handler = async (argv) => {
78
68
  const spinner = ora({ stream: process.stdout }).start('working...');
79
69
  let success = false;
80
70
  const { debug, server } = argv;
@@ -102,8 +92,11 @@ exports.handler = async (argv) => {
102
92
  spinner.text = '';
103
93
  spinner.stopAndPersist();
104
94
  if (success) {
105
- af.format(server);
95
+ af?.format(server);
106
96
  } else {
107
97
  process.exit(1);
108
98
  }
109
99
  };
100
+
101
+ export const deprecated =
102
+ '"package-alias" will be removed in a future version. Please use "alias" instead';
package/commands/ping.js CHANGED
@@ -1,45 +1,35 @@
1
- 'use strict';
1
+ import ora from 'ora';
2
+ import Ping from '../classes/ping.js';
3
+ import { logger, getDefaults } from '../utils/index.js';
2
4
 
3
- const ora = require('ora');
4
- const { getDefaults } = require('@eik/common-config-loader');
5
- const Ping = require('../classes/ping');
6
- const { logger, getCWD } = require('../utils');
5
+ export const command = 'ping [server]';
7
6
 
8
- exports.command = 'ping [server]';
7
+ export const aliases = [];
9
8
 
10
- exports.aliases = [];
9
+ export const describe = `Ping an Eik server to check that it is responding.`;
11
10
 
12
- exports.describe = `Ping an Eik server to check that it is responding.`;
13
-
14
- exports.builder = (yargs) => {
15
- const cwd = getCWD();
16
- const defaults = getDefaults(cwd);
11
+ export const builder = (yargs) => {
12
+ const defaults = getDefaults(yargs.argv.config || yargs.argv.cwd);
17
13
 
18
14
  yargs.positional('server', {
19
15
  describe: 'Specify location of Eik server to ping.',
16
+ // @ts-expect-error
20
17
  default: defaults.server,
21
18
  });
22
19
 
23
- yargs.options({
24
- debug: {
25
- describe: 'Logs additional messages',
26
- default: false,
27
- type: 'boolean',
28
- },
29
- });
30
-
31
20
  yargs.example(`eik ping`);
32
21
  yargs.example(`eik ping http://assets.myeikserver.com`);
33
22
  yargs.example(`eik ping http://assets.myeikserver.com --debug`);
34
23
  };
35
24
 
36
- exports.handler = async (argv) => {
25
+ export const handler = async (argv) => {
37
26
  const spinner = ora({ stream: process.stdout }).start('working...');
38
27
  const { debug, server } = argv;
39
28
 
40
29
  try {
41
30
  await new Ping({ logger: logger(spinner, debug), server }).run();
42
31
  } catch (err) {
32
+ // @ts-expect-error
43
33
  logger.warn(err.message);
44
34
  }
45
35
 
@@ -1,35 +1,20 @@
1
- 'use strict';
1
+ import { join } from 'path';
2
+ import ora from 'ora';
3
+ import chalk from 'chalk';
4
+ import PublishPackage from '../classes/publish/package/index.js';
5
+ import { logger, getDefaults, typeSlug, typeTitle } from '../utils/index.js';
6
+ import { Artifact } from '../formatters/index.js';
2
7
 
3
- const { join } = require('path');
4
- const fetch = require('node-fetch');
5
- const ora = require('ora');
6
- const chalk = require('chalk');
7
- const { configStore, getDefaults } = require('@eik/common-config-loader');
8
- const { typeSlug, typeTitle } = require('@eik/common-utils');
8
+ export const command = 'publish';
9
9
 
10
- const PublishPackage = require('../classes/publish/package/index');
11
- const { logger, getCWD } = require('../utils');
10
+ export const aliases = ['pkg', 'package', 'pub'];
12
11
 
13
- const { Artifact } = require('../formatters');
14
- const PublishMap = require('../classes/publish/map');
12
+ export const describe = `Publish an app package to an Eik server. Reads configuration from eik.json or package.json files. See https://eik.dev for more details.`;
15
13
 
16
- exports.command = 'publish';
17
-
18
- exports.aliases = ['pkg', 'package', 'pub'];
19
-
20
- exports.describe = `Publish files to an Eik server. Reads configuration from eik.json or package.json files. See https://eik.dev for more details.`;
21
-
22
- exports.builder = (yargs) => {
23
- const cwd = getCWD();
24
- const defaults = getDefaults(cwd);
14
+ export const builder = (yargs) => {
15
+ const defaults = getDefaults(yargs.argv.config || yargs.argv.cwd);
25
16
 
26
17
  yargs.options({
27
- cwd: {
28
- alias: 'c',
29
- describe: 'Alter the current working directory.',
30
- default: defaults.cwd,
31
- type: 'string',
32
- },
33
18
  dryRun: {
34
19
  alias: 'd',
35
20
  describe:
@@ -37,31 +22,14 @@ exports.builder = (yargs) => {
37
22
  default: false,
38
23
  type: 'boolean',
39
24
  },
40
- debug: {
41
- describe: 'Logs additional messages',
42
- default: false,
43
- type: 'boolean',
44
- },
45
25
  token: {
46
- describe: `Provide a jwt token to be used to authenticate with the Eik server.
47
- Automatically determined if authenticated (via eik login)`,
26
+ describe: `Provide a jwt token to be used to authenticate with the Eik server. Automatically determined if authenticated (via eik login)`,
48
27
  type: 'string',
49
28
  alias: 't',
50
29
  },
51
- type: {
52
- describe:
53
- 'Optional flag to define the type of asset you wish to publish. This can be "package", "map" or "npm". Default reads from eik configuration "type" field.',
54
- default: '',
55
- type: 'string',
56
- },
57
- file: {
58
- describe:
59
- 'Path to import map file on local disk relative to the current working directory. Default reads the "files" in the eik config.',
60
- type: 'string',
61
- normalize: true,
62
- },
63
30
  });
64
31
 
32
+ // @ts-expect-error
65
33
  yargs.default('token', defaults.token, defaults.token ? '######' : '');
66
34
 
67
35
  yargs.example(`eik publish`);
@@ -71,115 +39,91 @@ exports.builder = (yargs) => {
71
39
  yargs.example(`eik pkg --debug`);
72
40
  };
73
41
 
74
- exports.handler = async (argv) => {
42
+ export const handler = async (argv) => {
75
43
  const spinner = ora({ stream: process.stdout }).start('working...');
76
- const { debug, dryRun, cwd, token, type: typeFromArgs } = argv;
77
- const config = configStore.findInDirectory(cwd);
78
- const { name, server, version, type, map, out, files } = config;
79
-
80
- const typeOverride = typeFromArgs || type;
44
+ const { debug, dryRun, cwd, token, config } = argv;
45
+ // @ts-expect-error
46
+ const { name, version, server, map, out, files, type } = getDefaults(
47
+ config || cwd,
48
+ );
49
+
50
+ if (type === 'map') {
51
+ spinner.warn(
52
+ '"type" is set to "map", which is not supported by the publish command. Please use the "eik map" command instead',
53
+ );
54
+ process.stdout.write('\n');
55
+ process.exit(0);
56
+ }
81
57
 
82
58
  try {
83
- if (['package', 'npm'].includes(typeOverride)) {
84
- const options = {
85
- logger: logger(spinner, debug),
86
- cwd,
87
- token,
88
- dryRun,
89
- debug,
90
- name,
91
- server,
92
- version,
93
- type,
94
- map,
95
- out,
96
- files,
97
- };
98
-
99
- const publish = await new PublishPackage(options).run();
100
-
101
- if (!publish) {
102
- spinner.warn(
103
- 'Version in eik.json has not changed since last publish, publishing is not necessary',
104
- );
105
- process.stdout.write('\n');
106
- process.exit(0);
107
- }
108
-
109
- const { files: fls } = publish;
110
-
111
- if (!dryRun) {
112
- let url = new URL(join(typeSlug(type), name), server);
113
- let res = await fetch(url);
114
- const pkgMeta = await res.json();
115
-
116
- url = new URL(join(typeSlug(type), name, version), server);
117
- res = await fetch(url);
118
- const pkgVersionMeta = await res.json();
119
-
120
- const artifact = new Artifact(pkgMeta);
121
- artifact.versions = [pkgVersionMeta];
122
-
123
- spinner.text = '';
124
- spinner.stopAndPersist();
59
+ const options = {
60
+ logger: logger(spinner, debug),
61
+ cwd,
62
+ token,
63
+ dryRun,
64
+ debug,
65
+ name,
66
+ server,
67
+ version,
68
+ type,
69
+ map,
70
+ out,
71
+ files,
72
+ };
73
+
74
+ const publish = await new PublishPackage(options).run();
75
+
76
+ if (!publish) {
77
+ spinner.warn(
78
+ 'Version in eik.json has not changed since last publish, publishing is not necessary',
79
+ );
80
+ process.stdout.write('\n');
81
+ process.exit(0);
82
+ }
125
83
 
126
- artifact.format(server);
127
- process.stdout.write('\n');
128
- } else {
129
- spinner.text = '';
130
- spinner.stopAndPersist();
84
+ const { files: fls } = publish;
131
85
 
132
- process.stdout.write(
133
- `:: ${chalk.bgYellow.white.bold(
134
- typeTitle(type),
135
- )} > ${chalk.green(name)} | ${chalk.bold('dry run')}`,
136
- );
137
- process.stdout.write('\n\n');
138
- process.stdout.write(' files (local temporary):\n');
139
- for (const file of fls) {
140
- process.stdout.write(
141
- ` - ${chalk.bold('type')}: ${file.type}\n`,
142
- );
143
- process.stdout.write(
144
- ` ${chalk.bold('path')}: ${file.pathname}\n\n`,
145
- );
146
- }
147
- process.stdout.write(
148
- ` ${chalk.bold(
149
- 'No files were published to remote server',
150
- )}\n\n`,
151
- );
152
- }
153
- } else if (typeOverride === 'map') {
154
- const log = logger(spinner, debug);
155
-
156
- await new PublishMap({
157
- logger: log,
158
- name,
159
- version,
160
- server,
161
- file: files,
162
- ...argv,
163
- }).run();
164
-
165
- let url = new URL(join('map', name), server);
86
+ if (!dryRun) {
87
+ let url = new URL(join(typeSlug(type), name), server);
166
88
  let res = await fetch(url);
167
89
  const pkgMeta = await res.json();
168
90
 
169
- url = new URL(join('map', name, version), server);
91
+ url = new URL(join(typeSlug(type), name, version), server);
170
92
  res = await fetch(url);
93
+ const pkgVersionMeta = await res.json();
171
94
 
172
- log.info(`Published import map "${name}" at version "${version}"`);
95
+ const artifact = new Artifact(pkgMeta);
96
+ artifact.versions = [pkgVersionMeta];
173
97
 
174
98
  spinner.text = '';
175
99
  spinner.stopAndPersist();
176
100
 
177
- const artifact = new Artifact(pkgMeta);
178
- const versions = new Map(pkgMeta.versions);
179
- artifact.versions = Array.from(versions.values());
180
101
  artifact.format(server);
181
-
182
102
  process.stdout.write('\n');
103
+ } else {
104
+ spinner.text = '';
105
+ spinner.stopAndPersist();
106
+
107
+ process.stdout.write(
108
+ `:: ${chalk.bgYellow.white.bold(
109
+ typeTitle(type),
110
+ )} > ${chalk.green(name)} | ${chalk.bold('dry run')}`,
111
+ );
112
+ process.stdout.write('\n\n');
113
+ process.stdout.write(' files (local temporary):\n');
114
+ for (const file of fls) {
115
+ process.stdout.write(
116
+ ` - ${chalk.bold('type')}: ${file.type}\n`,
117
+ );
118
+ process.stdout.write(
119
+ ` ${chalk.bold('path')}: ${file.pathname}\n\n`,
120
+ );
121
+ }
122
+ process.stdout.write(
123
+ ` ${chalk.bold(
124
+ 'No files were published to remote server',
125
+ )}\n\n`,
126
+ );
183
127
  }
184
128
  } catch (err) {
185
129
  spinner.warn(err.message);
@@ -1,23 +1,15 @@
1
- 'use strict';
1
+ import { execSync } from 'child_process';
2
+ import { join } from 'path';
3
+ import ora from 'ora';
4
+ import VersionPackage from '../classes/version.js';
5
+ import { logger, getDefaults } from '../utils/index.js';
6
+ import json from '../utils/json/index.js';
2
7
 
3
- const { execSync } = require('child_process');
4
- const { join } = require('path');
5
- const ora = require('ora');
6
- const { configStore, getDefaults } = require('@eik/common-config-loader');
7
- const VersionPackage = require('../classes/version');
8
- const { logger, getCWD } = require('../utils');
9
- const json = require('../utils/json');
8
+ export const command = 'version [level]';
10
9
 
11
- exports.command = 'version [level]';
12
-
13
- exports.aliases = ['v'];
14
-
15
- exports.describe = `Compares local files with files on server and increments "version" field in eik.json if necessary.`;
16
-
17
- exports.builder = (yargs) => {
18
- const cwd = getCWD();
19
- const defaults = getDefaults(cwd);
10
+ export const describe = `Compares local files with files on server and increments "version" field in eik.json if necessary.`;
20
11
 
12
+ export const builder = (yargs) => {
21
13
  yargs.positional('level', {
22
14
  describe: 'Semver level to increment version by',
23
15
  default: 'patch',
@@ -26,12 +18,6 @@ exports.builder = (yargs) => {
26
18
  });
27
19
 
28
20
  yargs.options({
29
- cwd: {
30
- alias: 'c',
31
- describe: 'Alter the current working directory.',
32
- default: defaults.cwd,
33
- type: 'string',
34
- },
35
21
  dryRun: {
36
22
  alias: 'd',
37
23
  describe:
@@ -39,23 +25,19 @@ exports.builder = (yargs) => {
39
25
  default: false,
40
26
  type: 'boolean',
41
27
  },
42
- debug: {
43
- describe: 'Logs additional messages',
44
- default: false,
45
- type: 'boolean',
46
- },
47
28
  });
48
29
 
49
30
  yargs.example(`eik version`);
50
31
  yargs.example(`eik version minor`);
51
- yargs.example(`eik v`);
52
32
  };
53
33
 
54
- exports.handler = async (argv) => {
34
+ export const handler = async (argv) => {
55
35
  const spinner = ora({ stream: process.stdout }).start('working...');
56
- const { level, debug, dryRun, cwd } = argv;
57
- const config = configStore.findInDirectory(cwd);
58
- const { name, version, server, map, out, files } = config;
36
+ const { level, debug, dryRun, cwd, config } = argv;
37
+ // @ts-expect-error
38
+ const { name, version, server, map, out, files } = getDefaults(
39
+ config || cwd,
40
+ );
59
41
 
60
42
  try {
61
43
  const log = logger(spinner, debug);
@@ -80,6 +62,7 @@ exports.handler = async (argv) => {
80
62
  );
81
63
  } else {
82
64
  log.debug(`Writing new version ${newVersion} to eik.json`);
65
+ // @ts-expect-error
83
66
  await json.writeEik({ version: newVersion }, { cwd });
84
67
 
85
68
  log.debug(`Committing eik.json to local git repository`);
@@ -1,10 +1,6 @@
1
- /* eslint-disable no-underscore-dangle */
2
-
3
- 'use strict';
4
-
5
- const { join } = require('path');
6
- const chalk = require('chalk');
7
- const File = require('./file');
1
+ import { join } from 'path';
2
+ import chalk from 'chalk';
3
+ import File from './file.js';
8
4
 
9
5
  function colorType(type) {
10
6
  if (type === 'npm') {
@@ -79,4 +75,4 @@ class Alias {
79
75
  }
80
76
  }
81
77
 
82
- module.exports = Alias;
78
+ export default Alias;
@@ -1,10 +1,6 @@
1
- /* eslint-disable no-underscore-dangle */
2
-
3
- 'use strict';
4
-
5
- const { join } = require('path');
6
- const chalk = require('chalk');
7
- const Version = require('./version');
1
+ import { join } from 'path';
2
+ import chalk from 'chalk';
3
+ import Version from './version.js';
8
4
 
9
5
  const _name = Symbol('name');
10
6
  const _type = Symbol('type');
@@ -86,4 +82,4 @@ class Artifact {
86
82
  }
87
83
  }
88
84
 
89
- module.exports = Artifact;
85
+ export default Artifact;
@@ -1,12 +1,5 @@
1
- /* eslint-disable no-restricted-properties */
2
- /* eslint-disable prefer-template */
3
- /* eslint-disable one-var */
4
- /* eslint-disable no-underscore-dangle */
5
-
6
- 'use strict';
7
-
8
- const { join } = require('path');
9
- const chalk = require('chalk');
1
+ import { join } from 'path';
2
+ import chalk from 'chalk';
10
3
 
11
4
  function readableBytes(bytes) {
12
5
  const i = Math.floor(Math.log(bytes) / Math.log(1024)),
@@ -39,4 +32,4 @@ class File {
39
32
  }
40
33
  }
41
34
 
42
- module.exports = File;
35
+ export default File;
@@ -1,6 +1,6 @@
1
- const Artifact = require('./artifact');
2
- const Alias = require('./alias');
3
- const File = require('./file');
4
- const Version = require('./version');
1
+ import Artifact from './artifact.js';
2
+ import Alias from './alias.js';
3
+ import File from './file.js';
4
+ import Version from './version.js';
5
5
 
6
- module.exports = { Artifact, Alias, Version, File };
6
+ export { Artifact, Alias, Version, File };