clever-tools 3.8.2 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/bin/clever.js +177 -426
  2. package/package.json +11 -5
  3. package/src/command-options.js +4 -10
  4. package/src/command-promise-handler.js +5 -7
  5. package/src/commands/accesslogs.js +9 -13
  6. package/src/commands/activity.js +10 -14
  7. package/src/commands/addon.js +82 -36
  8. package/src/commands/applications.js +9 -16
  9. package/src/commands/cancel-deploy.js +5 -9
  10. package/src/commands/config.js +7 -11
  11. package/src/commands/console.js +5 -9
  12. package/src/commands/create.js +5 -9
  13. package/src/commands/curl.js +7 -11
  14. package/src/commands/database.js +13 -16
  15. package/src/commands/delete.js +4 -8
  16. package/src/commands/deploy.js +10 -14
  17. package/src/commands/diag.js +9 -11
  18. package/src/commands/domain.js +348 -17
  19. package/src/commands/drain.js +10 -20
  20. package/src/commands/env.js +13 -17
  21. package/src/commands/link.js +3 -7
  22. package/src/commands/login.js +13 -15
  23. package/src/commands/logout.js +3 -7
  24. package/src/commands/logs.js +9 -13
  25. package/src/commands/makeDefault.js +3 -7
  26. package/src/commands/notify-email.js +9 -19
  27. package/src/commands/open.js +5 -9
  28. package/src/commands/profile.js +21 -12
  29. package/src/commands/published-config.js +11 -15
  30. package/src/commands/restart.js +7 -11
  31. package/src/commands/scale.js +3 -7
  32. package/src/commands/service.js +8 -18
  33. package/src/commands/ssh.js +4 -8
  34. package/src/commands/status.js +7 -11
  35. package/src/commands/stop.js +5 -9
  36. package/src/commands/tcp-redirs.js +11 -15
  37. package/src/commands/unlink.js +4 -8
  38. package/src/commands/version.js +4 -6
  39. package/src/commands/webhooks.js +8 -16
  40. package/src/format-table.js +4 -8
  41. package/src/initial-setup.js +49 -0
  42. package/src/load-package-json.cjs +5 -0
  43. package/src/logger.js +5 -8
  44. package/src/models/activity.js +3 -7
  45. package/src/models/addon.js +52 -54
  46. package/src/models/app_configuration.js +18 -31
  47. package/src/models/application.js +37 -61
  48. package/src/models/application_configuration.js +11 -15
  49. package/src/models/configuration.js +11 -15
  50. package/src/models/deployments.js +6 -10
  51. package/src/models/domain.js +6 -10
  52. package/src/models/drain.js +5 -13
  53. package/src/models/exit-strategy-option.js +4 -8
  54. package/src/models/fs-utils.js +3 -7
  55. package/src/models/git.js +19 -34
  56. package/src/models/ids-resolver.js +6 -12
  57. package/src/models/interact.js +2 -6
  58. package/src/models/isomorphic-http-with-agent.js +3 -9
  59. package/src/models/json-array.js +1 -3
  60. package/src/models/log-v4.js +10 -12
  61. package/src/models/log.js +11 -15
  62. package/src/models/namespaces.js +7 -13
  63. package/src/models/node-dns-resolver.js +43 -0
  64. package/src/models/notification.js +8 -17
  65. package/src/models/organisation.js +4 -10
  66. package/src/models/send-to-api.js +17 -13
  67. package/src/models/user.js +16 -9
  68. package/src/models/utils.js +2 -6
  69. package/src/models/variables.js +4 -10
  70. package/src/parsers.js +21 -71
  71. package/src/commands/networkgroups/commands.js +0 -7
  72. package/src/commands/networkgroups/index.js +0 -67
  73. package/src/commands/networkgroups/members.js +0 -80
  74. package/src/commands/networkgroups/peers.js +0 -83
  75. package/src/models/format-ng-table.js +0 -115
  76. package/src/models/format-string.js +0 -44
  77. package/src/models/networkgroup.js +0 -64
  78. package/src/models/wireguard-conf.js +0 -95
  79. package/src/models/wireguard.js +0 -75
@@ -1,18 +1,18 @@
1
- 'use strict';
1
+ import crypto from 'node:crypto';
2
+ import util from 'node:util';
2
3
 
3
- const crypto = require('crypto');
4
- const util = require('util');
4
+ import colors from 'colors/safe.js';
5
+ import open from 'open';
6
+ import superagent from 'superagent';
5
7
 
