@eik/cli 3.0.0-next.1 → 3.0.0-next.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ # [3.0.0-next.2](https://github.com/eik-lib/cli/compare/v3.0.0-next.1...v3.0.0-next.2) (2022-08-17)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * incorrect version number displayed on alias when updating with a cache layer infront ([8c468d6](https://github.com/eik-lib/cli/commit/8c468d670f6f10f25ae4decdab7a6950a1093d6a))
7
+
8
+
9
+ ### Features
10
+
11
+ * **!:** new alias command for all types of packages ([e482880](https://github.com/eik-lib/cli/commit/e48288002e9e8942f71d8f8dd0583395152aff49))
12
+
13
+
14
+ ### BREAKING CHANGES
15
+
16
+ * **!:** New alias command that is to be used for creating package, npm and import map aliases. Old alias commands have been removed.
17
+
1
18
  # [3.0.0-next.1](https://github.com/eik-lib/cli/compare/v2.0.22...v3.0.0-next.1) (2022-08-17)
2
19
 
3
20
 
package/classes/alias.js CHANGED
@@ -59,7 +59,9 @@ module.exports = class Alias {
59
59
 
60
60
  data.org = message.org || '';
61
61
  data.integrity = message.integrity || '';
62
- data.version = message.version || this.version;
62
+ // We'll use message.version when the cache has been properly purged
63
+ // data.version = message.version || this.version;
64
+ data.version = this.version;
63
65
  data.name = message.name || this.name;
64
66
  data.files = message.files || [];
65
67
 
@@ -68,10 +70,6 @@ module.exports = class Alias {
68
70
  let status = err.statusCode;
69
71
 
70
72
  if (status === 409) {
71
- this.log.debug(
72
- 'Alias already exists on server, performing update',
73
- );
74
-
75
73
  try {
76
74
  const { message: msg } = await request({
77
75
  host: this.server,
@@ -83,7 +81,9 @@ module.exports = class Alias {
83
81
 
84
82
  data.org = msg.org || '';
85
83
  data.integrity = msg.integrity || '';
86
- data.version = msg.version || this.version;
84
+ // We'll use msg.version when the cache has been properly purged
85
+ // data.version = msg.version || this.version;
86
+ data.version = this.version;
87
87
  data.name = msg.name || this.name;
88
88
  data.files = msg.files || [];
89
89
  data.update = true;
@@ -0,0 +1,125 @@
1
+ /* eslint-disable no-nested-ternary */
2
+ const ora = require('ora');
3
+ const { configStore, getDefaults } = require('@eik/common-config-loader');
4
+ const { getCWD, logger } = require('../utils');
5
+
6
+ const Alias = require('../classes/alias');
7
+ const { Alias: AliasFormatter } = require('../formatters');
8
+
9
+ exports.command = 'alias <name> <version> <alias>';
10
+
11
+ exports.aliases = [
12
+ 'ma',
13
+ 'pa',
14
+ 'pkg-alias',
15
+ 'na',
16
+ 'dep-alias',
17
+ 'dependency-alias',
18
+ ];
19
+
20
+ exports.describe = `Create a semver major alias for a package or an import map as identified by its name and version.
21
+ A package or import map with the given name and version must already exist on the Eik server
22
+ Alias should be the semver major part of the version.
23
+ Eg. For a package or import map of version 5.4.3, you should use 5 as the alias`;
24
+
25
+ exports.builder = (yargs) => {
26
+ const cwd = getCWD();
27
+ const defaults = getDefaults(cwd);
28
+
29
+ yargs
30
+ .positional('name', {
31
+ describe: `Name of package or map that is to be aliased`,
32
+ type: 'string',
33
+ })
34
+ .positional('version', {
35
+ describe: `Version for package or map that is to be aliased`,
36
+ type: 'string',
37
+ })
38
+ .positional('alias', {
39
+ describe: `Alias for a semver version. Should be the semver major component of version.`,
40
+ type: 'string',
41
+ });
42
+
43
+ yargs.options({
44
+ server: {
45
+ alias: 's',
46
+ describe: 'Specify location of Eik server.',
47
+ default: defaults.server,
48
+ },
49
+ cwd: {
50
+ alias: 'c',
51
+ describe: 'Alter current working directory.',
52
+ default: defaults.cwd,
53
+ },
54
+ debug: {
55
+ describe: 'Log additional messages',
56
+ default: false,
57
+ type: 'boolean',
58
+ },
59
+ token: {
60
+ describe:
61
+ 'Provide a jwt token to be used to authenticate with the Eik server.',
62
+ default: '',
63
+ alias: 't',
64
+ },
65
+ });
66
+
67
+ yargs.default('token', defaults.token, defaults.token ? '######' : '');
68
+
69
+ yargs.example(`eik alias my-app 1.6.2 1`);
70
+ yargs.example(`eik alias my-map 1.0.1 1`);
71
+ yargs.example(`eik alias lodash 4.17.19 4`);
72
+ yargs.example(
73
+ `eik alias my-map 6.3.1 6 --server https://assets.myeikserver.com`,
74
+ );
75
+ yargs.example(`eik alias my-map 4.2.2 4 --debug`);
76
+ };
77
+
78
+ exports.handler = async (argv) => {
79
+ const spinner = ora({ stream: process.stdout }).start('working...');
80
+ let success = false;
81
+ const { cwd, type: typeFromArgs, debug } = argv;
82
+ const config = configStore.findInDirectory(cwd);
83
+ const { server, type } = config;
84
+
85
+ const typeOverride = typeFromArgs || type;
86
+ const log = logger(spinner, debug);
87
+
88
+ const isPackage = ['package', 'npm'].includes(typeOverride);
89
+
90
+ try {
91
+ const data = await new Alias({
92
+ type:
93
+ typeOverride === 'package'
94
+ ? 'pkg'
95
+ : typeOverride === 'npm'
96
+ ? 'npm'
97
+ : typeOverride === 'map'
98
+ ? 'map'
99
+ : 'pkg',
100
+ logger: log,
101
+ ...argv,
102
+ }).run();
103
+
104
+ const createdOrUpdated = data.update ? 'Updated' : 'Created';
105
+ log.info(
106
+ `${createdOrUpdated} alias for ${isPackage ? 'package' : 'map'} "${
107
+ data.name
108
+ }". ("${data.version}" => "v${data.alias}")`,
109
+ );
110
+ success = true;
111
+
112
+ spinner.text = '';
113
+ spinner.stopAndPersist();
114
+ if (success) {
115
+ new AliasFormatter(data).format(server);
116
+ } else {
117
+ process.exit(1);
118
+ }
119
+ } catch (err) {
120
+ spinner.warn(err.message);
121
+ spinner.text = '';
122
+ spinner.stopAndPersist();
123
+ process.exit(1);
124
+ }
125
+ };
@@ -55,6 +55,12 @@ class Alias {
55
55
 
56
56
  if (this.update) {
57
57
  write(`${chalk.bgMagenta.white(' UPDATED \n\n')}`);
58
+
59
+ write(
60
+ `${chalk.yellow.bold(
61
+ '! It may take up to 40 minutes before this alias updates due to caching.',
62
+ )}\n\n`,
63
+ );
58
64
  } else {
59
65
  write(`${chalk.bgGreen.white(' NEW ')}\n\n`);
60
66
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eik/cli",
3
- "version": "3.0.0-next.1",
3
+ "version": "3.0.0-next.2",
4
4
  "description": "Cli tool for publishing assets",
5
5
  "main": "./classes/index.js",
6
6
  "bin": {
@@ -1,105 +0,0 @@
1
- 'use strict';
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');
8
-
9
- exports.command = 'map-alias <name> <version> <alias>';
10
-
11
- exports.aliases = ['ma'];
12
-
13
- exports.describe = `Create a semver major alias for an import map as identified by its name and version.
14
- An import map with the given name and version must already exist on asset server
15
- Alias should be the semver major part of the import map version.
16
- Eg. For an import map of version 5.4.3, you should use 5 as the alias`;
17
-
18
- exports.builder = (yargs) => {
19
- const cwd = getCWD();
20
- const defaults = getDefaults(cwd);
21
-
22
- yargs
23
- .positional('name', {
24
- describe: `Import map name for import map that is to be aliased`,
25
- type: 'string',
26
- })
27
- .positional('version', {
28
- describe: `Import map version for import map that is to be aliased`,
29
- type: 'string',
30
- })
31
- .positional('alias', {
32
- describe: `Alias for a semver version. Should be the semver major component of version.`,
33
- type: 'string',
34
- });
35
-
36
- yargs.options({
37
- server: {
38
- alias: 's',
39
- describe: 'Specify location of asset server.',
40
- default: defaults.server,
41
- },
42
- cwd: {
43
- alias: 'c',
44
- describe: 'Alter current working directory.',
45
- default: defaults.cwd,
46
- },
47
- debug: {
48
- describe: 'Logs additional messages',
49
- default: false,
50
- type: 'boolean',
51
- },
52
- token: {
53
- describe:
54
- 'Provide a jwt token to be used to authenticate with the Eik server.',
55
- default: '',
56
- alias: 't',
57
- },
58
- });
59
-
60
- yargs.default('token', defaults.token, defaults.token ? '######' : '');
61
-
62
- yargs.example(`eik map-alias my-map 1.0.0 1`);
63
- yargs.example(`eik map-alias my-map 1.7.3 1`);
64
- yargs.example(`eik map-alias my-map 6.3.1 6`);
65
- yargs.example(
66
- `eik map-alias my-map 6.3.1 6 --server https://assets.myeikserver.com`,
67
- );
68
- yargs.example(`eik map-alias my-map 4.2.2 4 --debug`);
69
- };
70
-
71
- exports.handler = async (argv) => {
72
- const spinner = ora({ stream: process.stdout }).start('working...');
73
- let success = false;
74
- const { debug, name, version, server } = argv;
75
- const log = logger(spinner, debug);
76
- let data = {};
77
-
78
- try {
79
- data = await new Alias({
80
- type: 'map',
81
- logger: log,
82
- ...argv,
83
- }).run();
84
-
85
- data.name = name;
86
- data.version = version;
87
- data.files = [];
88
-
89
- const createdOrUpdated = data.update ? 'Updated' : 'Created';
90
- log.info(
91
- `${createdOrUpdated} alias for package "${data.name}". ("${data.version}" => "v${data.alias}")`,
92
- );
93
- success = true;
94
- } catch (err) {
95
- log.warn(err.message);
96
- }
97
-
98
- spinner.text = '';
99
- spinner.stopAndPersist();
100
- if (success) {
101
- new AliasFormatter(data).format(server);
102
- } else {
103
- process.exit(1);
104
- }
105
- };
@@ -1,100 +0,0 @@
1
- 'use strict';
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');
8
-
9
- exports.command = 'npm-alias <name> <version> <alias>';
10
-
11
- exports.aliases = ['na', 'dep-alias', 'dependency-alias'];
12
-
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`;
17
-
18
- exports.builder = (yargs) => {
19
- const cwd = getCWD();
20
- const defaults = getDefaults(cwd);
21
-
22
- yargs
23
- .positional('name', {
24
- describe: 'Name matching NPM package name.',
25
- type: 'string',
26
- })
27
- .positional('version', {
28
- describe: 'Version matching NPM package version.',
29
- type: 'string',
30
- })
31
- .positional('alias', {
32
- describe:
33
- 'Alias for a semver version. Must be the semver major component of version.',
34
- type: 'string',
35
- });
36
-
37
- yargs.options({
38
- server: {
39
- alias: 's',
40
- describe: 'Specify location of asset server.',
41
- default: defaults.server,
42
- },
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
- token: {
54
- describe:
55
- 'Provide a jwt token to be used to authenticate with the Eik server.',
56
- default: '',
57
- alias: 't',
58
- },
59
- });
60
-
61
- yargs.default('token', defaults.token, defaults.token ? '######' : '');
62
-
63
- yargs.example(`eik npm lit-html 1.0.0 1`);
64
- yargs.example(`eik npm lit-html 1.3.5 1 --debug`);
65
- yargs.example(
66
- `eik npm lit-html 5.3.2 5 --server https://assets.myeikserver.com`,
67
- );
68
- };
69
-
70
- exports.handler = async (argv) => {
71
- const spinner = ora({ stream: process.stdout }).start('working...');
72
- let success = false;
73
- const { debug, server } = argv;
74
- const log = logger(spinner, debug);
75
- let data = {};
76
-
77
- try {
78
- data = await new Alias({
79
- type: 'npm',
80
- logger: log,
81
- ...argv,
82
- }).run();
83
-
84
- const createdOrUpdated = data.update ? 'Updated' : 'Created';
85
- log.info(
86
- `${createdOrUpdated} alias for package "${data.name}". ("${data.version}" => "v${data.alias}")`,
87
- );
88
- success = true;
89
- } catch (err) {
90
- log.warn(err.message);
91
- }
92
-
93
- spinner.text = '';
94
- spinner.stopAndPersist();
95
- if (success) {
96
- new AliasFormatter(data).format(server);
97
- } else {
98
- process.exit(1);
99
- }
100
- };
@@ -1,109 +0,0 @@
1
- 'use strict';
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');
9
-
10
- exports.command = 'package-alias [name] [version] [alias]';
11
-
12
- exports.aliases = ['pkg-alias', 'pa'];
13
-
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`;
18
-
19
- exports.builder = (yargs) => {
20
- const cwd = getCWD();
21
- const defaults = getDefaults(cwd);
22
-
23
- yargs
24
- .positional('name', {
25
- describe: 'Name matching existing name for a package on Eik server',
26
- type: 'string',
27
- default: defaults.name,
28
- })
29
- .positional('version', {
30
- describe:
31
- 'Version matching existing version for a package on Eik server',
32
- type: 'string',
33
- default: defaults.version,
34
- })
35
- .positional('alias', {
36
- describe:
37
- 'Alias for a semver version. Must be the semver major component of version. Eg. 1.0.0 should be given as 1',
38
- type: 'string',
39
- default: defaults.version ? semver.major(defaults.version) : null,
40
- });
41
-
42
- yargs.options({
43
- server: {
44
- alias: 's',
45
- describe: 'Specify location of Eik asset server.',
46
- default: defaults.server,
47
- },
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
- token: {
59
- describe:
60
- 'Provide a jwt token to be used to authenticate with the Eik server.',
61
- default: '',
62
- alias: 't',
63
- },
64
- });
65
-
66
- yargs.default('token', defaults.token, defaults.token ? '######' : '');
67
-
68
- yargs.example(`eik package-alias my-app 1.0.0 1`);
69
- yargs.example(`eik package-alias my-app 1.7.3 1`);
70
- yargs.example(`eik package-alias my-app 6.3.1 6`);
71
- yargs.example(
72
- `eik package-alias my-app 6.3.1 6 --server https://assets.myeikserver.com`,
73
- );
74
- yargs.example(`eik package-alias my-app 4.2.2 4 --debug`);
75
- };
76
-
77
- exports.handler = async (argv) => {
78
- const spinner = ora({ stream: process.stdout }).start('working...');
79
- let success = false;
80
- const { debug, server } = argv;
81
- const log = logger(spinner, debug);
82
- let af;
83
-
84
- try {
85
- const data = await new Alias({
86
- type: 'pkg',
87
- logger: log,
88
- ...argv,
89
- }).run();
90
-
91
- af = new AliasFormatter(data);
92
-
93
- const createdOrUpdated = data.update ? 'Updated' : 'Created';
94
- log.info(
95
- `${createdOrUpdated} alias for package "${data.name}". ("${data.version}" => "v${data.alias}")`,
96
- );
97
- success = true;
98
- } catch (err) {
99
- log.warn(err.message);
100
- }
101
-
102
- spinner.text = '';
103
- spinner.stopAndPersist();
104
- if (success) {
105
- af.format(server);
106
- } else {
107
- process.exit(1);
108
- }
109
- };