diff --git a/debian/changelog b/debian/changelog
index 5f90dd8..f687179 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+node-optimist (0.6.1+~0.0.30+git20140205.1.680451c-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Tue, 19 Apr 2022 23:59:03 -0000
+
 node-optimist (0.6.1+~0.0.30-2) unstable; urgency=medium
 
   * Team upload
diff --git a/debian/patches/01-migrate_to_nodejs.patch b/debian/patches/01-migrate_to_nodejs.patch
index aee7e16..3bd1d90 100644
--- a/debian/patches/01-migrate_to_nodejs.patch
+++ b/debian/patches/01-migrate_to_nodejs.patch
@@ -4,112 +4,140 @@ Forwarded: not-needed
 Reviewed-By Yadd <yadd@debian.org>
 Last-Update: 2022-04-19
 
---- a/example/bool.js
-+++ b/example/bool.js
+Index: node-optimist/example/bool.js
+===================================================================
+--- node-optimist.orig/example/bool.js
++++ node-optimist/example/bool.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var util = require('util');
  var argv = require('optimist').argv;
  
---- a/example/boolean_double.js
-+++ b/example/boolean_double.js
+Index: node-optimist/example/boolean_double.js
+===================================================================
+--- node-optimist.orig/example/boolean_double.js
++++ node-optimist/example/boolean_double.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist')
      .boolean(['x','y','z'])
      .argv
---- a/example/boolean_single.js
-+++ b/example/boolean_single.js
+Index: node-optimist/example/boolean_single.js
+===================================================================
+--- node-optimist.orig/example/boolean_single.js
++++ node-optimist/example/boolean_single.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist')
      .boolean('v')
      .argv
---- a/example/default_hash.js
-+++ b/example/default_hash.js
+Index: node-optimist/example/default_hash.js
+===================================================================
+--- node-optimist.orig/example/default_hash.js
++++ node-optimist/example/default_hash.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  
  var argv = require('optimist')
      .default({ x : 10, y : 10 })
---- a/example/default_singles.js
-+++ b/example/default_singles.js
+Index: node-optimist/example/default_singles.js
+===================================================================
+--- node-optimist.orig/example/default_singles.js
++++ node-optimist/example/default_singles.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist')
      .default('x', 10)
      .default('y', 10)
---- a/example/divide.js
-+++ b/example/divide.js
+Index: node-optimist/example/divide.js
+===================================================================
+--- node-optimist.orig/example/divide.js
++++ node-optimist/example/divide.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  
  var argv = require('optimist')
      .usage('Usage: $0 -x [num] -y [num]')
---- a/example/line_count.js
-+++ b/example/line_count.js
+Index: node-optimist/example/line_count.js
+===================================================================
+--- node-optimist.orig/example/line_count.js
++++ node-optimist/example/line_count.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist')
      .usage('Count the lines in a file.\nUsage: $0')
      .demand('f')
---- a/example/line_count_options.js
-+++ b/example/line_count_options.js
+Index: node-optimist/example/line_count_options.js
+===================================================================
+--- node-optimist.orig/example/line_count_options.js
++++ node-optimist/example/line_count_options.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist')
      .usage('Count the lines in a file.\nUsage: $0')
      .options({
---- a/example/line_count_wrap.js
-+++ b/example/line_count_wrap.js
+Index: node-optimist/example/line_count_wrap.js
+===================================================================
+--- node-optimist.orig/example/line_count_wrap.js
++++ node-optimist/example/line_count_wrap.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist')
      .usage('Count the lines in a file.\nUsage: $0')
      .wrap(80)
---- a/example/nonopt.js
-+++ b/example/nonopt.js
+Index: node-optimist/example/nonopt.js
+===================================================================
+--- node-optimist.orig/example/nonopt.js
++++ node-optimist/example/nonopt.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist').argv;
  console.log('(%d,%d)', argv.x, argv.y);
  console.log(argv._);
---- a/example/short.js
-+++ b/example/short.js
+Index: node-optimist/example/short.js
+===================================================================
+--- node-optimist.orig/example/short.js
++++ node-optimist/example/short.js
 @@ -1,3 +1,3 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist').argv;
  console.log('(%d,%d)', argv.x, argv.y);
---- a/example/string.js
-+++ b/example/string.js
+Index: node-optimist/example/string.js
+===================================================================
+--- node-optimist.orig/example/string.js
++++ node-optimist/example/string.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist')
      .string('x', 'y')
      .argv
---- a/example/xup.js
-+++ b/example/xup.js
+Index: node-optimist/example/xup.js
+===================================================================
+--- node-optimist.orig/example/xup.js
++++ node-optimist/example/xup.js
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('optimist').argv;
  
  if (argv.rif - 5 * argv.xup > 7.138) {
---- a/readme.markdown
-+++ b/readme.markdown
-@@ -29,7 +29,7 @@
+Index: node-optimist/readme.markdown
+===================================================================
+--- node-optimist.orig/readme.markdown
++++ node-optimist/readme.markdown
+@@ -31,7 +31,7 @@ With Optimist, the options are just a ha
  xup.js:
  
  ````javascript
@@ -118,7 +146,7 @@ Last-Update: 2022-04-19
  var argv = require('optimist').argv;
  
  if (argv.rif - 5 * argv.xup > 7.138) {
-@@ -56,7 +56,7 @@
+@@ -58,7 +58,7 @@ But wait! There's more! You can do short
  short.js:
  
  ````javascript
@@ -127,7 +155,7 @@ Last-Update: 2022-04-19
  var argv = require('optimist').argv;
  console.log('(%d,%d)', argv.x, argv.y);
  ````
-@@ -72,7 +72,7 @@
+@@ -74,7 +74,7 @@ And booleans, both long and short (and g
  bool.js:
  
  ````javascript
@@ -136,7 +164,7 @@ Last-Update: 2022-04-19
  var util = require('util');
  var argv = require('optimist').argv;
  
-@@ -101,7 +101,7 @@
+@@ -103,7 +103,7 @@ And non-hypenated options too! Just use
  nonopt.js:
  
  ````javascript
@@ -145,7 +173,7 @@ Last-Update: 2022-04-19
  var argv = require('optimist').argv;
  console.log('(%d,%d)', argv.x, argv.y);
  console.log(argv._);
-@@ -123,7 +123,7 @@
+@@ -125,7 +125,7 @@ Plus, Optimist comes with .usage() and .
  divide.js:
  
  ````javascript
@@ -154,7 +182,7 @@ Last-Update: 2022-04-19
  var argv = require('optimist')
      .usage('Usage: $0 -x [num] -y [num]')
      .demand(['x','y'])
-@@ -152,7 +152,7 @@
+@@ -154,7 +154,7 @@ EVEN MORE HOLY COW
  default_singles.js:
  
  ````javascript
@@ -163,7 +191,7 @@ Last-Update: 2022-04-19
  var argv = require('optimist')
      .default('x', 10)
      .default('y', 10)
-@@ -169,7 +169,7 @@
+@@ -171,7 +171,7 @@ console.log(argv.x + argv.y);
  default_hash.js:
  
  ````javascript
@@ -172,7 +200,7 @@ Last-Update: 2022-04-19
  var argv = require('optimist')
      .default({ x : 10, y : 10 })
      .argv
-@@ -188,7 +188,7 @@
+@@ -190,7 +190,7 @@ And if you really want to get all descri
  boolean_single.js
  
  ````javascript
@@ -181,7 +209,7 @@ Last-Update: 2022-04-19
  var argv = require('optimist')
      .boolean('v')
      .argv
-@@ -205,7 +205,7 @@
+@@ -207,7 +207,7 @@ console.dir(argv);
  boolean_double.js
  
  ````javascript
@@ -190,7 +218,7 @@ Last-Update: 2022-04-19
  var argv = require('optimist')
      .boolean(['x','y','z'])
      .argv
-@@ -229,7 +229,7 @@
+@@ -231,7 +231,7 @@ out how to format a handy help string au
  line_count.js
  
  ````javascript
@@ -199,16 +227,20 @@ Last-Update: 2022-04-19
  var argv = require('optimist')
      .usage('Count the lines in a file.\nUsage: $0')
      .demand('f')
---- a/test/_/bin.js
-+++ b/test/_/bin.js
+Index: node-optimist/test/_/bin.js
+===================================================================
+--- node-optimist.orig/test/_/bin.js
++++ node-optimist/test/_/bin.js
 @@ -1,3 +1,3 @@
 -#!/usr/bin/env node
 +#!/usr/bin/node
  var argv = require('../../index').argv
  console.log(JSON.stringify(argv._));
---- a/test/parse.js
-+++ b/test/parse.js
-@@ -2,7 +2,7 @@
+Index: node-optimist/test/parse.js
+===================================================================
+--- node-optimist.orig/test/parse.js
++++ node-optimist/test/parse.js
+@@ -2,7 +2,7 @@ var optimist = require('../index');
  var path = require('path');
  var test = require('tap').test;
  
diff --git a/readme.markdown b/readme.markdown
index 2aed775..b74b437 100644
--- a/readme.markdown
+++ b/readme.markdown
@@ -9,6 +9,8 @@ successor to optimist.
 
 [![yarrrrrrrgs!](http://i.imgur.com/4WFGVJ9.png)](https://github.com/chevex/yargs)
 
+You should also consider [nomnom](https://github.com/harthur/nomnom).
+
 optimist
 ========
 
diff --git a/types-optimist/LICENSE b/types-optimist/LICENSE
deleted file mode 100755
index 9e841e7..0000000
--- a/types-optimist/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-    MIT License
-
-    Copyright (c) Microsoft Corporation.
-
-    Permission is hereby granted, free of charge, to any person obtaining a copy
-    of this software and associated documentation files (the "Software"), to deal
-    in the Software without restriction, including without limitation the rights
-    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    copies of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be included in all
-    copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-    SOFTWARE
diff --git a/types-optimist/README.md b/types-optimist/README.md
deleted file mode 100755
index e6d4feb..0000000
--- a/types-optimist/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Installation
-> `npm install --save @types/optimist`
-
-# Summary
-This package contains type definitions for optimist (https://github.com/substack/node-optimist).
-
-# Details
-Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/optimist.
-
-### Additional Details
- * Last updated: Wed, 07 Jul 2021 17:02:23 GMT
- * Dependencies: none
- * Global values: none
-
-# Credits
-These definitions were written by [Carlos Ballesteros Velasco](https://github.com/soywiz), and [Christopher Brown](https://github.com/chbrown).
diff --git a/types-optimist/index.d.ts b/types-optimist/index.d.ts
deleted file mode 100755
index 7619c8a..0000000
--- a/types-optimist/index.d.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-// Type definitions for optimist
-// Project: https://github.com/substack/node-optimist
-// Definitions by: Carlos Ballesteros Velasco <https://github.com/soywiz>, Christopher Brown <https://github.com/chbrown>
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-
-
-declare namespace optimist {
-    interface Opt {
-        alias?: string | string[] | undefined;
-        default?: any;
-        demand?: string | number | string[] | undefined;
-        describe?: string | undefined;
-        type?: string | undefined;
-    }
-
-    interface Parser {
-        /** Implicitly use process.argv array to construct the argv object */
-        argv: any;
-        /** Pass in the process.argv yourself */
-        (args: string[]): any;
-        /** Use .parse() to do the same thing as treating optimist as a function */
-        parse(args: string[]): any;
-
-        // The types below follow the order and documentation of https://github.com/substack/node-optimist
-
-        /** Set key names as equivalent such that updates to a key will propagate to aliases and vice-versa. */
-        alias(key: string, alias: string | string[]): Parser;
-        /** Take an object that maps keys to aliases. */
-        alias(aliases: { [index: string]: string | string[] }): Parser;
-
-        /** Set argv[key] to value if no option was specified on process.argv */
-        default(key: string, value: any): Parser;
-        /** Take an object that maps keys to default values */
-        default(defaults: { [index: string]: any }): Parser;
-
-        /** Show the usage information and exit if key wasn't specified in process.argv */
-        demand(key: string): Parser;
-        /** Demand at least as many non-option arguments, which show up in argv._ */
-        demand(key: number): Parser;
-        /** Demand each element in key */
-        demand(key: string[]): Parser;
-
-        /** Describe a key for the generated usage information */
-        describe(key: string, desc: string): Parser;
-        /** Take an object that maps keys to descriptions */
-        describe(descriptions: { [index: string]: string }): Parser;
-
-        /** Instead of chaining together, e.g. optimist.alias().demand().default()...,
-        you can specify keys in opt for each of the chainable methods. */
-        options(key: string, opt: Opt): Parser;
-        /** Take an object that maps keys to opt parameters */
-        options(options: { [index: string]: Opt }): Parser;
-
-        /** Set a usage message to show which commands to use. Inside message,
-        the string $0 will get interpolated to the current script name or node
-        command for the present script similar to how $0 works in bash or perl. */
-        usage(message: string): Parser;
-
-        /** Check that certain conditions are met in the provided arguments. If fn
-        throws or returns false, show the thrown error, usage information, and exit.
-        */
-        check(fn: (argv: any) => any): Parser;
-
-        /** Interpret key as a boolean. If a non-flag option follows key in process.argv,
-        that string won't get set as the value of key. If key never shows up as a
-        flag in process.arguments, argv[key] will be false. */
-        boolean(key: string): Parser;
-        /** Interpret all the elements as booleans. */
-        boolean(key: string[]): Parser;
-
-        /** Tell the parser logic not to interpret key as a number or boolean. This can be useful if you need to preserve leading zeros in an input. */
-        string(key: string): Parser;
-        /** Interpret all the elements as strings */
-        string(key: string[]): Parser;
-
-        /** Format usage output to wrap at columns many columns. */
-        wrap(columns: number): Parser;
-
-        /** Return the generated usage string. */
-        help(): string;
-        /** Print the usage data using fn for printing (defaults to console.error). */
-        showHelp(fn?: (message: string) => void): void;
-    }
-}
-
-declare var optimist: optimist.Parser;
-export = optimist;
diff --git a/types-optimist/package.json b/types-optimist/package.json
deleted file mode 100755
index 3315cfe..0000000
--- a/types-optimist/package.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-    "name": "@types/optimist",
-    "version": "0.0.30",
-    "description": "TypeScript definitions for optimist",
-    "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/optimist",
-    "license": "MIT",
-    "contributors": [
-        {
-            "name": "Carlos Ballesteros Velasco",
-            "url": "https://github.com/soywiz",
-            "githubUsername": "soywiz"
-        },
-        {
-            "name": "Christopher Brown",
-            "url": "https://github.com/chbrown",
-            "githubUsername": "chbrown"
-        }
-    ],
-    "main": "",
-    "types": "index.d.ts",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
-        "directory": "types/optimist"
-    },
-    "scripts": {},
-    "dependencies": {},
-    "typesPublisherContentHash": "ec5cace85871cd3339080564bae9c9aa380bdfb86a941cce86b5be3a28c82ecd",
-    "typeScriptVersion": "3.6"
-}
\ No newline at end of file