@eik/cli 3.0.0-next.1 → 3.0.0-next.2

Sign up to get free protection for your applications and to get access to all the features.
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
- };