6
- const delay = util.promisify(setTimeout);
8
+ import { Logger } from '../logger.js';
9
+ import * as User from '../models/user.js';
10
+ import { conf, writeOAuthConf } from '../models/configuration.js';
7
11
 
8
- const colors = require('colors/safe');
9
- const open = require('open');
10
- const superagent = require('superagent');
12
+ import { getPackageJson } from '../load-package-json.cjs';
11
13
 
12
- const Logger = require('../logger.js');
13
- const User = require('../models/user.js');
14
- const { conf, writeOAuthConf } = require('../models/configuration.js');
15
- const { version } = require('../../package');
14
+ const delay = util.promisify(setTimeout);
15
+ const pkg = getPackageJson();
16
16
 
17
17
  // 20 random bytes as Base64URL
18
18
  function randomToken () {
@@ -49,7 +49,7 @@ async function loginViaConsole () {
49
49
  const cliToken = randomToken();
50
50
 
51
51
  const consoleUrl = new URL(conf.CONSOLE_TOKEN_URL);
52
- consoleUrl.searchParams.set('cli_version', version);
52
+ consoleUrl.searchParams.set('cli_version', pkg.version);
53
53
  consoleUrl.searchParams.set('cli_token', cliToken);
54
54
 
55
55
  const cliPollUrl = new URL(conf.API_HOST);
@@ -63,7 +63,7 @@ async function loginViaConsole () {
63
63
  return pollOauthData(cliPollUrl.toString());
64
64
  }
65
65
 
66
- async function login (params) {
66
+ export async function login (params) {
67
67
  const { token, secret } = params.options;
68
68
  const isLoginWithArgs = (token != null && secret != null);
69
69
  const isInteractiveLogin = (token == null && secret == null);
@@ -82,5 +82,3 @@ async function login (params) {
82
82
 
83
83
  throw new Error('Both `--token` and `--secret` have to be defined');
84
84
  }
85
-
86
- module.exports = { login };
@@ -1,12 +1,8 @@
1
- 'use strict';
1
+ import { Logger } from '../logger.js';
2
+ import { conf, writeOAuthConf } from '../models/configuration.js';
2
3
 
3
- const Logger = require('../logger.js');
4
- const { conf, writeOAuthConf } = require('../models/configuration.js');
5
-
6
- async function logout () {
4
+ export async function logout () {
7
5
  // write empty object
8
6
  await writeOAuthConf({});
9
7
  Logger.println(`${conf.CONFIGURATION_FILE} has been updated.`);
10
8
  }
11
-
12
- module.exports = { logout };
@@ -1,14 +1,12 @@
1
- 'use strict';
2
-
3
- const Application = require('../models/application.js');
4
- const LogV2 = require('../models/log.js');
5
- const Log = require('../models/log-v4.js');
6
- const Logger = require('../logger.js');
7
- const { Deferred } = require('../models/utils.js');
8
- const colors = require('colors/safe');
9
- const { resolveAddonId } = require('../models/ids-resolver.js');
10
-
11
- async function appLogs (params) {
1
+ import * as Application from '../models/application.js';
2
+ import * as LogV2 from '../models/log.js';
3
+ import * as Log from '../models/log-v4.js';
4
+ import { Logger } from '../logger.js';
5
+ import { Deferred } from '../models/utils.js';
6
+ import colors from 'colors/safe.js';
7
+ import { resolveAddonId } from '../models/ids-resolver.js';
8
+
9
+ export async function appLogs (params) {
12
10
  const { alias, app: appIdOrName, addon: addonIdOrRealId, after: since, before: until, search, 'deployment-id': deploymentId, format } = params.options;
13
11
 
14
12
  // ignore --search ""
@@ -37,5 +35,3 @@ async function appLogs (params) {
37
35
  await Log.displayLogs({ ownerId, appId, since, until, filter, deploymentId, format, deferred });
38
36
  return deferred.promise;
39
37
  }
40
-
41
- module.exports = { appLogs };
@@ -1,14 +1,10 @@
1
- 'use strict';
1
+ import * as AppConfig from '../models/app_configuration.js';
2
+ import { Logger } from '../logger.js';
2
3
 
3
- const AppConfig = require('../models/app_configuration.js');
4
- const Logger = require('../logger.js');
5
-
6
- async function makeDefault (params) {
4
+ export async function makeDefault (params) {
7
5
  const [alias] = params.args;
8
6
 
9
7
  await AppConfig.setDefault(alias);
10
8
 
11
9
  Logger.println(`The application ${alias} has been set as default`);
12
10
  };
13
-
14
- module.exports = { makeDefault };
@@ -1,14 +1,12 @@
1
- 'use strict';
1
+ import colors from 'colors/safe.js';
2
2
 
3
- const colors = require('colors/safe');
3
+ import { Logger } from '../logger.js';
4
+ import { getOwnerAndApp, getOrgaIdOrUserId } from '../models/notification.js';
4
5
 
5
- const Logger = require('../logger.js');
6
- const { getOwnerAndApp, getOrgaIdOrUserId } = require('../models/notification.js');
6
+ import { getEmailhooks, createEmailhook, deleteEmailhook } from '@clevercloud/client/esm/api/v2/notification.js';
7
+ import { sendToApi } from '../models/send-to-api.js';
7
8
 
8
- const { getEmailhooks, createEmailhook, deleteEmailhook } = require('@clevercloud/client/cjs/api/v2/notification.js');
9
- const { sendToApi } = require('../models/send-to-api.js');
10
-
11
- async function list (params) {
9
+ export async function list (params) {
12
10
  const { org, 'list-all': listAll, format } = params.options;
13
11
 
14
12
  // TODO: fix alias option
@@ -53,7 +51,7 @@ async function list (params) {
53
51
  }
54
52
  }
55
53
 
56
- function getEmailNotificationTargets (notifTargets) {
54
+ export function getEmailNotificationTargets (notifTargets) {
57
55
 
58
56
  if (notifTargets == null) {
59
57
  return [];
@@ -75,7 +73,7 @@ function getEmailNotificationTargets (notifTargets) {
75
73
  .filter((e) => e != null);
76
74
  }
77
75
 
78
- async function add (params) {
76
+ export async function add (params) {
79
77
  const { org, event: events, service, notify: notifTargets } = params.options;
80
78
  const [name] = params.args;
81
79
 
@@ -94,7 +92,7 @@ async function add (params) {
94
92
  Logger.println('The webhook has been added');
95
93
  }
96
94
 
97
- async function remove (params) {
95
+ export async function remove (params) {
98
96
  const { org } = params.options;
99
97
  const [notificationId] = params.args;
100
98
 
@@ -103,11 +101,3 @@ async function remove (params) {
103
101
 
104
102
  Logger.println('The notification has been successfully removed');
105
103
  }
106
-
107
- module.exports = {
108
- list,
109
- add,
110
- remove,
111
- // For tests,
112
- getEmailNotificationTargets,
113
- };
@@ -1,12 +1,10 @@
1
- 'use strict';
1
+ import openPage from 'open';
2
2
 
3
- const openPage = require('open');
3
+ import * as Application from '../models/application.js';
4
+ import * as Domain from '../models/domain.js';
5
+ import { Logger } from '../logger.js';
4
6
 
5
- const Application = require('../models/application.js');
6
- const Domain = require('../models/domain.js');
7
- const Logger = require('../logger.js');
8
-
9
- async function open (params) {
7
+ export async function open (params) {
10
8
  const { alias, app: appIdOrName } = params.options;
11
9
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
12
10
 
@@ -16,5 +14,3 @@ async function open (params) {
16
14
  Logger.println('Opening the application in your browser');
17
15
  await openPage(url, { wait: false });
18
16
  }
19
-
20
- module.exports = { open };
@@ -1,14 +1,23 @@
1
- 'use strict';
1
+ import colors from 'colors/safe.js';
2
2
 
3
- const colors = require('colors/safe');
3
+ import { Logger } from '../logger.js';
4
+ import * as User from '../models/user.js';
4
5
 
5
- const Logger = require('../logger.js');
6
- const User = require('../models/user.js');
7
-
8
- async function profile (params) {
6
+ export async function profile (params) {
9
7
  const { format } = params.options;
10
8
 
11
9
  const user = await User.getCurrent();
10
+ const currentToken = await User.getCurrentToken();
11
+ const tokenExpiration = new Date(currentToken.expirationDate).toLocaleString('en-US', {
12
+ year: 'numeric',
13
+ month: 'short',
14
+ day: 'numeric',
15
+ hour: 'numeric',
16
+ minute: 'numeric',
17
+ hour12: false,
18
+ timeZone: 'UTC',
19
+ timeZoneName: 'short',
20
+ });
12
21
 
13
22
  const formattedUser = {
14
23
  id: user.id,
@@ -16,6 +25,7 @@ async function profile (params) {
16
25
  name: user.name,
17
26
  avatar: user.avatar,
18
27
  creationDate: new Date(user.creationDate),
28
+ tokenExpiration: new Date(currentToken.expirationDate).toISOString(),
19
29
  lang: user.lang,
20
30
  has2FA: (user.preferredMFA != null && user.preferredMFA !== 'NONE'),
21
31
  };
@@ -28,12 +38,11 @@ async function profile (params) {
28
38
  case 'human':
29
39
  default: {
30
40
  Logger.println('You\'re currently logged in as:');
31
- Logger.println(`User id ${formattedUser.id}`);
32
- Logger.println(`Name ${formattedUser.name ?? colors.red.bold('[not specified]')}`);
33
- Logger.println(`Email ${formattedUser.email}`);
34
- Logger.println(`Two factor auth ${formattedUser.has2FA ? 'yes' : 'no'}`);
41
+ Logger.println(`User id ${formattedUser.id}`);
42
+ Logger.println(`Name ${formattedUser.name ?? colors.red.bold('[not specified]')}`);
43
+ Logger.println(`Email ${formattedUser.email}`);
44
+ Logger.println(`Token expiration ${tokenExpiration}`);
45
+ Logger.println(`Two factor auth ${formattedUser.has2FA ? 'yes' : 'no'}`);
35
46
  }
36
47
  }
37
48
  };
38
-
39
- module.exports = { profile };
@@ -1,13 +1,11 @@
1
- 'use strict';
2
-
3
- const Application = require('../models/application.js');
4
- const Logger = require('../logger.js');
5
- const variables = require('../models/variables.js');
6
- const { sendToApi } = require('../models/send-to-api.js');
7
- const { toNameEqualsValueString, validateName } = require('@clevercloud/client/cjs/utils/env-vars.js');
8
- const application = require('@clevercloud/client/cjs/api/v2/application.js');
9
-
10
- async function list (params) {
1
+ import * as Application from '../models/application.js';
2
+ import { Logger } from '../logger.js';
3
+ import * as variables from '../models/variables.js';
4
+ import { sendToApi } from '../models/send-to-api.js';
5
+ import { toNameEqualsValueString, validateName } from '@clevercloud/client/esm/utils/env-vars.js';
6
+ import * as application from '@clevercloud/client/esm/api/v2/application.js';
7
+
8
+ export async function list (params) {
11
9
  const { alias, app: appIdOrName, format } = params.options;
12
10
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
13
11
 
@@ -30,7 +28,7 @@ async function list (params) {
30
28
  }
31
29
  }
32
30
 
33
- async function set (params) {
31
+ export async function set (params) {
34
32
  const [varName, varValue] = params.args;
35
33
  const { alias, app: appIdOrName } = params.options;
36
34
 
@@ -48,7 +46,7 @@ async function set (params) {
48
46
  Logger.println('Your published config item has been successfully saved');
49
47
  };
50
48
 
51
- async function rm (params) {
49
+ export async function rm (params) {
52
50
  const [varName] = params.args;
53
51
  const { alias, app: appIdOrName } = params.options;
54
52
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
@@ -60,7 +58,7 @@ async function rm (params) {
60
58
  Logger.println('Your published config item has been successfully removed');
61
59
  };
62
60
 
63
- async function importEnv (params) {
61
+ export async function importEnv (params) {
64
62
  const { alias, app: appIdOrName, json } = params.options;
65
63
  const format = json ? 'json' : 'name-equals-value';
66
64
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
@@ -70,5 +68,3 @@ async function importEnv (params) {
70
68
 
71
69
  Logger.println('Your published configs have been set');
72
70
  };
73
-
74
- module.exports = { list, set, rm, importEnv };
@@ -1,16 +1,14 @@
1
- 'use strict';
1
+ import colors from 'colors/safe.js';
2
2
 
3
- const colors = require('colors/safe');
4
-
5
- const Application = require('../models/application.js');
6
- const git = require('../models/git.js');
7
- const Log = require('../models/log-v4.js');
8
- const Logger = require('../logger.js');
9
- const ExitStrategy = require('../models/exit-strategy-option.js');
3
+ import * as Application from '../models/application.js';
4
+ import * as git from '../models/git.js';
5
+ import * as Log from '../models/log-v4.js';
6
+ import { Logger } from '../logger.js';
7
+ import * as ExitStrategy from '../models/exit-strategy-option.js';
10
8
 
11
9
  // Once the API call to redeploy() has been triggerred successfully,
12
10
  // the rest (waiting for deployment state to evolve and displaying logs) is done with auto retry (resilient to network pb)
13
- async function restart (params) {
11
+ export async function restart (params) {
14
12
  const { alias, app: appIdOrName, quiet, commit, 'without-cache': withoutCache, follow, 'exit-on': exitOnDeploy } = params.options;
15
13
 
16
14
  const exitStrategy = ExitStrategy.get(follow, exitOnDeploy);
@@ -45,5 +43,3 @@ async function restart (params) {
45
43
  exitStrategy,
46
44
  });
47
45
  }
48
-
49
- module.exports = { restart };
@@ -1,7 +1,5 @@
1
- 'use strict';
2
-
3
- const Application = require('../models/application.js');
4
- const Logger = require('../logger.js');
1
+ import * as Application from '../models/application.js';
2
+ import { Logger } from '../logger.js';
5
3
 
6
4
  function validateOptions (options) {
7
5
 
@@ -43,7 +41,7 @@ function validateOptions (options) {
43
41
  return { minFlavor, maxFlavor, minInstances, maxInstances, buildFlavor };
44
42
  }
45
43
 
46
- async function scale (params) {
44
+ export async function scale (params) {
47
45
  const { alias, app: appIdOrName } = params.options;
48
46
  const { minFlavor, maxFlavor, minInstances, maxInstances, buildFlavor } = validateOptions(params.options);
49
47
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
@@ -57,5 +55,3 @@ async function scale (params) {
57
55
 
58
56
  Logger.println('App rescaled successfully');
59
57
  };
60
-
61
- module.exports = { scale };
@@ -1,10 +1,8 @@
1
- 'use strict';
1
+ import * as Addon from '../models/addon.js';
2
+ import * as Application from '../models/application.js';
3
+ import { Logger } from '../logger.js';
2
4
 
3
- const Addon = require('../models/addon.js');
4
- const Application = require('../models/application.js');
5
- const Logger = require('../logger.js');
6
-
7
- async function list (params) {
5
+ export async function list (params) {
8
6
  const { alias, app: appIdOrName, 'show-all': showAll, 'only-apps': onlyApps, 'only-addons': onlyAddons, format } = params.options;
9
7
  if (onlyApps && onlyAddons) {
10
8
  throw new Error('--only-apps and --only-addons are mutually exclusive');
@@ -53,7 +51,7 @@ async function list (params) {
53
51
  }
54
52
  }
55
53
 
56
- async function linkApp (params) {
54
+ export async function linkApp (params) {
57
55
  const { alias, app: appIdOrName } = params.options;
58
56
  const [dependency] = params.args;
59
57
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
@@ -62,7 +60,7 @@ async function linkApp (params) {
62
60
  Logger.println(`App ${dependency.app_id || dependency.app_name} successfully linked`);
63
61
  }
64
62
 
65
- async function unlinkApp (params) {
63
+ export async function unlinkApp (params) {
66
64
  const { alias, app: appIdOrName } = params.options;
67
65
  const [dependency] = params.args;
68
66
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
@@ -71,7 +69,7 @@ async function unlinkApp (params) {
71
69
  Logger.println(`App ${dependency.app_id || dependency.app_name} successfully unlinked`);
72
70
  }
73
71
 
74
- async function linkAddon (params) {
72
+ export async function linkAddon (params) {
75
73
  const { alias, app: appIdOrName } = params.options;
76
74
  const [addon] = params.args;
77
75
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
@@ -80,7 +78,7 @@ async function linkAddon (params) {
80
78
  Logger.println(`Addon ${addon.addon_id || addon.addon_name} successfully linked`);
81
79
  }
82
80
 
83
- async function unlinkAddon (params) {
81
+ export async function unlinkAddon (params) {
84
82
  const { alias, app: appIdOrName } = params.options;
85
83
  const [addon] = params.args;
86
84
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
@@ -88,11 +86,3 @@ async function unlinkAddon (params) {
88
86
  await Addon.unlink(ownerId, appId, addon);
89
87
  Logger.println(`Addon ${addon.addon_id || addon.addon_name} successfully unlinked`);
90
88
  }
91
-
92
- module.exports = {
93
- list,
94
- linkApp,
95
- unlinkApp,
96
- linkAddon,
97
- unlinkAddon,
98
- };
@@ -1,11 +1,9 @@
1
- 'use strict';
1
+ import { spawn } from 'node:child_process';
2
2
 
3
- const { spawn } = require('child_process');
3
+ import * as Application from '../models/application.js';
4
+ import { conf } from '../models/configuration.js';
4
5
 
5
- const Application = require('../models/application.js');
6
- const { conf } = require('../models/configuration.js');
7
-
8
- async function ssh (params) {
6
+ export async function ssh (params) {
9
7
  const { alias, app: appIdOrName, 'identity-file': identityFile } = params.options;
10
8
 
11
9
  const { appId } = await Application.resolveId(appIdOrName, alias);
@@ -21,5 +19,3 @@ async function ssh (params) {
21
19
  sshProcess.on('error', reject);
22
20
  });
23
21
  }
24
-
25
- module.exports = { ssh };
@@ -1,15 +1,13 @@
1
- 'use strict';
1
+ import _ from 'lodash';
2
+ import colors from 'colors/safe.js';
2
3
 
3
- const _ = require('lodash');
4
- const colors = require('colors/safe');
4
+ import * as Application from '../models/application.js';
5
+ import { Logger } from '../logger.js';
5
6
 
6
- const Application = require('../models/application.js');
7
- const Logger = require('../logger.js');
7
+ import { get as getApplication, getAllInstances } from '@clevercloud/client/esm/api/v2/application.js';
8
+ import { sendToApi } from '../models/send-to-api.js';
8
9
 
9
- const { get: getApplication, getAllInstances } = require('@clevercloud/client/cjs/api/v2/application.js');
10
- const { sendToApi } = require('../models/send-to-api.js');
11
-
12
- async function status (params) {
10
+ export async function status (params) {
13
11
  const { alias, app: appIdOrName, format } = params.options;
14
12
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
15
13
 
@@ -101,5 +99,3 @@ function groupInstances (instances) {
101
99
  }))
102
100
  .value();
103
101
  }
104
-
105
- module.exports = { status };
@@ -1,16 +1,12 @@
1
- 'use strict';
1
+ import * as Application from '../models/application.js';
2
+ import * as application from '@clevercloud/client/esm/api/v2/application.js';
3
+ import { Logger } from '../logger.js';
4
+ import { sendToApi } from '../models/send-to-api.js';
2
5
 
3
- const Application = require('../models/application.js');
4
- const application = require('@clevercloud/client/cjs/api/v2/application.js');
5
- const Logger = require('../logger.js');
6
- const { sendToApi } = require('../models/send-to-api.js');
7
-
8
- async function stop (params) {
6
+ export async function stop (params) {
9
7
  const { alias, app: appIdOrName } = params.options;
10
8
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
11
9
 
12
10
  await application.undeploy({ id: ownerId, appId }).then(sendToApi);
13
11
  Logger.println('App successfully stopped!');
14
12
  }
15
-
16
- module.exports = { stop };
@@ -1,15 +1,13 @@
1
- 'use strict';
1
+ import colors from 'colors/safe.js';
2
2
 
3
- const colors = require('colors/safe');
3
+ import * as Namespaces from '../models/namespaces.js';
4
+ import { sendToApi } from '../models/send-to-api.js';
5
+ import * as Interact from '../models/interact.js';
6
+ import { Logger } from '../logger.js';
7
+ import * as application from '@clevercloud/client/esm/api/v2/application.js';
8
+ import * as Application from '../models/application.js';
4
9
 
5
- const Namespaces = require('../models/namespaces.js');
6
- const { sendToApi } = require('../models/send-to-api.js');
7
- const Interact = require('../models/interact.js');
8
- const Logger = require('../logger.js');
9
- const application = require('@clevercloud/client/cjs/api/v2/application.js');
10
- const Application = require('../models/application.js');
11
-
12
- async function listNamespaces (params) {
10
+ export async function listNamespaces (params) {
13
11
  const { alias, app: appIdOrName, format } = params.options;
14
12
  const { ownerId } = await Application.resolveId(appIdOrName, alias);
15
13
 
@@ -42,7 +40,7 @@ async function listNamespaces (params) {
42
40
  }
43
41
  }
44
42
 
45
- async function list (params) {
43
+ export async function list (params) {
46
44
  const { alias, app: appIdOrName, format } = params.options;
47
45
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
48
46
 
@@ -81,7 +79,7 @@ async function acceptPayment (result, skipConfirmation) {
81
79
  }
82
80
  }
83
81
 
84
- async function add (params) {
82
+ export async function add (params) {
85
83
  const { alias, app: appIdOrName, namespace, yes: skipConfirmation } = params.options;
86
84
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
87
85
 
@@ -99,7 +97,7 @@ async function add (params) {
99
97
  Logger.println('Successfully added tcp redirection on port: ' + port);
100
98
  };
101
99
 
102
- async function remove (params) {
100
+ export async function remove (params) {
103
101
  const [port] = params.args;
104
102
  const { alias, app: appIdOrName, namespace } = params.options;
105
103
  const { ownerId, appId } = await Application.resolveId(appIdOrName, alias);
@@ -108,5 +106,3 @@ async function remove (params) {
108
106
 
109
107
  Logger.println('Successfully removed tcp redirection.');
110
108
  };
111
-
112
- module.exports = { listNamespaces, list, add, remove };
@@ -1,15 +1,11 @@
1
- 'use strict';
1
+ import * as AppConfig from '../models/app_configuration.js';
2
+ import * as Application from '../models/application.js';
3
+ import { Logger } from '../logger.js';
2
4
 
3
- const AppConfig = require('../models/app_configuration.js');
4
- const Application = require('../models/application.js');
5
- const Logger = require('../logger.js');
6
-
7
- async function unlink (params) {
5
+ export async function unlink (params) {
8
6
  const [alias] = params.args;
9
7
  const app = await AppConfig.getAppDetails({ alias });
10
8
 
11
9
  await Application.unlinkRepo(app.alias);
12
10
  Logger.println('Your application has been successfully unlinked!');
13
11
  };
14
-
15
- module.exports = { unlink };
@@ -1,10 +1,8 @@
1
- 'use strict';
1
+ import { Logger } from '../logger.js';
2
+ import { getPackageJson } from '../load-package-json.cjs';
2
3
 
3
- const Logger = require('../logger.js');
4
- const pkg = require('../../package.json');
4
+ const pkg = getPackageJson();
5
5
 
6
- async function version () {
6
+ export async function version () {
7
7
  Logger.println(pkg.version);
8
8
  }
9
-
10
- module.exports = { version };
@@ -1,14 +1,12 @@
1
- 'use strict';
1
+ import colors from 'colors/safe.js';
2
2
 
3
- const colors = require('colors/safe');
3
+ import { Logger } from '../logger.js';
4
+ import { getOwnerAndApp, getOrgaIdOrUserId } from '../models/notification.js';
4
5
 
5
- const Logger = require('../logger.js');
6
- const { getOwnerAndApp, getOrgaIdOrUserId } = require('../models/notification.js');
6
+ import { getWebhooks, createWebhook, deleteWebhook } from '@clevercloud/client/esm/api/v2/notification.js';
7
+ import { sendToApi } from '../models/send-to-api.js';
7
8
 
8
- const { getWebhooks, createWebhook, deleteWebhook } = require('@clevercloud/client/cjs/api/v2/notification.js');
9
- const { sendToApi } = require('../models/send-to-api.js');
10
-
11
- async function list (params) {
9
+ export async function list (params) {
12
10
  const { org, 'list-all': listAll, format } = params.options;
13
11
 
14
12
  // TODO: fix alias option
@@ -48,7 +46,7 @@ async function list (params) {
48
46
  }
49
47
  }
50
48
 
51
- async function add (params) {
49
+ export async function add (params) {
52
50
  const { org, format, event: events, service } = params.options;
53
51
  const [name, hookUrl] = params.args;
54
52
 
@@ -67,7 +65,7 @@ async function add (params) {
67
65
  Logger.println('The webhook has been added');
68
66
  }
69
67
 
70
- async function remove (params) {
68
+ export async function remove (params) {
71
69
  const { org } = params.options;
72
70
  const [notificationId] = params.args;
73
71
 
@@ -76,9 +74,3 @@ async function remove (params) {
76
74
 
77
75
  Logger.println('The notification has been successfully removed');
78
76
  }
79
-
80
- module.exports = {
81
- list,
82
- add,
83
- remove,
84
- };