crates-updater 1.7.4 → 1.8.0

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/README.md CHANGED
@@ -9,7 +9,7 @@ Check your [Rust packages](https://crates.io) for updates.
9
9
 
10
10
  ## Installation
11
11
 
12
- ℹ️ This is a hybrid [CommonJS](https://nodejs.org/docs/latest/api/modules.html#modules-commonjs-modules) / [ESM](https://nodejs.org/api/esm.html#introduction) module.
12
+ ℹ️ This is a pure [ESM](https://nodejs.org/api/esm.html#introduction) module.
13
13
 
14
14
  Run `yarn global add crates-updater` or `npm i -g crates-updater`.
15
15
 
@@ -1,9 +1,13 @@
1
1
  #!/usr/bin/env node
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
2
5
  import { program as commander } from 'commander';
3
- import { createRequire } from 'module';
4
- const require = createRequire(import.meta.url);
5
6
  import * as CratesUpdater from './CratesUpdater.js';
6
- const { bin, description, version } = require('../package.json');
7
+ const __filename = fileURLToPath(import.meta.url);
8
+ const __dirname = path.dirname(__filename);
9
+ const packageJsonPath = path.join(__dirname, '../package.json');
10
+ const { bin, description, version } = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
7
11
  commander
8
12
  .name(Object.keys(bin)[0])
9
13
  .description(description)
package/package.json CHANGED
@@ -1,28 +1,23 @@
1
1
  {
2
2
  "author": "Florian Imdahl <git@ffflorian.de>",
3
3
  "bin": {
4
- "crates-updater": "dist/cjs/cli.js",
5
- "update-crates": "dist/cjs/cli.js"
4
+ "crates-updater": "dist/cli.js",
5
+ "update-crates": "dist/cli.js"
6
6
  },
7
7
  "dependencies": {
8
8
  "commander": "12.1.0",
9
- "compare-versions": "6.1.0",
10
- "crates.io": "2.2.7"
9
+ "compare-versions": "6.1.1",
10
+ "crates.io": "2.2.8"
11
11
  },
12
12
  "description": "Check your Rust packages for updates.",
13
13
  "devDependencies": {
14
- "rimraf": "5.0.7",
15
- "typescript": "5.4.5"
14
+ "rimraf": "6.0.1",
15
+ "typescript": "5.5.4"
16
16
  },
17
17
  "engines": {
18
18
  "node": ">= 18.0"
19
19
  },
20
- "exports": {
21
- ".": {
22
- "import": "./dist/esm/index.js",
23
- "require": "./dist/cjs/index.js"
24
- }
25
- },
20
+ "exports": "./dist/index.js",
26
21
  "files": [
27
22
  "dist"
28
23
  ],
@@ -33,20 +28,16 @@
33
28
  "cli"
34
29
  ],
35
30
  "license": "GPL-3.0",
36
- "main": "dist/cjs/index.js",
37
- "module": "dist/esm/index.js",
31
+ "module": "dist/index.js",
38
32
  "name": "crates-updater",
39
33
  "repository": "https://github.com/ffflorian/tree/node-packages/crates-updater",
40
34
  "scripts": {
41
- "build": "yarn build:cjs && yarn build:esm && yarn generate:packagejson",
42
- "build:cjs": "tsc -p tsconfig.cjs.json",
43
- "build:esm": "tsc -p tsconfig.json",
35
+ "build": "tsc -p tsconfig.json",
44
36
  "clean": "rimraf dist",
45
37
  "dist": "yarn clean && yarn build",
46
- "generate:packagejson": "../../bin/generate-hybrid-package-json.sh",
47
38
  "start": "node --loader ts-node/esm src/cli.ts"
48
39
  },
49
40
  "type": "module",
50
- "version": "1.7.4",
51
- "gitHead": "28c184f53a87d8eb082cc27c923ef7b352bbe875"
41
+ "version": "1.8.0",
42
+ "gitHead": "f1a74d8ec9721d5b52a00e41b2ec73278e048290"
52
43
  }
@@ -1,33 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { compareVersions } from 'compare-versions';
11
- import { CratesIO } from 'crates.io';
12
- const cratesIO = new CratesIO();
13
- export function checkForUpdate(packageName, version) {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- const latestVersion = yield getLatestVersion(packageName);
16
- if (compareVersions(latestVersion.num, version) > 0) {
17
- return latestVersion.num;
18
- }
19
- return null;
20
- });
21
- }
22
- export function getLatestVersion(packageName) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- const versions = yield getVersions(packageName);
25
- return versions.sort((versionA, versionB) => compareVersions(versionA.num, versionB.num)).pop();
26
- });
27
- }
28
- export function getVersions(packageName) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- const { versions } = yield cratesIO.api.crates.getVersions(packageName);
31
- return versions;
32
- });
33
- }
package/dist/cjs/cli.js DELETED
@@ -1,57 +0,0 @@
1
- #!/usr/bin/env node
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- import { program as commander } from 'commander';
12
- import { createRequire } from 'module';
13
- const require = createRequire(import.meta.url);
14
- import * as CratesUpdater from './CratesUpdater.js';
15
- const { bin, description, version } = require('../package.json');
16
- commander
17
- .name(Object.keys(bin)[0])
18
- .description(description)
19
- .arguments('<package>')
20
- .arguments('[packageVersion]')
21
- .option('-q, --quiet', 'quiet mode. Display newer version or nothing')
22
- .version(version, '-v, --version')
23
- .parse(process.argv);
24
- if (!commander.args.length) {
25
- commander.outputHelp();
26
- process.exit(1);
27
- }
28
- const [packageName, packageVersion] = commander.args;
29
- const commanderOptions = commander.opts();
30
- void (() => __awaiter(void 0, void 0, void 0, function* () {
31
- try {
32
- if (packageVersion) {
33
- const version = yield CratesUpdater.checkForUpdate(packageName, packageVersion);
34
- if (commanderOptions.quiet) {
35
- if (version) {
36
- console.info(version);
37
- }
38
- }
39
- else {
40
- const text = version
41
- ? `An update for ${packageName} is available: ${version}.`
42
- : `No update for ${packageName} available.`;
43
- console.info(text);
44
- }
45
- }
46
- else {
47
- const version = yield CratesUpdater.getLatestVersion(packageName);
48
- const text = commanderOptions.quiet ? version.num : `Latest ${packageName} version is ${version.num}.`;
49
- console.info(text);
50
- }
51
- process.exit();
52
- }
53
- catch (error) {
54
- console.error(error.message);
55
- process.exit(1);
56
- }
57
- }))();
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,4 +0,0 @@
1
- import { Version as CrateVersion } from 'crates.io';
2
- export declare function checkForUpdate(packageName: string, version: string): Promise<string | null>;
3
- export declare function getLatestVersion(packageName: string): Promise<CrateVersion>;
4
- export declare function getVersions(packageName: string): Promise<CrateVersion[]>;
package/dist/esm/cli.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1 +0,0 @@
1
- export * from './CratesUpdater.js';
package/dist/esm/index.js DELETED
@@ -1 +0,0 @@
1
- export * from './CratesUpdater.js';
@@ -1,3 +0,0 @@
1
- {
2
- "type": "module"
3
- }
File without changes
File without changes
File without changes
File without changes