From 5171a9072f8b7343ab1c9ed3a15d6d372cb59b67 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 16 Oct 2026 08:32:08 +0100 Subject: Update argparse to v3 --- bin/mammoth | 26 +++++++++++------------ package-lock.json | 63 ++++++++++++++++++++++++++++++++++++++++--------------- package.json | 2 +- 3 files changed, 60 insertions(+), 31 deletions(-) diff --git a/bin/mammoth b/bin/mammoth index a908d07..50f6ef6 100755 --- a/bin/mammoth +++ b/bin/mammoth @@ -4,35 +4,35 @@ var ArgumentParser = require("argparse").ArgumentParser; var main = require("../lib/main"); var parser = new ArgumentParser({ - addHelp: true + add_help: true }); -parser.addArgument(["docx-path"], { - type: "string", +parser.add_argument("docx-path", { + type: "str", help: "Path to the .docx file to convert." }); -var outputGroup = parser.addMutuallyExclusiveGroup(); -outputGroup.addArgument(["output-path"], { - type: "string", +var outputGroup = parser.add_mutually_exclusive_group(); +outputGroup.add_argument("output-path", { + type: "str", nargs: "?", help: "Output path for the generated document. Images will be stored inline in the output document. Output is written to stdout if not set." }); -outputGroup.addArgument(["--output-dir"], { - type: "string", +outputGroup.add_argument("--output-dir", { + type: "str", help: "Output directory for generated HTML and images. Images will be stored in separate files. Mutually exclusive with output-path." }); -parser.addArgument(["--output-format"], { - defaultValue: "html", +parser.add_argument("--output-format", { + default: "html", choices: ["html", "markdown"], help: "Output format." }); -parser.addArgument(["--style-map"], { - type: "string", +parser.add_argument("--style-map", { + type: "str", help: "File containg a style map." }); -main(parser.parseArgs()); +main(parser.parse_args()); diff --git a/package-lock.json b/package-lock.json index 08ffc05..94f7483 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "mammoth", - "version": "1.12.3", + "version": "1.13.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mammoth", - "version": "1.12.3", + "version": "1.13.0", "license": "BSD-2-Clause", "dependencies": { "@xmldom/xmldom": "^0.8.6", - "argparse": "~1.0.3", + "argparse": "^3.0.3", "base64-js": "^1.5.1", "dingbat-to-unicode": "^1.0.1", "jszip": "^3.7.1", @@ -167,12 +167,20 @@ } }, "node_modules/argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.3.tgz", + "integrity": "sha512-Sn98ftV3KfsO8xfLPHG6oT8y+b0yvbrLgZjgPDXsharNY15tTAjqIsIju4S32nl6/iEUNNE4v+yL2Zhm8ooP3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "PSF-2.0" }, "node_modules/array-filter": { "version": "0.0.1", @@ -1664,6 +1672,16 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/js-yaml/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/json-stable-stringify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", @@ -2623,7 +2641,9 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/stream-browserify": { "version": "2.0.1", @@ -3225,12 +3245,9 @@ } }, "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-3.0.3.tgz", + "integrity": "sha512-Sn98ftV3KfsO8xfLPHG6oT8y+b0yvbrLgZjgPDXsharNY15tTAjqIsIju4S32nl6/iEUNNE4v+yL2Zhm8ooP3w==" }, "array-filter": { "version": "0.0.1", @@ -4530,6 +4547,17 @@ "requires": { "argparse": "^1.0.7", "esprima": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + } } }, "json-stable-stringify": { @@ -5335,7 +5363,8 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true }, "stream-browserify": { "version": "2.0.1", diff --git a/package.json b/package.json index 54a97cf..6216691 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@xmldom/xmldom": "^0.8.6", - "argparse": "~1.0.3", + "argparse": "^3.0.3", "base64-js": "^1.5.1", "dingbat-to-unicode": "^1.0.1", "jszip": "^3.7.1", -- cgit v1.2.3