@eik/cli 2.0.22 → 3.0.0-next.1

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,13 @@
1
+ # [3.0.0-next.1](https://github.com/eik-lib/cli/compare/v2.0.22...v3.0.0-next.1) (2022-08-17)
2
+
3
+
4
+ * feat(publish)!: include map publishing in "publish" command ([7968274](https://github.com/eik-lib/cli/commit/796827442b28bb9852af63137275535fae737c21))
5
+
6
+
7
+ ### BREAKING CHANGES
8
+
9
+ * the map command has been removed in favour of a single publish command
10
+
1
11
  ## [2.0.22](https://github.com/eik-lib/cli/compare/v2.0.21...v2.0.22) (2022-01-28)
2
12
 
3
13
 
package/classes/alias.js CHANGED
@@ -3,9 +3,12 @@
3
3
  const assert = require('assert');
4
4
  const abslog = require('abslog');
5
5
  const { join } = require('path');
6
- const { schemas, validators } = require('@eik/common');
6
+
7
+ const validators = require('@eik/common-validators');
8
+ const schemas = require('@eik/common-schemas');
9
+
10
+ const { typeSlug } = require('@eik/common-utils');
7
11
  const { request } = require('../utils/http');
8
- const { typeSlug } = require('../utils');
9
12
 
10
13
  module.exports = class Alias {
11
14
  constructor({ logger, server, token, type, name, version, alias } = {}) {
@@ -5,9 +5,11 @@
5
5
 
6
6
  const abslog = require('abslog');
7
7
  const { join } = require('path');
8
- const { schemas, ValidationError } = require('@eik/common');
8
+
9
+ const schemas = require('@eik/common-schemas');
10
+
11
+ const { typeSlug } = require('@eik/common-utils');
9
12
  const fetch = require('node-fetch');
10
- const { typeSlug } = require('../utils');
11
13
 
12
14
  module.exports = class Integrity {
13
15
  constructor({
@@ -46,12 +48,16 @@ module.exports = class Integrity {
46
48
 
47
49
  this.log.debug(` ==> debug: ${this.debug}`);
48
50
  if (typeof this.debug !== 'boolean') {
49
- throw new ValidationError(`Parameter "debug" is not valid`);
51
+ throw new schemas.ValidationError(
52
+ `Parameter "debug" is not valid`,
53
+ );
50
54
  }
51
55
 
52
56
  this.log.debug(` ==> cwd: ${this.cwd}`);
53
57
  if (typeof this.cwd !== 'string') {
54
- throw new ValidationError(`Parameter "cwd" is not valid`);
58
+ throw new schemas.ValidationError(
59
+ `Parameter "cwd" is not valid`,
60
+ );
55
61
  }
56
62
  } catch (err) {
57
63
  throw new Error(
package/classes/login.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const abslog = require('abslog');
4
- const { schemas, ValidationError } = require('@eik/common');
4
+ const schemas = require('@eik/common-schemas');
5
5
  const { request } = require('../utils/http');
6
6
 
7
7
  module.exports = class Login {
@@ -17,7 +17,7 @@ module.exports = class Login {
17
17
  try {
18
18
  schemas.assert.server(this.server);
19
19
  if (!this.key || typeof !this.key === 'string') {
20
- throw new ValidationError('"key" must be a string');
20
+ throw new schemas.ValidationError('"key" must be a string');
21
21
  }
22
22
  } catch (err) {
23
23
  this.log.error(err.message);
package/classes/meta.js CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  const abslog = require('abslog');
7
7
  const { join } = require('path');
8
- const { schemas } = require('@eik/common');
8
+ const schemas = require('@eik/common-schemas');
9
9
  const fetch = require('node-fetch');
10
10
 
11
11
  const types = ['pkg', 'map', 'npm'];
package/classes/ping.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  const fetch = require('node-fetch');
4
4
  const abslog = require('abslog');
5
- const { schemas } = require('@eik/common');
5
+ const schemas = require('@eik/common-schemas');
6
6
 
7
7
  module.exports = class Ping {
8
8
  constructor({ logger, server } = {}) {
@@ -4,7 +4,7 @@ const assert = require('assert');
4
4
  const abslog = require('abslog');
5
5
  const { join, parse, isAbsolute } = require('path');
6
6
  const { existsSync } = require('fs');
7
- const { schemas } = require('@eik/common');
7
+ const schemas = require('@eik/common-schemas');
8
8
  const { request } = require('../../utils/http');
9
9
 
10
10
  module.exports = class PublishMap {
@@ -2,8 +2,8 @@
2
2
 
3
3
  const abslog = require('abslog');
4
4
  const { join, isAbsolute } = require('path');
5
- const { EikConfig } = require('@eik/common');
6
- const { typeSlug } = require('../../../utils');
5
+ const { EikConfig } = require('@eik/common-config-loader');
6
+ const { typeSlug } = require('@eik/common-utils');
7
7
  const ValidateInput = require('./tasks/validate-input');
8
8
  const CreateTempDirectory = require('./tasks/create-temp-directory');
9
9
  const CreateZipFile = require('./tasks/create-zip-file');
@@ -3,9 +3,9 @@
3
3
  'use strict';
4
4
 
5
5
  const { join } = require('path');
6
+ const { typeSlug } = require('@eik/common-utils');
6
7
  const { integrity, versions } = require('../../../../utils/http');
7
8
  const hash = require('../../../../utils/hash');
8
- const { typeSlug } = require('../../../../utils');
9
9
  const Task = require('./task');
10
10
 
11
11
  module.exports = class CheckIfAlreadyPublished extends Task {
@@ -3,8 +3,8 @@
3
3
  'use strict';
4
4
 
5
5
  const { join } = require('path');
6
+ const { typeSlug } = require('@eik/common-utils');
6
7
  const { request } = require('../../../../utils/http');
7
- const { typeSlug } = require('../../../../utils');
8
8
  const Task = require('./task');
9
9
 
10
10
  module.exports = class UploadFiles extends Task {
@@ -30,6 +30,7 @@ module.exports = class UploadFiles extends Task {
30
30
  return message;
31
31
  } catch (err) {
32
32
  log.error('Unable to upload zip file to server');
33
+
33
34
  switch (err.statusCode) {
34
35
  case 400:
35
36
  throw new Error(
@@ -52,7 +53,9 @@ module.exports = class UploadFiles extends Task {
52
53
  'Server was unable to write file to storage',
53
54
  );
54
55
  default:
55
- throw new Error('Server failed');
56
+ throw new Error(
57
+ `Upload to server failed, server responded with: ${err.message}`,
58
+ );
56
59
  }
57
60
  }
58
61
  }
@@ -7,10 +7,13 @@ const { join, isAbsolute, parse } = require('path');
7
7
  const abslog = require('abslog');
8
8
  const semver = require('semver');
9
9
  const mkdir = require('make-dir');
10
- const { schemas, EikConfig } = require('@eik/common');
10
+
11
+ const { EikConfig } = require('@eik/common-config-loader');
12
+ const schemas = require('@eik/common-schemas');
13
+
14
+ const { typeSlug } = require('@eik/common-utils');
11
15
  const { integrity } = require('../utils/http');
12
16
  const hash = require('../utils/hash');
13
- const { typeSlug } = require('../utils');
14
17
 
15
18
  module.exports = class Version {
16
19
  constructor({
@@ -6,11 +6,9 @@
6
6
 
7
7
  const { join } = require('path');
8
8
  const ora = require('ora');
9
- const {
10
- helpers: { configStore },
11
- } = require('@eik/common');
9
+ const { configStore, getDefaults } = require('@eik/common-config-loader');
12
10
  const Integrity = require('../classes/integrity');
13
- const { logger, getDefaults, getCWD } = require('../utils');
11
+ const { logger, getCWD } = require('../utils');
14
12
  const json = require('../utils/json');
15
13
 
16
14
  exports.command = 'integrity [name] [version]';
package/commands/login.js CHANGED
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  const homedir = require('os').homedir();
4
+ const { getDefaults } = require('@eik/common-config-loader');
4
5
  const readline = require('readline');
5
6
  const ora = require('ora');
6
7
  const Login = require('../classes/login');
7
- const { logger, getDefaults, getCWD } = require('../utils');
8
+ const { logger, getCWD } = require('../utils');
8
9
  const json = require('../utils/json');
9
10
 
10
11
  exports.command = 'login';
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  const ora = require('ora');
4
+ const { getDefaults } = require('@eik/common-config-loader');
4
5
  const Alias = require('../classes/alias');
5
- const { logger, getDefaults, getCWD } = require('../utils');
6
+ const { logger, getCWD } = require('../utils');
6
7
  const { Alias: AliasFormatter } = require('../formatters');
7
8
 
8
9
  exports.command = 'map-alias <name> <version> <alias>';
package/commands/meta.js CHANGED
@@ -5,9 +5,10 @@
5
5
  'use strict';
6
6
 
7
7
  const ora = require('ora');
8
+ const { getDefaults } = require('@eik/common-config-loader');
8
9
  const Meta = require('../classes/meta');
9
10
  const { Artifact } = require('../formatters');
10
- const { logger, getDefaults, getCWD } = require('../utils');
11
+ const { logger, getCWD } = require('../utils');
11
12
 
12
13
  exports.command = 'meta <name>';
13
14
 
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  const ora = require('ora');
4
+ const { getDefaults } = require('@eik/common-config-loader');
4
5
  const Alias = require('../classes/alias');
5
- const { logger, getDefaults, getCWD } = require('../utils');
6
+ const { logger, getCWD } = require('../utils');
6
7
  const { Alias: AliasFormatter } = require('../formatters');
7
8
 
8
9
  exports.command = 'npm-alias <name> <version> <alias>';
@@ -2,8 +2,9 @@
2
2
 
3
3
  const ora = require('ora');
4
4
  const semver = require('semver');
5
+ const { getDefaults } = require('@eik/common-config-loader');
5
6
  const Alias = require('../classes/alias');
6
- const { logger, getDefaults, getCWD } = require('../utils');
7
+ const { logger, getCWD } = require('../utils');
7
8
  const { Alias: AliasFormatter } = require('../formatters');
8
9
 
9
10
  exports.command = 'package-alias [name] [version] [alias]';
package/commands/ping.js CHANGED
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  const ora = require('ora');
4
+ const { getDefaults } = require('@eik/common-config-loader');
4
5
  const Ping = require('../classes/ping');
5
- const { logger, getDefaults, getCWD } = require('../utils');
6
+ const { logger, getCWD } = require('../utils');
6
7
 
7
8
  exports.command = 'ping [server]';
8
9
 
@@ -4,24 +4,20 @@ const { join } = require('path');
4
4
  const fetch = require('node-fetch');
5
5
  const ora = require('ora');
6
6
  const chalk = require('chalk');
7
- const {
8
- helpers: { configStore },
9
- } = require('@eik/common');
7
+ const { configStore, getDefaults } = require('@eik/common-config-loader');
8
+ const { typeSlug, typeTitle } = require('@eik/common-utils');
9
+
10
10
  const PublishPackage = require('../classes/publish/package/index');
11
- const {
12
- logger,
13
- getDefaults,
14
- getCWD,
15
- typeSlug,
16
- typeTitle,
17
- } = require('../utils');
11
+ const { logger, getCWD } = require('../utils');
12
+
18
13
  const { Artifact } = require('../formatters');
14
+ const PublishMap = require('../classes/publish/map');
19
15
 
20
16
  exports.command = 'publish';
21
17
 
22
18
  exports.aliases = ['pkg', 'package', 'pub'];
23
19
 
24
- exports.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.`;
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.`;
25
21
 
26
22
  exports.builder = (yargs) => {
27
23
  const cwd = getCWD();
@@ -52,6 +48,18 @@ exports.builder = (yargs) => {
52
48
  type: 'string',
53
49
  alias: 't',
54
50
  },
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
+ },
55
63
  });
56
64
 
57
65
  yargs.default('token', defaults.token, defaults.token ? '######' : '');
@@ -65,87 +73,113 @@ exports.builder = (yargs) => {
65
73
 
66
74
  exports.handler = async (argv) => {
67
75
  const spinner = ora({ stream: process.stdout }).start('working...');
68
- const { debug, dryRun, cwd, token } = argv;
76
+ const { debug, dryRun, cwd, token, type: typeFromArgs } = argv;
69
77
  const config = configStore.findInDirectory(cwd);
70
78
  const { name, server, version, type, map, out, files } = config;
71
79
 
72
- if (type === 'map') {
73
- spinner.warn(
74
- '"type" is set to "map", which is not supported by the publish command. Please use the "eik map" command instead',
75
- );
76
- process.stdout.write('\n');
77
- process.exit(0);
78
- }
80
+ const typeOverride = typeFromArgs || type;
79
81
 
80
82
  try {
81
- const options = {
82
- logger: logger(spinner, debug),
83
- cwd,
84
- token,
85
- dryRun,
86
- debug,
87
- name,
88
- server,
89
- version,
90
- type,
91
- map,
92
- out,
93
- files,
94
- };
95
-
96
- const publish = await new PublishPackage(options).run();
97
-
98
- if (!publish) {
99
- spinner.warn(
100
- 'Version in eik.json has not changed since last publish, publishing is not necessary',
101
- );
102
- process.stdout.write('\n');
103
- process.exit(0);
104
- }
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];
105
122
 
106
- const { files: fls } = publish;
123
+ spinner.text = '';
124
+ spinner.stopAndPersist();
107
125
 
108
- if (!dryRun) {
109
- let url = new URL(join(typeSlug(type), name), server);
126
+ artifact.format(server);
127
+ process.stdout.write('\n');
128
+ } else {
129
+ spinner.text = '';
130
+ spinner.stopAndPersist();
131
+
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);
110
166
  let res = await fetch(url);
111
167
  const pkgMeta = await res.json();
112
168
 
113
- url = new URL(join(typeSlug(type), name, version), server);
169
+ url = new URL(join('map', name, version), server);
114
170
  res = await fetch(url);
115
- const pkgVersionMeta = await res.json();
116
171
 
117
- const artifact = new Artifact(pkgMeta);
118
- artifact.versions = [pkgVersionMeta];
172
+ log.info(`Published import map "${name}" at version "${version}"`);
119
173
 
120
174
  spinner.text = '';
121
175
  spinner.stopAndPersist();
122
176
 
177
+ const artifact = new Artifact(pkgMeta);
178
+ const versions = new Map(pkgMeta.versions);
179
+ artifact.versions = Array.from(versions.values());
123
180
  artifact.format(server);
124
- process.stdout.write('\n');
125
- } else {
126
- spinner.text = '';
127
- spinner.stopAndPersist();
128
181
 
129
- process.stdout.write(
130
- `:: ${chalk.bgYellow.white.bold(
131
- typeTitle(type),
132
- )} > ${chalk.green(name)} | ${chalk.bold('dry run')}`,
133
- );
134
- process.stdout.write('\n\n');
135
- process.stdout.write(' files (local temporary):\n');
136
- for (const file of fls) {
137
- process.stdout.write(
138
- ` - ${chalk.bold('type')}: ${file.type}\n`,
139
- );
140
- process.stdout.write(
141
- ` ${chalk.bold('path')}: ${file.pathname}\n\n`,
142
- );
143
- }
144
- process.stdout.write(
145
- ` ${chalk.bold(
146
- 'No files were published to remote server',
147
- )}\n\n`,
148
- );
182
+ process.stdout.write('\n');
149
183
  }
150
184
  } catch (err) {
151
185
  spinner.warn(err.message);
@@ -3,11 +3,9 @@
3
3
  const { execSync } = require('child_process');
4
4
  const { join } = require('path');
5
5
  const ora = require('ora');
6
- const {
7
- helpers: { configStore },
8
- } = require('@eik/common');
6
+ const { configStore, getDefaults } = require('@eik/common-config-loader');
9
7
  const VersionPackage = require('../classes/version');
10
- const { logger, getDefaults, getCWD } = require('../utils');
8
+ const { logger, getCWD } = require('../utils');
11
9
  const json = require('../utils/json');
12
10
 
13
11
  exports.command = 'version [level]';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eik/cli",
3
- "version": "2.0.22",
3
+ "version": "3.0.0-next.1",
4
4
  "description": "Cli tool for publishing assets",
5
5
  "main": "./classes/index.js",
6
6
  "bin": {
@@ -32,7 +32,10 @@
32
32
  "author": "",
33
33
  "license": "MIT",
34
34
  "dependencies": {
35
- "@eik/common": "^3.0.0",
35
+ "@eik/common-config-loader": "^4.0.0-next.8",
36
+ "@eik/common-schemas": "^4.0.0-next.8",
37
+ "@eik/common-utils": "^4.0.0-next.8",
38
+ "@eik/common-validators": "^4.0.0-next.8",
36
39
  "abslog": "2.4.0",
37
40
  "boxen": "5.1.2",
38
41
  "bytes": "3.1.2",
@@ -60,7 +63,7 @@
60
63
  "@eik/service": "1.2.98",
61
64
  "@semantic-release/changelog": "6.0.1",
62
65
  "@semantic-release/git": "10.0.1",
63
- "eslint": "8.7.0",
66
+ "eslint": "8.8.0",
64
67
  "eslint-config-airbnb-base": "15.0.0",
65
68
  "eslint-config-prettier": "8.3.0",
66
69
  "eslint-plugin-import": "2.25.4",
@@ -69,11 +72,11 @@
69
72
  "fastify-cors": "6.0.2",
70
73
  "fs-extra": "10.0.0",
71
74
  "prettier": "2.5.1",
72
- "puppeteer": "13.1.1",
75
+ "puppeteer": "13.1.2",
73
76
  "react": "17.0.2",
74
77
  "react-dom": "17.0.2",
75
78
  "semantic-release": "19.0.2",
76
- "semantic-release-slack-bot": "3.5.0",
79
+ "semantic-release-slack-bot": "3.5.2",
77
80
  "tap": "15.1.6"
78
81
  }
79
82
  }
package/utils/index.js CHANGED
@@ -1,11 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const {
4
- helpers: { getDefaults, files },
5
- } = require('@eik/common');
6
3
  const logger = require('./logger');
7
4
  const getCWD = require('./get-cwd');
8
- const typeSlug = require('./type-slug');
9
- const typeTitle = require('./type-title');
10
5
 
11
- module.exports = { logger, getDefaults, getCWD, files, typeSlug, typeTitle };
6
+ module.exports = { logger, getCWD };
package/commands/map.js DELETED
@@ -1,104 +0,0 @@
1
- 'use strict';
2
-
3
- const { join } = require('path');
4
- const fetch = require('node-fetch');
5
- const ora = require('ora');
6
- const PublishMap = require('../classes/publish/map');
7
- const { logger, getDefaults, getCWD } = require('../utils');
8
- const { Artifact } = require('../formatters');
9
-
10
- exports.command = 'map <name> <version> <file>';
11
-
12
- exports.aliases = ['m'];
13
-
14
- exports.describe = `Upload an import map file to the server under a given name and version.
15
- A name/version combination must be unique and a version must be semver compliant.
16
- Subsquent published versions must increase. Eg. 1.0.0 1.0.1, 1.1.0, 2.0.0 etc.`;
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.',
25
- type: 'string',
26
- })
27
- .positional('version', {
28
- describe: 'Import map version.',
29
- type: 'string',
30
- })
31
- .positional('file', {
32
- describe:
33
- 'Path to import map file on local disk relative to the current working directory.',
34
- type: 'string',
35
- normalize: true,
36
- });
37
-
38
- yargs.options({
39
- server: {
40
- alias: 's',
41
- describe: 'Specify location of asset server.',
42
- default: defaults.server,
43
- },
44
- cwd: {
45
- alias: 'c',
46
- describe: 'Alter current working directory.',
47
- default: defaults.cwd,
48
- },
49
- debug: {
50
- describe: 'Logs additional messages',
51
- default: false,
52
- type: 'boolean',
53
- },
54
- token: {
55
- describe:
56
- 'Provide a jwt token to be used to authenticate with the Eik server.',
57
- default: '',
58
- alias: 't',
59
- },
60
- });
61
-
62
- yargs.default('token', defaults.token, defaults.token ? '######' : '');
63
-
64
- yargs.example(`eik map my-map 1.0.0 ./import-map.json`);
65
- yargs.example(`eik map my-map 2.1.0 ./import-map.json --debug`);
66
- yargs.example(
67
- `eik map my-map 2.1.1 ./import-map.json --server https://assets.myeikserver.com`,
68
- );
69
- };
70
-
71
- exports.handler = async (argv) => {
72
- const spinner = ora({ stream: process.stdout }).start('working...');
73
- const { debug, server, name, version } = argv;
74
-
75
- try {
76
- const log = logger(spinner, debug);
77
-
78
- await new PublishMap({ logger: log, ...argv }).run();
79
-
80
- let url = new URL(join('map', name), server);
81
- let res = await fetch(url);
82
- const pkgMeta = await res.json();
83
-
84
- url = new URL(join('map', name, version), server);
85
- res = await fetch(url);
86
-
87
- log.info(`Published import map "${name}" at version "${version}"`);
88
-
89
- spinner.text = '';
90
- spinner.stopAndPersist();
91
-
92
- const artifact = new Artifact(pkgMeta);
93
- const versions = new Map(pkgMeta.versions);
94
- artifact.versions = Array.from(versions.values());
95
- artifact.format(server);
96
-
97
- process.stdout.write('\n');
98
- } catch (err) {
99
- spinner.warn(err.message);
100
- spinner.text = '';
101
- spinner.stopAndPersist();
102
- process.exit(1);
103
- }
104
- };