Commit 5171a90 for mammothjs

commit 5171a9072f8b7343ab1c9ed3a15d6d372cb59b67
Author: Michael Williamson <mike@zwobble.org>
Date:   Fri Oct 16 08:32:08 2026 +0100

    Update argparse to v3

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",