@badisi/latest-version 6.1.6 → 6.1.8

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 (3) hide show
  1. package/cli.js +23 -47
  2. package/index.js +29 -67
  3. package/package.json +5 -4
package/cli.js CHANGED
@@ -21,26 +21,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
22
  mod
23
23
  ));
24
- var __async = (__this, __arguments, generator) => {
25
- return new Promise((resolve, reject) => {
26
- var fulfilled = (value) => {
27
- try {
28
- step(generator.next(value));
29
- } catch (e) {
30
- reject(e);
31
- }
32
- };
33
- var rejected = (value) => {
34
- try {
35
- step(generator.throw(value));
36
- } catch (e) {
37
- reject(e);
38
- }
39
- };
40
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
41
- step((generator = generator.apply(__this, __arguments)).next());
42
- });
43
- };
44
24
 
45
25
  // src/cli.ts
46
26
  var import_safe = require("@colors/colors/safe");
@@ -66,8 +46,7 @@ var colorizeDiff = (from, to) => {
66
46
  return to;
67
47
  };
68
48
  var columnCellRenderer = (column, row) => {
69
- var _a;
70
- let text = (_a = row[column.attrName]) != null ? _a : "";
49
+ let text = row[column.attrName] ?? "";
71
50
  const gap = text.length < column.maxLength ? " ".repeat(column.maxLength - text.length) : "";
72
51
  switch (column.attrName) {
73
52
  case "name":
@@ -122,8 +101,7 @@ var getTableColumns = (rows) => {
122
101
  ];
123
102
  rows.forEach(
124
103
  (row) => columns.forEach((column) => {
125
- var _a;
126
- column.maxLength = Math.max(column.label.length, column.maxLength, ((_a = row[column.attrName]) == null ? void 0 : _a.length) || 0);
104
+ column.maxLength = Math.max(column.label.length, column.maxLength, row[column.attrName]?.length || 0);
127
105
  })
128
106
  );
129
107
  return columns;
@@ -132,11 +110,10 @@ var getTableRows = (updates) => {
132
110
  return updates.reduce((all, pkg) => {
133
111
  const { name, latest, local, globalNpm, globalYarn, wantedTagOrRange, updatesAvailable } = pkg;
134
112
  const getGroup = (a, b) => {
135
- var _a;
136
113
  if (b && (0, import_major.default)(b) === 0) {
137
114
  return "majorVersionZero";
138
115
  } else if (a && b) {
139
- const releaseType = (_a = (0, import_diff.default)(a, b)) != null ? _a : "";
116
+ const releaseType = (0, import_diff.default)(a, b) ?? "";
140
117
  if (["major", "premajor", "prerelease"].includes(releaseType)) {
141
118
  return "major";
142
119
  } else if (["minor", "preminor"].includes(releaseType)) {
@@ -148,13 +125,13 @@ var getTableRows = (updates) => {
148
125
  return "unknown";
149
126
  };
150
127
  const add = (group, location, installed, wanted) => all.push({
151
- name: " " + (name != null ? name : "unknown"),
152
- location: location != null ? location : "unknown",
153
- installed: installed != null ? installed : "unknown",
154
- latest: latest != null ? latest : "unknown",
155
- tagOrRange: wantedTagOrRange != null ? wantedTagOrRange : "unknown",
128
+ name: " " + (name ?? "unknown"),
129
+ location: location ?? "unknown",
130
+ installed: installed ?? "unknown",
131
+ latest: latest ?? "unknown",
132
+ tagOrRange: wantedTagOrRange ?? "unknown",
156
133
  separator: "\u2192",
157
- wanted: wanted != null ? wanted : "unknown",
134
+ wanted: wanted ?? "unknown",
158
135
  group
159
136
  });
160
137
  if (updatesAvailable) {
@@ -214,24 +191,24 @@ var displayTable = (updates) => {
214
191
  console.log((0, import_safe.green)("\u{1F389} Packages are up-to-date"));
215
192
  }
216
193
  };
217
- var checkVersions = (_0, _1, ..._2) => __async(exports, [_0, _1, ..._2], function* (packages, skipMissing, options = { useCache: true }) {
194
+ var checkVersions = async (packages, skipMissing, options = { useCache: true }) => {
218
195
  const spinner = (0, import_ora.default)({ text: (0, import_safe.cyan)("Checking versions...") });
219
196
  spinner.start();
220
- let latestVersionPackages = yield (0, import_index.default)(packages, options);
197
+ let latestVersionPackages = await (0, import_index.default)(packages, options);
221
198
  if (skipMissing) {
222
199
  latestVersionPackages = latestVersionPackages.filter((pkg) => pkg.local || pkg.globalNpm || pkg.globalYarn);
223
200
  }
224
201
  spinner.stop();
225
202
  displayTable(latestVersionPackages);
226
- });
227
- void (() => __async(exports, null, function* () {
203
+ };
204
+ void (async () => {
228
205
  let args = process.argv.slice(2);
229
206
  const skipMissing = args.includes("--skip-missing");
230
207
  args = args.filter((arg) => !arg.startsWith("-"));
231
208
  if (args.length === 1 && args[0].endsWith("package.json")) {
232
209
  if ((0, import_fs.existsSync)(args[0])) {
233
210
  process.chdir((0, import_path.dirname)(args[0]));
234
- yield checkVersions(JSON.parse((0, import_fs.readFileSync)(args[0]).toString()), skipMissing);
211
+ await checkVersions(JSON.parse((0, import_fs.readFileSync)(args[0]).toString()), skipMissing);
235
212
  } else {
236
213
  console.log((0, import_safe.cyan)("No package.json file were found"));
237
214
  }
@@ -242,21 +219,20 @@ void (() => __async(exports, null, function* () {
242
219
  }
243
220
  if (args.length) {
244
221
  args = args.map((arg) => {
245
- var _a, _b, _c, _d, _e, _f;
246
- if ((_a = localPkgJson == null ? void 0 : localPkgJson.dependencies) == null ? void 0 : _a[arg]) {
247
- return `${arg}@${(_b = localPkgJson == null ? void 0 : localPkgJson.dependencies) == null ? void 0 : _b[arg]}`;
248
- } else if ((_c = localPkgJson == null ? void 0 : localPkgJson.devDependencies) == null ? void 0 : _c[arg]) {
249
- return `${arg}@${(_d = localPkgJson == null ? void 0 : localPkgJson.devDependencies) == null ? void 0 : _d[arg]}`;
250
- } else if ((_e = localPkgJson == null ? void 0 : localPkgJson.peerDependencies) == null ? void 0 : _e[arg]) {
251
- return `${arg}@${(_f = localPkgJson == null ? void 0 : localPkgJson.peerDependencies) == null ? void 0 : _f[arg]}`;
222
+ if (localPkgJson?.dependencies?.[arg]) {
223
+ return `${arg}@${localPkgJson?.dependencies?.[arg]}`;
224
+ } else if (localPkgJson?.devDependencies?.[arg]) {
225
+ return `${arg}@${localPkgJson?.devDependencies?.[arg]}`;
226
+ } else if (localPkgJson?.peerDependencies?.[arg]) {
227
+ return `${arg}@${localPkgJson?.peerDependencies?.[arg]}`;
252
228
  }
253
229
  return arg;
254
230
  });
255
- yield checkVersions(args, skipMissing);
231
+ await checkVersions(args, skipMissing);
256
232
  } else if (localPkgJson) {
257
- yield checkVersions(localPkgJson, skipMissing);
233
+ await checkVersions(localPkgJson, skipMissing);
258
234
  } else {
259
235
  console.log((0, import_safe.cyan)("No packages were found"));
260
236
  }
261
237
  }
262
- }))();
238
+ })();
package/index.js CHANGED
@@ -1,27 +1,10 @@
1
1
  "use strict";
2
2
  var __create = Object.create;
3
3
  var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
8
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
6
  var __getProtoOf = Object.getPrototypeOf;
10
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b ||= {})
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
8
  var __export = (target, all) => {
26
9
  for (var name in all)
27
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -43,26 +26,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
26
  mod
44
27
  ));
45
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
- var __async = (__this, __arguments, generator) => {
47
- return new Promise((resolve, reject) => {
48
- var fulfilled = (value) => {
49
- try {
50
- step(generator.next(value));
51
- } catch (e) {
52
- reject(e);
53
- }
54
- };
55
- var rejected = (value) => {
56
- try {
57
- step(generator.throw(value));
58
- } catch (e) {
59
- reject(e);
60
- }
61
- };
62
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
63
- step((generator = generator.apply(__this, __arguments)).next());
64
- });
65
- };
66
29
 
67
30
  // src/index.ts
68
31
  var src_exports = {};
@@ -88,7 +51,7 @@ var downloadMetadata = (pkgName, options) => {
88
51
  return new Promise((resolve, reject) => {
89
52
  const i = pkgName.indexOf("/");
90
53
  const pkgScope = i !== -1 ? pkgName.slice(0, i) : "";
91
- const registryUrl = (options == null ? void 0 : options.registryUrl) || (0, import_registry_url.default)(pkgScope);
54
+ const registryUrl = options?.registryUrl || (0, import_registry_url.default)(pkgScope);
92
55
  const pkgUrl = new import_url.URL(encodeURIComponent(pkgName).replace(/^%40/, "@"), registryUrl);
93
56
  let requestOptions = {
94
57
  headers: { accept: "application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*" },
@@ -100,8 +63,8 @@ var downloadMetadata = (pkgName, options) => {
100
63
  if (authInfo && requestOptions.headers) {
101
64
  requestOptions.headers.authorization = `${authInfo.type} ${authInfo.token}`;
102
65
  }
103
- if (options == null ? void 0 : options.requestOptions) {
104
- requestOptions = __spreadValues(__spreadValues({}, requestOptions), options.requestOptions);
66
+ if (options?.requestOptions) {
67
+ requestOptions = { ...requestOptions, ...options.requestOptions };
105
68
  }
106
69
  const { get } = pkgUrl.protocol === "https:" ? require("https") : require("http");
107
70
  const request = get(requestOptions, (res) => {
@@ -158,8 +121,7 @@ var saveMetadataToCache = (pkg) => {
158
121
  (0, import_fs.writeFileSync)(filePath, JSON.stringify(pkg));
159
122
  };
160
123
  var getMetadataFromCache = (pkgName, options) => {
161
- var _a;
162
- const maxAge = (_a = options == null ? void 0 : options.cacheMaxAge) != null ? _a : ONE_DAY;
124
+ const maxAge = options?.cacheMaxAge ?? ONE_DAY;
163
125
  if (maxAge !== 0) {
164
126
  const pkgCacheFilePath = (0, import_path.join)(getCacheDir(), `${pkgName}.json`);
165
127
  if ((0, import_fs.existsSync)(pkgCacheFilePath)) {
@@ -171,40 +133,38 @@ var getMetadataFromCache = (pkgName, options) => {
171
133
  }
172
134
  return void 0;
173
135
  };
174
- var getRegistryVersions = (pkgName, tagOrRange, options) => __async(void 0, null, function* () {
175
- var _a, _b, _c;
136
+ var getRegistryVersions = async (pkgName, tagOrRange, options) => {
176
137
  let pkgMetadata;
177
- if (pkgName.length && (options == null ? void 0 : options.useCache)) {
138
+ if (pkgName.length && options?.useCache) {
178
139
  pkgMetadata = getMetadataFromCache(pkgName, options);
179
140
  if (!pkgMetadata) {
180
- pkgMetadata = yield downloadMetadata(pkgName, options);
141
+ pkgMetadata = await downloadMetadata(pkgName, options);
181
142
  saveMetadataToCache(pkgMetadata);
182
143
  }
183
144
  } else if (pkgName.length) {
184
- pkgMetadata = yield downloadMetadata(pkgName, options);
145
+ pkgMetadata = await downloadMetadata(pkgName, options);
185
146
  }
186
147
  const versions = {
187
- latest: (_a = pkgMetadata == null ? void 0 : pkgMetadata.distTags) == null ? void 0 : _a.latest,
188
- next: (_b = pkgMetadata == null ? void 0 : pkgMetadata.distTags) == null ? void 0 : _b.next
148
+ latest: pkgMetadata?.distTags?.latest,
149
+ next: pkgMetadata?.distTags?.next
189
150
  };
190
- if (tagOrRange && (pkgMetadata == null ? void 0 : pkgMetadata.distTags) && (pkgMetadata == null ? void 0 : pkgMetadata.distTags[tagOrRange])) {
151
+ if (tagOrRange && pkgMetadata?.distTags && pkgMetadata?.distTags[tagOrRange]) {
191
152
  versions.wanted = pkgMetadata.distTags[tagOrRange];
192
- } else if (tagOrRange && ((_c = pkgMetadata == null ? void 0 : pkgMetadata.versions) == null ? void 0 : _c.length)) {
153
+ } else if (tagOrRange && pkgMetadata?.versions?.length) {
193
154
  versions.wanted = (0, import_max_satisfying.default)(pkgMetadata.versions, tagOrRange) || void 0;
194
155
  }
195
156
  return versions;
196
- });
157
+ };
197
158
  var getInstalledVersion = (pkgName, location = "local") => {
198
- var _a, _b, _c, _d;
199
159
  try {
200
160
  if (location === "globalNpm") {
201
- return (_a = require((0, import_path.join)(import_global_dirs.npm.packages, pkgName, "package.json"))) == null ? void 0 : _a.version;
161
+ return require((0, import_path.join)(import_global_dirs.npm.packages, pkgName, "package.json"))?.version;
202
162
  } else if (location === "globalYarn") {
203
163
  const yarnGlobalPkg = require((0, import_path.resolve)(import_global_dirs.yarn.packages, "..", "package.json"));
204
- if (!((_b = yarnGlobalPkg == null ? void 0 : yarnGlobalPkg.dependencies) == null ? void 0 : _b[pkgName])) {
164
+ if (!yarnGlobalPkg?.dependencies?.[pkgName]) {
205
165
  return void 0;
206
166
  }
207
- return (_c = require((0, import_path.join)(import_global_dirs.yarn.packages, pkgName, "package.json"))) == null ? void 0 : _c.version;
167
+ return require((0, import_path.join)(import_global_dirs.yarn.packages, pkgName, "package.json"))?.version;
208
168
  } else if (location === "local") {
209
169
  const { root } = (0, import_path.parse)(process.cwd());
210
170
  let path = process.cwd();
@@ -216,16 +176,16 @@ var getInstalledVersion = (pkgName, location = "local") => {
216
176
  for (const localPath of localPaths) {
217
177
  const pkgPath = (0, import_path.join)(localPath, pkgName, "package.json");
218
178
  if ((0, import_fs.existsSync)(pkgPath)) {
219
- return (_d = require(pkgPath)) == null ? void 0 : _d.version;
179
+ return require(pkgPath)?.version;
220
180
  }
221
181
  }
222
182
  }
223
183
  return void 0;
224
- } catch (e) {
184
+ } catch {
225
185
  return void 0;
226
186
  }
227
187
  };
228
- var getInfo = (pkg, options) => __async(void 0, null, function* () {
188
+ var getInfo = async (pkg, options) => {
229
189
  const i = pkg.lastIndexOf("@");
230
190
  let pkgInfo = {
231
191
  name: i > 1 ? pkg.slice(0, i) : pkg,
@@ -233,21 +193,23 @@ var getInfo = (pkg, options) => __async(void 0, null, function* () {
233
193
  updatesAvailable: false
234
194
  };
235
195
  try {
236
- pkgInfo = __spreadValues(__spreadProps(__spreadValues({}, pkgInfo), {
196
+ pkgInfo = {
197
+ ...pkgInfo,
237
198
  local: getInstalledVersion(pkgInfo.name, "local"),
238
199
  globalNpm: getInstalledVersion(pkgInfo.name, "globalNpm"),
239
- globalYarn: getInstalledVersion(pkgInfo.name, "globalYarn")
240
- }), yield getRegistryVersions(pkgInfo.name, pkgInfo.wantedTagOrRange, options));
200
+ globalYarn: getInstalledVersion(pkgInfo.name, "globalYarn"),
201
+ ...await getRegistryVersions(pkgInfo.name, pkgInfo.wantedTagOrRange, options)
202
+ };
241
203
  const local = pkgInfo.local && pkgInfo.wanted ? (0, import_gt.default)(pkgInfo.wanted, pkgInfo.local) ? pkgInfo.wanted : false : false;
242
204
  const globalNpm = pkgInfo.globalNpm && pkgInfo.wanted ? (0, import_gt.default)(pkgInfo.wanted, pkgInfo.globalNpm) ? pkgInfo.wanted : false : false;
243
205
  const globalYarn = pkgInfo.globalYarn && pkgInfo.wanted ? (0, import_gt.default)(pkgInfo.wanted, pkgInfo.globalYarn) ? pkgInfo.wanted : false : false;
244
206
  pkgInfo.updatesAvailable = local || globalNpm || globalYarn ? { local, globalNpm, globalYarn } : false;
245
207
  } catch (err) {
246
- pkgInfo.error = (err == null ? void 0 : err.message) || err;
208
+ pkgInfo.error = err?.message || err;
247
209
  }
248
210
  return pkgInfo;
249
- });
250
- var latestVersion = (arg, options) => __async(void 0, null, function* () {
211
+ };
212
+ var latestVersion = async (arg, options) => {
251
213
  const pkgs = [];
252
214
  if (typeof arg === "string") {
253
215
  pkgs.push(arg);
@@ -263,10 +225,10 @@ var latestVersion = (arg, options) => __async(void 0, null, function* () {
263
225
  addDeps(arg.devDependencies);
264
226
  addDeps(arg.peerDependencies);
265
227
  }
266
- const jobs = yield Promise.allSettled(pkgs.map((pkg) => getInfo(pkg, options)));
228
+ const jobs = await Promise.allSettled(pkgs.map((pkg) => getInfo(pkg, options)));
267
229
  const results = jobs.map((jobResult) => jobResult.value);
268
230
  return typeof arg === "string" ? results[0] : results;
269
- });
231
+ };
270
232
  var src_default = latestVersion;
271
233
  // Annotate the CommonJS export names for ESM import in node:
272
234
  0 && (module.exports = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@badisi/latest-version",
3
- "version": "6.1.6",
3
+ "version": "6.1.8",
4
4
  "description": "Get latest versions of packages",
5
5
  "homepage": "https://github.com/badisi/latest-version",
6
6
  "license": "MIT",
@@ -9,10 +9,11 @@
9
9
  },
10
10
  "type": "commonjs",
11
11
  "main": "index.js",
12
- "types": "index.d.ts",
12
+ "typings": "index.d.ts",
13
13
  "exports": {
14
14
  ".": {
15
15
  "types": "./index.d.ts",
16
+ "default": "./index.js",
16
17
  "require": "./index.js"
17
18
  },
18
19
  "./package.json": "./package.json"
@@ -44,9 +45,9 @@
44
45
  },
45
46
  "dependencies": {
46
47
  "global-dirs": "^3.0.1",
47
- "@colors/colors": "^1.5.0",
48
+ "@colors/colors": "^1.6.0",
48
49
  "registry-auth-token": "^5.0.2",
49
- "semver": "^7.5.1",
50
+ "semver": "^7.5.4",
50
51
  "ora": "5.4.1"
51
52
  }
52
53
  }