From d278339e63ace609db8dfab11c7dabf1213ae329 Mon Sep 17 00:00:00 2001 From: Ralf Handl Date: Tue, 13 Feb 2024 13:14:40 +0100 Subject: [PATCH] Fix: remove dependency to minimist (#236) * Use util.parseArgs instead of minimist * Update package-lock.json * 0.5.2 * Remove minimist --- .vscode/settings.json | 11 +++- lib/cli.js | 40 ++++++------ package-lock.json | 139 ++++++++++++++++++++++++++---------------- package.json | 5 +- 4 files changed, 117 insertions(+), 78 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9e836572..a964e415 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,5 +15,14 @@ }, "files.insertFinalNewline": true, "files.trimFinalNewlines": true, - "cSpell.words": ["CSDL", "OData", "depr", "emph", "qname", "rarr", "vola"] + "cSpell.words": [ + "CSDL", + "depr", + "emph", + "OData", + "positionals", + "qname", + "rarr", + "vola" + ] } diff --git a/lib/cli.js b/lib/cli.js index 00837d96..9d68cf93 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -5,28 +5,26 @@ const csdl = require("odata-csdl"); const lib = require("./csdl2markdown"); -const minimist = require("minimist"); -const fs = require("fs"); +const { parseArgs } = require("node:util"); +const fs = require("node:fs"); -var unknown = false; +let unknown = false; -var argv = minimist(process.argv.slice(2), { - string: ["t", "target"], - boolean: ["h", "help"], - alias: { - h: "help", - t: "target", - }, - unknown: (arg) => { - if (arg.substring(0, 1) == "-") { - console.error("Unknown option: " + arg); - unknown = true; - return false; - } - }, -}); +let args; +try { + args = parseArgs({ + options: { + help: { type: "boolean", short: "h" }, + target: { type: "string", short: "t" }, + }, + allowPositionals: true, + }); +} catch (e) { + console.error(e.message); + unknown = true; +} -if (unknown || argv._.length == 0 || argv.h) { +if (unknown || args.positionals.length !== 1 || args.values.help) { console.log(`Usage: odata-vocab2md Options: -h, --help show this info @@ -36,7 +34,7 @@ Options: // for (var i = 0; i < argv._.length; i++) { // convert(argv._[i]); // } - convert(argv._[0]); + convert(args.positionals[0]); } function convert(source) { @@ -56,7 +54,7 @@ function convert(source) { } const target = - argv.target || + args.values.target || (source.lastIndexOf(".") <= 0 ? source : source.substring(0, source.lastIndexOf("."))) + ".md"; diff --git a/package-lock.json b/package-lock.json index b20fbf69..02ce969f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,16 @@ { "name": "odata-vocabularies", - "version": "0.5.1", + "version": "0.5.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "odata-vocabularies", - "version": "0.5.1", + "version": "0.5.2", "license": "SEE LICENSE IN LICENSE.md", "dependencies": { "colors": "^1.4.0", - "minimist": "^1.2.6", - "odata-csdl": "^0.9.4" + "odata-csdl": "^0.9.5" }, "bin": { "odata-vocab2md": "lib/cli.js" @@ -569,9 +568,9 @@ "dev": true }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -750,9 +749,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", - "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -873,20 +872,19 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": "*" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -904,6 +902,27 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/globals": { "version": "13.24.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", @@ -1250,18 +1269,10 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", + "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", "dev": true, "dependencies": { "ansi-colors": "4.1.1", @@ -1271,13 +1282,12 @@ "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.2.0", + "glob": "8.1.0", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", @@ -1292,10 +1302,6 @@ }, "engines": { "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/brace-expansion": { @@ -1384,18 +1390,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -1412,12 +1406,11 @@ } }, "node_modules/odata-csdl": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/odata-csdl/-/odata-csdl-0.9.4.tgz", - "integrity": "sha512-AmCpOZH/a/eU/PC5aA31Rr5yp4G0tXKxBIHGhiuVAUqZlj3rGRLfWxJzmrsqXf2a0RRf8MjzLpb6TPCxHXyAJw==", + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/odata-csdl/-/odata-csdl-0.9.5.tgz", + "integrity": "sha512-4Dx9CquzFZS3fjL10XZXQxtPuBNPLYaaMim6yY54NUmUDv1kEOp5UVJsSlaBXrEumYOzjf7f3XVZNExnUbbL2g==", "dependencies": { "colors": "^1.4.0", - "minimist": "^1.2.8", "sax": "^1.3.0" }, "bin": { @@ -1633,6 +1626,26 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -1682,9 +1695,9 @@ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1802,6 +1815,26 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/package.json b/package.json index bf808b15..8b619182 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "odata-vocabularies", - "version": "0.5.1", + "version": "0.5.2", "description": "Convert OData vocabularies in CSDL XML or CSDL JSON to GitHub Flavored Markdown", "homepage": "https://github.com/oasis-tcs/odata-vocabularies/blob/main/lib/README.md", "bugs": "https://github.com/oasis-tcs/odata-vocabularies/issues", @@ -17,8 +17,7 @@ "main": "lib/csdl2markdown.js", "dependencies": { "colors": "^1.4.0", - "minimist": "^1.2.6", - "odata-csdl": "^0.9.4" + "odata-csdl": "^0.9.5" }, "devDependencies": { "c8": "^9.1.0",