module.exports = {
  title: 'now.sh',
  subcommands: new Set([
    'login',
    'deploy',
    'ls',
    'list',
    'alias',
    'scale',
    'certs',
    'dns',
    'domains',
    'rm',
    'remove',
    'whoami',
    'secrets',
    'logs',
    'upgrade',
    'teams',
    'switch'
  ]),
  get deploy() {
    return require('./deploy')
  },
  get login() {
    return require('./login')
  },
  get ls() {
    return require('./commands/bin/list')
  },
  get list() {
    return require('./commands/bin/list')
  },
  get alias() {
    return require('./commands/bin/alias')
  },
  get scale() {
    return require('./commands/bin/scale')
  },
  get certs() {
    return require('./commands/bin/certs')
  },
  get dns() {
    return require('./commands/bin/dns')
  },
  get domains() {
    return require('./commands/bin/domains')
  },
  get rm() {
    return require('./commands/bin/remove')
  },
  get remove() {
    return require('./commands/bin/remove')
  },
  get whoami() {
    return require('./commands/bin/whoami')
  },
  get secrets() {
    return require('./commands/bin/secrets')
  },
  get logs() {
    return require('./commands/bin/logs')
  },
  get upgrade() {
    return require('./commands/bin/upgrade')
  },
  get teams() {
    return require('./commands/bin/teams')
  },
  get switch() {
    return require('./commands/bin/teams')
  }
}

@@ -1,56 +1,24 @@
-module.exports = %7B%0A  title: 'now.sh',%0A  subc
+const mainC
 ommands
-:
+ =
  new
@@ -30,83 +30,71 @@
 %5B%0A  
-  'login',%0A    'deploy',%0A    'ls
+'help',%0A  'list',%0A  'remove
 ',%0A
-  
   '
+a
 li
+a
 s
-t
 ',%0A  
-  'alia
+'domain
 s',%0A
-  
   '
-scale
+dns
 ',%0A
-  
   'c
@@ -104,622 +104,601 @@
 s',%0A
-  
   '
-dn
+secret
 s',%0A
-  
   '
-domains
+billing
 ',%0A  
-  'rm',%0A    'remove',%0A    'whoami',%0A    'secrets',%0A    'log
+'upgrade',%0A  'teams',%0A  'logs',%0A  'scale',%0A  'logout',%0A  'whoami'%0A%5D)%0A%0Aconst aliases = %7B%0A  list: %5B'l
 s'
+%5D
 ,%0A  
-  'upgrade',%0A    'team
+remove: %5B'rm'%5D,%0A  alias: %5B'ln', 'aliase
 s'
+%5D
 ,%0A  
-  'switch'%0A  %5D),%0A  get deploy() %7B%0A    return require('./deploy')%0A  %7D,%0A  get login() %7B%0A    return require('./login')%0A  %7D,%0A  get ls() %7B%0A    return require('./commands/bin/list')%0A  %7D,%0A  get list() %7B%0A    return require('./commands/bin/list')%0A  %7D,%0A  get
+domains: %5B'domain'%5D,%0A  certs: %5B'cert'%5D,%0A  secrets: %5B'secret'%5D,%0A  billing: %5B'cc'%5D,%0A  upgrade: %5B'downgrade'%5D,%0A  teams: %5B'team', 'switch'%5D,%0A  logs: %5B'log'%5D%0A%7D%0A%0Aconst subcommands = new Set(mainCommands)%0A%0A// Add aliases to available sub commands%0Afor (const alias in
  alias
-(
+es
 ) %7B%0A  
-  return require('./commands/bin/alias')%0A  %7D,%0A  get scale() %7B%0A    return require('./commands/bin/scale')%0A  %7D,%0A  get certs() %7B%0A    return require('./commands/bin/certs')%0A  %7D,%0A  get dns()
+const items = aliases%5Balias%5D%0A%0A  for (const item of items) %7B%0A    subcommands.add(item)%0A  %7D%0A%7D%0A%0Aconst list =
  %7B%0A  
-  return require('./commands/bin/dns')%0A  %7D
+title: 'now.sh',%0A  subcommands
 ,%0A  
@@ -702,22 +702,21 @@
 %0A  get d
-omains
+eploy
 () %7B%0A   
@@ -738,28 +738,14 @@
 ('./
-commands/bin/domains
+deploy
 ')%0A 
@@ -754,18 +754,21 @@
 ,%0A  get 
-rm
+login
 () %7B%0A   
@@ -790,376 +790,269 @@
 ('./
-commands/bin/remove')%0A  %7D,%0A  get remove() %7B%0A    return require('./commands/bin/remove')%0A  %7D,%0A  get whoami() %7B%0A    return require('./commands/bin/whoami')%0A  %7D,%0A  get secrets() %7B%0A    return require('./commands/bin/secrets')%0A  %7D,%0A  get logs() %7B%0A    return require('./commands/bin/logs'
+login')%0A  %7D%0A%7D%0A%0Afor (const subcommand of mainCommands) %7B%0A  let handlers = %5Bsubcommand%5D%0A%0A  if (aliases%5Bsubcommand%5D) %7B%0A    handlers = handlers.concat(aliases%5Bsubcommand%5D
 )%0A  %7D
-,%0A  get upgrade() %7B%0A    return require('./commands/bin/upgrade')%0A  %7D,%0A  get teams
+%0A%0A  for (const handler of handlers) %7B%0A    Object.defineProperty(list, handler, %7B%0A      get
 () %7B
@@ -1048,32 +1048,36 @@
     get() %7B%0A    
+    
 return require('
@@ -1067,33 +1067,33 @@
  return require(
-'
+%60
 ./commands/bin/t
@@ -1095,83 +1095,64 @@
 bin/
-teams')%0A  %7D,%0A  get switch() %7B%0A    return require('./commands/bin/teams')%0A  %7D%0A%7D
+$%7Bsubcommand%7D%60)%0A      %7D%0A    %7D)%0A  %7D%0A%7D%0A%0Amodule.exports = list
 %0A

Support for all aliases added