@eik/cli 3.0.0-next.2 → 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.
- package/CHANGELOG.md +145 -9
- package/classes/alias.js +49 -22
- package/classes/index.js +47 -23
- package/classes/integrity.js +27 -16
- package/classes/login.js +21 -7
- package/classes/meta.js +20 -12
- package/classes/ping.js +20 -9
- package/classes/publish/map.js +33 -10
- package/classes/publish/package/index.js +54 -17
- package/classes/publish/package/tasks/check-bundle-sizes.js +7 -11
- package/classes/publish/package/tasks/check-if-already-published.js +8 -11
- package/classes/publish/package/tasks/cleanup.js +7 -9
- package/classes/publish/package/tasks/create-temp-directory.js +5 -9
- package/classes/publish/package/tasks/create-zip-file.js +6 -11
- package/classes/publish/package/tasks/dry-run.js +4 -8
- package/classes/publish/package/tasks/save-metafile.js +5 -7
- package/classes/publish/package/tasks/task.js +3 -5
- package/classes/publish/package/tasks/upload-files.js +16 -17
- package/classes/publish/package/tasks/validate-input.js +4 -8
- package/classes/version.js +38 -21
- package/commands/alias.js +51 -71
- package/commands/index.js +27 -0
- package/commands/init.js +69 -52
- package/commands/integrity.js +15 -32
- package/commands/login.js +23 -35
- package/commands/map-alias.js +95 -0
- package/commands/map.js +90 -0
- package/commands/meta.js +12 -29
- package/commands/npm-alias.js +90 -0
- package/commands/package-alias.js +102 -0
- package/commands/ping.js +11 -21
- package/commands/publish.js +82 -138
- package/commands/version.js +16 -33
- package/formatters/alias.js +4 -14
- package/formatters/artifact.js +4 -8
- package/formatters/file.js +3 -10
- package/formatters/index.js +5 -5
- package/formatters/version.js +5 -12
- package/index.js +53 -12
- package/package.json +49 -52
- package/readme.md +16 -4
- package/types/classes/alias.d.ts +60 -0
- package/types/classes/index.d.ts +37 -0
- package/types/classes/integrity.d.ts +35 -0
- package/types/classes/login.d.ts +25 -0
- package/types/classes/meta.d.ts +28 -0
- package/types/classes/ping.d.ts +23 -0
- package/types/classes/publish/map.d.ts +51 -0
- package/types/classes/publish/package/index.d.ts +94 -0
- package/types/classes/publish/package/tasks/check-bundle-sizes.d.ts +4 -0
- package/types/classes/publish/package/tasks/check-if-already-published.d.ts +4 -0
- package/types/classes/publish/package/tasks/cleanup.d.ts +4 -0
- package/types/classes/publish/package/tasks/create-temp-directory.d.ts +4 -0
- package/types/classes/publish/package/tasks/create-zip-file.d.ts +4 -0
- package/types/classes/publish/package/tasks/dry-run.d.ts +7 -0
- package/types/classes/publish/package/tasks/save-metafile.d.ts +4 -0
- package/types/classes/publish/package/tasks/task.d.ts +8 -0
- package/types/classes/publish/package/tasks/upload-files.d.ts +4 -0
- package/types/classes/publish/package/tasks/validate-input.d.ts +4 -0
- package/types/classes/version.d.ts +43 -0
- package/types/utils/hash/compare.d.ts +2 -0
- package/types/utils/hash/file.d.ts +2 -0
- package/types/utils/hash/files.d.ts +2 -0
- package/types/utils/hash/index.d.ts +9 -0
- package/types/utils/http/index.d.ts +12 -0
- package/types/utils/http/integrity.d.ts +2 -0
- package/types/utils/http/latest-version.d.ts +2 -0
- package/types/utils/http/request.d.ts +33 -0
- package/types/utils/http/versions.d.ts +5 -0
- package/types/utils/index.d.ts +6 -0
- package/types/utils/json/index.d.ts +9 -0
- package/types/utils/json/read.d.ts +5 -0
- package/types/utils/json/write-eik.d.ts +5 -0
- package/types/utils/json/write.d.ts +5 -0
- package/types/utils/logger.d.ts +33 -0
- package/types/utils/type-slug.d.ts +2 -0
- package/types/utils/type-title.d.ts +2 -0
- package/utils/hash/compare.js +1 -3
- package/utils/hash/file.js +3 -5
- package/utils/hash/files.js +4 -6
- package/utils/hash/index.js +4 -4
- package/utils/http/index.js +6 -5
- package/utils/http/integrity.js +2 -5
- package/utils/http/latest-version.js +2 -5
- package/utils/http/request.js +25 -19
- package/utils/http/versions.js +2 -5
- package/utils/index.js +6 -4
- package/utils/json/index.js +4 -4
- package/utils/json/read.js +5 -7
- package/utils/json/write-eik.js +4 -6
- package/utils/json/write.js +4 -6
- package/utils/logger.js +2 -5
- package/utils/type-slug.js +1 -1
- package/utils/type-title.js +1 -1
- package/utils/get-cwd.js +0 -14
package/commands/alias.js
CHANGED
@@ -1,60 +1,51 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
import ora from 'ora';
|
2
|
+
import semver from 'semver';
|
3
|
+
import Alias from '../classes/alias.js';
|
4
|
+
import { logger, getDefaults } from '../utils/index.js';
|
5
|
+
import { Alias as AliasFormatter } from '../formatters/index.js';
|
5
6
|
|
6
|
-
const
|
7
|
-
const { Alias: AliasFormatter } = require('../formatters');
|
7
|
+
export const command = 'alias [name] [version] [alias]';
|
8
8
|
|
9
|
-
|
9
|
+
export const aliases = ['a'];
|
10
10
|
|
11
|
-
|
12
|
-
'ma',
|
13
|
-
'pa',
|
14
|
-
'pkg-alias',
|
15
|
-
'na',
|
16
|
-
'dep-alias',
|
17
|
-
'dependency-alias',
|
18
|
-
];
|
11
|
+
export const describe = `Create or update a semver major alias for a package, NPM package or import map as identified by its name and version. A package with the given name and version must already exist on the Eik server. The 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. The alias type (npm, map, package) is detected from eik.json in the current working directory.`;
|
19
12
|
|
20
|
-
|
21
|
-
|
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);
|
13
|
+
export const builder = (yargs) => {
|
14
|
+
const defaults = getDefaults(yargs.argv.config || yargs.argv.cwd);
|
28
15
|
|
29
16
|
yargs
|
30
17
|
.positional('name', {
|
31
|
-
describe:
|
18
|
+
describe: 'Name matching a package or import map on the Eik server',
|
32
19
|
type: 'string',
|
20
|
+
// @ts-expect-error
|
21
|
+
default: defaults.name,
|
33
22
|
})
|
34
23
|
.positional('version', {
|
35
|
-
describe:
|
24
|
+
describe: 'The version the alias should redirect to',
|
36
25
|
type: 'string',
|
26
|
+
// @ts-expect-error
|
27
|
+
default: defaults.version,
|
37
28
|
})
|
38
29
|
.positional('alias', {
|
39
|
-
describe:
|
30
|
+
describe:
|
31
|
+
'Alias, should be the semver major component of version. Eg. 1.0.0 should be given the alias 1',
|
40
32
|
type: 'string',
|
33
|
+
// @ts-expect-error
|
34
|
+
default: defaults.version ? semver.major(defaults.version) : null,
|
41
35
|
});
|
42
36
|
|
43
37
|
yargs.options({
|
44
38
|
server: {
|
45
39
|
alias: 's',
|
46
|
-
describe: 'Specify location of Eik server.',
|
40
|
+
describe: 'Specify location of Eik asset server.',
|
41
|
+
// @ts-expect-error
|
47
42
|
default: defaults.server,
|
48
43
|
},
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
debug: {
|
55
|
-
describe: 'Log additional messages',
|
56
|
-
default: false,
|
57
|
-
type: 'boolean',
|
44
|
+
type: {
|
45
|
+
describe:
|
46
|
+
'Alter the alias type. Default is detected from eik.json. Valid values are `package`, `npm`, or `map` Eg. --type npm',
|
47
|
+
// @ts-expect-error
|
48
|
+
default: defaults.type,
|
58
49
|
},
|
59
50
|
token: {
|
60
51
|
describe:
|
@@ -64,62 +55,51 @@ exports.builder = (yargs) => {
|
|
64
55
|
},
|
65
56
|
});
|
66
57
|
|
58
|
+
// @ts-expect-error
|
67
59
|
yargs.default('token', defaults.token, defaults.token ? '######' : '');
|
68
60
|
|
69
|
-
yargs.example(`eik alias my-app 1.
|
70
|
-
yargs.example(`eik alias my-
|
71
|
-
yargs.example(`eik alias
|
61
|
+
yargs.example(`eik alias my-app 1.0.0 1`);
|
62
|
+
yargs.example(`eik alias my-app 1.7.3 1`);
|
63
|
+
yargs.example(`eik alias my-app 6.3.1 6`);
|
72
64
|
yargs.example(
|
73
|
-
`eik alias my-
|
65
|
+
`eik alias my-app 6.3.1 6 --server https://assets.myeikserver.com`,
|
74
66
|
);
|
75
|
-
yargs.example(`eik alias my-
|
67
|
+
yargs.example(`eik alias my-app 4.2.2 4 --debug`);
|
68
|
+
yargs.example(`eik alias my-app 4.2.2 4 --type package`);
|
76
69
|
};
|
77
70
|
|
78
|
-
|
71
|
+
export const handler = async (argv) => {
|
79
72
|
const spinner = ora({ stream: process.stdout }).start('working...');
|
80
73
|
let success = false;
|
81
|
-
const {
|
82
|
-
const config = configStore.findInDirectory(cwd);
|
83
|
-
const { server, type } = config;
|
84
|
-
|
85
|
-
const typeOverride = typeFromArgs || type;
|
74
|
+
const { debug, server, type } = argv;
|
86
75
|
const log = logger(spinner, debug);
|
87
|
-
|
88
|
-
const isPackage = ['package', 'npm'].includes(typeOverride);
|
76
|
+
let af;
|
89
77
|
|
90
78
|
try {
|
91
79
|
const data = await new Alias({
|
92
|
-
type
|
93
|
-
typeOverride === 'package'
|
94
|
-
? 'pkg'
|
95
|
-
: typeOverride === 'npm'
|
96
|
-
? 'npm'
|
97
|
-
: typeOverride === 'map'
|
98
|
-
? 'map'
|
99
|
-
: 'pkg',
|
80
|
+
type,
|
100
81
|
logger: log,
|
101
82
|
...argv,
|
102
83
|
}).run();
|
103
84
|
|
85
|
+
// TODO: get rid of this rediculous formatter class idea that past me put here to irk present and future me.
|
86
|
+
// Smells like DRY silliness
|
87
|
+
af = new AliasFormatter(data);
|
88
|
+
|
104
89
|
const createdOrUpdated = data.update ? 'Updated' : 'Created';
|
105
90
|
log.info(
|
106
|
-
`${createdOrUpdated} alias for ${
|
107
|
-
data.name
|
108
|
-
}". ("${data.version}" => "v${data.alias}")`,
|
91
|
+
`${createdOrUpdated} alias for "${type}" "${data.name}". ("${data.version}" => "v${data.alias}")`,
|
109
92
|
);
|
110
93
|
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
94
|
} catch (err) {
|
120
|
-
|
121
|
-
|
122
|
-
|
95
|
+
log.warn(err.message);
|
96
|
+
}
|
97
|
+
|
98
|
+
spinner.text = '';
|
99
|
+
spinner.stopAndPersist();
|
100
|
+
if (success) {
|
101
|
+
af?.format(server);
|
102
|
+
} else {
|
123
103
|
process.exit(1);
|
124
104
|
}
|
125
105
|
};
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import * as init from './init.js';
|
2
|
+
import * as integrity from './integrity.js';
|
3
|
+
import * as login from './login.js';
|
4
|
+
import * as mapAlias from './map-alias.js';
|
5
|
+
import * as map from './map.js';
|
6
|
+
import * as meta from './meta.js';
|
7
|
+
import * as npmAlias from './npm-alias.js';
|
8
|
+
import * as packageAlias from './package-alias.js';
|
9
|
+
import * as ping from './ping.js';
|
10
|
+
import * as publish from './publish.js';
|
11
|
+
import * as version from './version.js';
|
12
|
+
import * as alias from './alias.js';
|
13
|
+
|
14
|
+
export const commands = [
|
15
|
+
init,
|
16
|
+
integrity,
|
17
|
+
login,
|
18
|
+
mapAlias,
|
19
|
+
map,
|
20
|
+
meta,
|
21
|
+
npmAlias,
|
22
|
+
packageAlias,
|
23
|
+
ping,
|
24
|
+
publish,
|
25
|
+
version,
|
26
|
+
alias,
|
27
|
+
];
|
package/commands/init.js
CHANGED
@@ -1,41 +1,28 @@
|
|
1
|
-
|
1
|
+
import { join } from 'path';
|
2
|
+
import fs from 'fs';
|
3
|
+
import ora from 'ora';
|
4
|
+
import { logger } from '../utils/index.js';
|
2
5
|
|
3
|
-
const
|
4
|
-
const fs = require('fs');
|
5
|
-
const ora = require('ora');
|
6
|
-
const { logger } = require('../utils');
|
6
|
+
const command = 'init';
|
7
7
|
|
8
|
-
|
8
|
+
const aliases = ['i'];
|
9
9
|
|
10
|
-
|
10
|
+
const describe = `Creates an eik.json file and saves it to the current working directory. If package.json exists in the directory its name and version will be used as the default. Override defaults using command line flags.`;
|
11
11
|
|
12
|
-
|
13
|
-
Override default "eik.json" fields using command line flags --server, --name, --major, --js and --css`;
|
14
|
-
|
15
|
-
exports.builder = (yargs) => {
|
12
|
+
const builder = (yargs) => {
|
16
13
|
yargs.example('eik init');
|
17
14
|
yargs.example('eik init --cwd /path/to/dir');
|
18
15
|
yargs.example(
|
19
|
-
'eik init --server https://assets.myserver.com --
|
16
|
+
'eik init --server https://assets.myserver.com --version 2.0.0 --name my-app --files "./public"',
|
20
17
|
);
|
21
18
|
yargs.example('eik init --debug');
|
22
19
|
|
23
20
|
yargs.options({
|
24
21
|
server: {
|
25
22
|
alias: 's',
|
26
|
-
describe: `Specify asset server field in "eik.json".
|
27
|
-
This the URL to an Eik asset server
|
28
|
-
Eg. --server https://assets.myeikserver.com`,
|
23
|
+
describe: `Specify asset server field in "eik.json". This the URL to an Eik asset server Eg. --server https://assets.myeikserver.com`,
|
29
24
|
default: '',
|
30
25
|
},
|
31
|
-
cwd: {
|
32
|
-
alias: 'c',
|
33
|
-
describe: `Alter the current working directory
|
34
|
-
Defaults to the directory where the command is being run.
|
35
|
-
This affects where the generated "eik.json" file will be saved.
|
36
|
-
Eg. --cwd /path/to/save/to`,
|
37
|
-
default: process.cwd(),
|
38
|
-
},
|
39
26
|
version: {
|
40
27
|
alias: 'v',
|
41
28
|
describe: `Specify the semver version field in "eik.json". Eg. --version 1.0.0`,
|
@@ -47,59 +34,89 @@ exports.builder = (yargs) => {
|
|
47
34
|
Eg. --name my-great-app`,
|
48
35
|
default: '',
|
49
36
|
},
|
50
|
-
debug: {
|
51
|
-
describe: 'Logs additional messages during command run',
|
52
|
-
default: false,
|
53
|
-
type: 'boolean',
|
54
|
-
},
|
55
37
|
});
|
56
38
|
};
|
57
39
|
|
58
|
-
|
59
|
-
|
60
|
-
const {
|
40
|
+
const handler = async (argv) => {
|
41
|
+
let { name, version } = argv;
|
42
|
+
const { server, cwd, debug } = argv;
|
61
43
|
const pathname = join(cwd, './eik.json');
|
44
|
+
|
45
|
+
const spinner = ora({ stream: process.stdout }).start('working...');
|
62
46
|
const log = logger(spinner, debug);
|
63
|
-
let assetFileExists = false;
|
64
47
|
|
65
48
|
try {
|
66
|
-
log.debug(
|
67
|
-
|
68
|
-
|
49
|
+
log.debug(`Checking for existing ${pathname}`);
|
50
|
+
|
51
|
+
let eikJsonExists = false;
|
69
52
|
try {
|
70
53
|
const st = fs.statSync(pathname);
|
71
54
|
if (st.isFile()) {
|
72
|
-
|
55
|
+
eikJsonExists = true;
|
73
56
|
}
|
74
57
|
} catch (err) {
|
75
58
|
// noop
|
76
59
|
}
|
77
|
-
|
78
|
-
if (assetFileExists) {
|
60
|
+
if (eikJsonExists) {
|
79
61
|
throw new Error(
|
80
62
|
`An "eik.json" file already exists in directory. File will not be written`,
|
81
63
|
);
|
82
64
|
}
|
83
65
|
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
66
|
+
if (!name || !version || version === '1.0.0') {
|
67
|
+
log.debug('Looking for default from package.json');
|
68
|
+
try {
|
69
|
+
let packageJson = fs.readFileSync(
|
70
|
+
join(cwd, 'package.json'),
|
71
|
+
'utf-8',
|
72
|
+
);
|
73
|
+
packageJson = JSON.parse(packageJson);
|
74
|
+
if (!name) {
|
75
|
+
name = packageJson.name;
|
76
|
+
log.debug(
|
77
|
+
`Using ${name} from package.json as default name`,
|
78
|
+
);
|
79
|
+
}
|
80
|
+
if (!version || version === '1.0.0') {
|
81
|
+
version = packageJson.version;
|
82
|
+
log.debug(
|
83
|
+
`Using ${version} from package.json as default version`,
|
84
|
+
);
|
85
|
+
}
|
86
|
+
} catch (e) {
|
87
|
+
// noop
|
88
|
+
}
|
89
|
+
} else {
|
90
|
+
log.debug(`Got ${name} and ${version}, skipping package.json`);
|
91
|
+
}
|
92
|
+
|
93
|
+
log.debug(`Writing to ${pathname}`);
|
94
|
+
|
95
|
+
const output = JSON.stringify(
|
96
|
+
{
|
97
|
+
$schema:
|
98
|
+
'https://raw.githubusercontent.com/eik-lib/common/main/lib/schemas/eikjson.schema.json',
|
99
|
+
name,
|
100
|
+
version,
|
101
|
+
server,
|
102
|
+
files: './public',
|
103
|
+
'import-map': [],
|
104
|
+
},
|
105
|
+
null,
|
106
|
+
2,
|
97
107
|
);
|
108
|
+
fs.writeFileSync(pathname, output);
|
109
|
+
|
110
|
+
log.info(`Wrote to ${pathname}
|
98
111
|
|
99
|
-
|
112
|
+
${output}
|
113
|
+
|
114
|
+
Read more about configuring Eik on https://eik.dev/docs/reference/eik-json`);
|
100
115
|
} catch (err) {
|
101
116
|
log.warn(err.message);
|
102
117
|
}
|
103
118
|
spinner.text = '';
|
104
119
|
spinner.stopAndPersist();
|
105
120
|
};
|
121
|
+
|
122
|
+
export { command, aliases, describe, builder, handler };
|
package/commands/integrity.js
CHANGED
@@ -1,55 +1,38 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
import { join } from 'path';
|
2
|
+
import ora from 'ora';
|
3
|
+
import Integrity from '../classes/integrity.js';
|
4
|
+
import { logger, getDefaults } from '../utils/index.js';
|
5
|
+
import json from '../utils/json/index.js';
|
4
6
|
|
5
|
-
'
|
7
|
+
export const command = 'integrity [name] [version]';
|
6
8
|
|
7
|
-
const
|
8
|
-
const ora = require('ora');
|
9
|
-
const { configStore, getDefaults } = require('@eik/common-config-loader');
|
10
|
-
const Integrity = require('../classes/integrity');
|
11
|
-
const { logger, getCWD } = require('../utils');
|
12
|
-
const json = require('../utils/json');
|
9
|
+
export const aliases = ['int'];
|
13
10
|
|
14
|
-
|
11
|
+
export const describe = `Retrieve file integrity information for package name and version defined in eik.json, then populate integrity.json file with this information`;
|
15
12
|
|
16
|
-
|
17
|
-
|
18
|
-
exports.describe = `Retrieve file integrity information for package name and version defined in eik.json, then populate integrity.json file with this information`;
|
19
|
-
|
20
|
-
exports.builder = (yargs) => {
|
21
|
-
const cwd = getCWD();
|
22
|
-
const defaults = getDefaults(cwd);
|
13
|
+
export const builder = (yargs) => {
|
14
|
+
const defaults = getDefaults(yargs.argv.config || yargs.argv.cwd);
|
23
15
|
|
24
16
|
yargs.options({
|
25
17
|
server: {
|
26
18
|
alias: 's',
|
27
19
|
describe: 'Specify location of asset server.',
|
20
|
+
// @ts-expect-error
|
28
21
|
default: defaults.server,
|
29
22
|
},
|
30
|
-
debug: {
|
31
|
-
describe: 'Logs additional messages',
|
32
|
-
default: false,
|
33
|
-
type: 'boolean',
|
34
|
-
},
|
35
|
-
cwd: {
|
36
|
-
alias: 'c',
|
37
|
-
describe: 'Alter current working directory.',
|
38
|
-
default: defaults.cwd,
|
39
|
-
},
|
40
23
|
});
|
41
24
|
|
42
25
|
yargs.example(`eik integrity`);
|
43
26
|
yargs.example(`eik integrity --debug`);
|
44
27
|
};
|
45
28
|
|
46
|
-
|
29
|
+
export const handler = async (argv) => {
|
47
30
|
const spinner = ora({ stream: process.stdout }).start('working...');
|
48
31
|
let integrity = false;
|
49
|
-
const { debug, cwd } = argv;
|
32
|
+
const { debug, cwd, config } = argv;
|
50
33
|
const l = logger(spinner, debug);
|
51
|
-
|
52
|
-
const { name, server,
|
34
|
+
// @ts-expect-error
|
35
|
+
const { name, version, server, out, type } = getDefaults(config || cwd);
|
53
36
|
|
54
37
|
try {
|
55
38
|
integrity = await new Integrity({
|
package/commands/login.js
CHANGED
@@ -1,60 +1,44 @@
|
|
1
|
-
|
1
|
+
import os from 'os';
|
2
|
+
import readline from 'readline';
|
3
|
+
import ora from 'ora';
|
4
|
+
import Login from '../classes/login.js';
|
5
|
+
import { logger, getDefaults } from '../utils/index.js';
|
6
|
+
import json from '../utils/json/index.js';
|
2
7
|
|
3
|
-
const homedir =
|
4
|
-
const { getDefaults } = require('@eik/common-config-loader');
|
5
|
-
const readline = require('readline');
|
6
|
-
const ora = require('ora');
|
7
|
-
const Login = require('../classes/login');
|
8
|
-
const { logger, getCWD } = require('../utils');
|
9
|
-
const json = require('../utils/json');
|
8
|
+
const homedir = os.homedir();
|
10
9
|
|
11
|
-
|
10
|
+
export const command = 'login';
|
12
11
|
|
13
|
-
|
12
|
+
export const aliases = [];
|
14
13
|
|
15
|
-
|
16
|
-
You can specify key and server values to authenticate against using the --key and --server flags which will then bypass login prompts
|
17
|
-
It is possible to be authenticated against multiple asset servers simultaneously. Simply call "eik login" multiple times.`;
|
14
|
+
export const describe = `Authenticate against an Eik server and save the returned token to an .eikrc file in the users home directory. You can specify key and server values to authenticate against using the --key and --server flags which will then bypass login prompts. It is possible to be authenticated against multiple asset servers simultaneously. Simply call "eik login" multiple times.`;
|
18
15
|
|
19
|
-
|
16
|
+
export const builder = (yargs) => {
|
20
17
|
yargs.example('eik login --server https://assets.myserver.com');
|
21
18
|
yargs.example(
|
22
19
|
'eik login --server https://assets.myserver.com --key ######',
|
23
20
|
);
|
24
21
|
yargs.example('eik login --server https://assets.myserver.com --debug');
|
25
22
|
|
26
|
-
const
|
27
|
-
const defaults = getDefaults(cwd);
|
23
|
+
const defaults = getDefaults(yargs.argv.config || yargs.argv.cwd);
|
28
24
|
|
29
25
|
yargs.options({
|
30
26
|
server: {
|
31
27
|
alias: 's',
|
32
|
-
describe: `Eik server address
|
33
|
-
Specify location of the Eik asset server to authenticate against.
|
34
|
-
If an eik.json file is present in the current working directory, the files server value will be used as default.
|
35
|
-
If no eik.json file is present in the current working directory and this flag is not specified, a prompt will be presented to ask for the server address to be input
|
36
|
-
Eg. --server https://assets.myeikserver.com`,
|
28
|
+
describe: `Eik server address. Specify location of the Eik asset server to authenticate against. If an eik.json file is present in the current working directory, the files server value will be used as default. If no eik.json file is present in the current working directory and this flag is not specified, a prompt will be presented to ask for the server address to be input. Eg. --server https://assets.myeikserver.com`,
|
37
29
|
type: 'string',
|
38
30
|
default: defaults.server,
|
39
31
|
},
|
40
32
|
key: {
|
41
33
|
alias: 'k',
|
42
|
-
describe: `Login access key.
|
43
|
-
This is a passkey for a given user account and needs to be configured on the server.
|
44
|
-
If this flag is not specifed, a prompt will be used to ask for the key to be input.
|
45
|
-
Eg. --key ########`,
|
34
|
+
describe: `Login access key. This is a passkey for a given user account and needs to be configured on the server. If this flag is not specifed, a prompt will be used to ask for the key to be input. Eg. --key ########`,
|
46
35
|
type: 'string',
|
47
36
|
default: '',
|
48
37
|
},
|
49
|
-
debug: {
|
50
|
-
describe: 'Logs additional messages',
|
51
|
-
default: false,
|
52
|
-
type: 'boolean',
|
53
|
-
},
|
54
38
|
});
|
55
39
|
};
|
56
40
|
|
57
|
-
|
41
|
+
export const handler = async (argv) => {
|
58
42
|
let success = false;
|
59
43
|
const { debug, key, server } = argv;
|
60
44
|
let k = key;
|
@@ -70,8 +54,9 @@ exports.handler = async (argv) => {
|
|
70
54
|
|
71
55
|
if (!s) {
|
72
56
|
await new Promise((resolve) => {
|
73
|
-
rl
|
57
|
+
rl?.question('Enter Eik server address > ', (input) => {
|
74
58
|
s = input;
|
59
|
+
// @ts-expect-error
|
75
60
|
resolve();
|
76
61
|
});
|
77
62
|
});
|
@@ -79,8 +64,9 @@ exports.handler = async (argv) => {
|
|
79
64
|
|
80
65
|
if (!k) {
|
81
66
|
await new Promise((resolve) => {
|
82
|
-
rl
|
67
|
+
rl?.question(`Enter login key for ${s} > `, (input) => {
|
83
68
|
k = input;
|
69
|
+
// @ts-expect-error
|
84
70
|
resolve();
|
85
71
|
});
|
86
72
|
});
|
@@ -93,13 +79,14 @@ exports.handler = async (argv) => {
|
|
93
79
|
try {
|
94
80
|
const token = await new Login({
|
95
81
|
logger: logger(spinner, debug),
|
96
|
-
debug,
|
97
82
|
key: k,
|
98
83
|
server: s,
|
99
84
|
}).run();
|
100
85
|
|
101
86
|
if (token) {
|
102
|
-
const meta =
|
87
|
+
const meta = /** @type {{ tokens: any }} */ (
|
88
|
+
await json.read({ cwd: homedir, filename: '.eikrc' })
|
89
|
+
);
|
103
90
|
|
104
91
|
const tokens = new Map(meta.tokens);
|
105
92
|
tokens.set(s, token);
|
@@ -109,6 +96,7 @@ exports.handler = async (argv) => {
|
|
109
96
|
success = true;
|
110
97
|
}
|
111
98
|
} catch (err) {
|
99
|
+
// @ts-expect-error
|
112
100
|
logger.warn(err.message);
|
113
101
|
}
|
114
102
|
|
@@ -0,0 +1,95 @@
|
|
1
|
+
// @deprecated in favor of `alias` command
|
2
|
+
|
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';
|
7
|
+
|
8
|
+
export const command = 'map-alias <name> <version> <alias>';
|
9
|
+
|
10
|
+
export const aliases = ['ma'];
|
11
|
+
|
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 import map as identified by its name and version. An import map with the given name and version must already exist on asset server. Alias should be the semver major part of the import map version. Eg. For an import map of version 5.4.3, you should use 5 as the alias`;
|
13
|
+
|
14
|
+
export const builder = (yargs) => {
|
15
|
+
const defaults = getDefaults(yargs.argv.config || yargs.argv.cwd);
|
16
|
+
|
17
|
+
yargs
|
18
|
+
.positional('name', {
|
19
|
+
describe: `Import map name for import map that is to be aliased`,
|
20
|
+
type: 'string',
|
21
|
+
})
|
22
|
+
.positional('version', {
|
23
|
+
describe: `Import map version for import map that is to be aliased`,
|
24
|
+
type: 'string',
|
25
|
+
})
|
26
|
+
.positional('alias', {
|
27
|
+
describe: `Alias for a semver version. Should be the semver major component of version.`,
|
28
|
+
type: 'string',
|
29
|
+
});
|
30
|
+
|
31
|
+
yargs.options({
|
32
|
+
server: {
|
33
|
+
alias: 's',
|
34
|
+
describe: 'Specify location of asset server.',
|
35
|
+
// @ts-expect-error
|
36
|
+
default: defaults.server,
|
37
|
+
},
|
38
|
+
token: {
|
39
|
+
describe:
|
40
|
+
'Provide a jwt token to be used to authenticate with the Eik server.',
|
41
|
+
default: '',
|
42
|
+
alias: 't',
|
43
|
+
},
|
44
|
+
});
|
45
|
+
|
46
|
+
// @ts-expect-error
|
47
|
+
yargs.default('token', defaults.token, defaults.token ? '######' : '');
|
48
|
+
|
49
|
+
yargs.example(`eik map-alias my-map 1.0.0 1`);
|
50
|
+
yargs.example(`eik map-alias my-map 1.7.3 1`);
|
51
|
+
yargs.example(`eik map-alias my-map 6.3.1 6`);
|
52
|
+
yargs.example(
|
53
|
+
`eik map-alias my-map 6.3.1 6 --server https://assets.myeikserver.com`,
|
54
|
+
);
|
55
|
+
yargs.example(`eik map-alias my-map 4.2.2 4 --debug`);
|
56
|
+
};
|
57
|
+
|
58
|
+
export const handler = async (argv) => {
|
59
|
+
const spinner = ora({ stream: process.stdout }).start('working...');
|
60
|
+
let success = false;
|
61
|
+
const { debug, name, version, server } = argv;
|
62
|
+
const log = logger(spinner, debug);
|
63
|
+
let data = {};
|
64
|
+
|
65
|
+
try {
|
66
|
+
data = await new Alias({
|
67
|
+
type: 'map',
|
68
|
+
logger: log,
|
69
|
+
...argv,
|
70
|
+
}).run();
|
71
|
+
|
72
|
+
data.name = name;
|
73
|
+
data.version = version;
|
74
|
+
data.files = [];
|
75
|
+
|
76
|
+
const createdOrUpdated = data.update ? 'Updated' : 'Created';
|
77
|
+
log.info(
|
78
|
+
`${createdOrUpdated} alias for package "${data.name}". ("${data.version}" => "v${data.alias}")`,
|
79
|
+
);
|
80
|
+
success = true;
|
81
|
+
} catch (err) {
|
82
|
+
log.warn(err.message);
|
83
|
+
}
|
84
|
+
|
85
|
+
spinner.text = '';
|
86
|
+
spinner.stopAndPersist();
|
87
|
+
if (success) {
|
88
|
+
new AliasFormatter(data).format(server);
|
89
|
+
} else {
|
90
|
+
process.exit(1);
|
91
|
+
}
|
92
|
+
};
|
93
|
+
|
94
|
+
export const deprecated =
|
95
|
+
'"map-alias" will be removed in a future version. Please use "alias" instead';
|