checkly 3.1.0 → 4.0.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.
- package/README.md +42 -108
- package/bin/dev +17 -0
- package/bin/run +5 -0
- package/bin/run.cmd +3 -0
- package/constructs.d.ts +1 -0
- package/constructs.js +1 -0
- package/dist/auth/index.d.ts +15 -0
- package/dist/auth/index.js +228 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/commands/authCommand.d.ts +5 -0
- package/dist/commands/authCommand.js +14 -0
- package/dist/commands/authCommand.js.map +1 -0
- package/dist/commands/baseCommand.d.ts +9 -0
- package/dist/commands/baseCommand.js +21 -0
- package/dist/commands/baseCommand.js.map +1 -0
- package/dist/commands/deploy.d.ts +13 -0
- package/dist/commands/deploy.js +171 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/destroy.d.ts +10 -0
- package/dist/commands/destroy.js +47 -0
- package/dist/commands/destroy.js.map +1 -0
- package/dist/commands/env/add.d.ts +13 -0
- package/dist/commands/env/add.js +54 -0
- package/dist/commands/env/add.js.map +1 -0
- package/dist/commands/env/ls.d.ts +6 -0
- package/dist/commands/env/ls.js +21 -0
- package/dist/commands/env/ls.js.map +1 -0
- package/dist/commands/env/pull.d.ts +12 -0
- package/dist/commands/env/pull.js +63 -0
- package/dist/commands/env/pull.js.map +1 -0
- package/dist/commands/env/rm.d.ts +12 -0
- package/dist/commands/env/rm.js +56 -0
- package/dist/commands/env/rm.js.map +1 -0
- package/dist/commands/env/update.d.ts +13 -0
- package/dist/commands/env/update.js +54 -0
- package/dist/commands/env/update.js.map +1 -0
- package/dist/commands/login.d.ts +13 -0
- package/dist/commands/login.js +129 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +9 -0
- package/dist/commands/logout.js +40 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/runtimes.d.ts +6 -0
- package/dist/commands/runtimes.js +26 -0
- package/dist/commands/runtimes.js.map +1 -0
- package/dist/commands/switch.d.ts +9 -0
- package/dist/commands/switch.js +59 -0
- package/dist/commands/switch.js.map +1 -0
- package/dist/commands/test.d.ts +36 -0
- package/dist/commands/test.js +247 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/whoami.d.ts +6 -0
- package/dist/commands/whoami.js +16 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/config.d.ts +31 -0
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -0
- package/dist/constructs/alert-channel-subscription.d.ts +44 -0
- package/dist/constructs/alert-channel-subscription.js +39 -0
- package/dist/constructs/alert-channel-subscription.js.map +1 -0
- package/dist/constructs/alert-channel.d.ts +53 -0
- package/dist/constructs/alert-channel.js +55 -0
- package/dist/constructs/alert-channel.js.map +1 -0
- package/dist/constructs/api-check.d.ts +179 -0
- package/dist/constructs/api-check.js +248 -0
- package/dist/constructs/api-check.js.map +1 -0
- package/dist/constructs/browser-check.d.ts +59 -0
- package/dist/constructs/browser-check.js +102 -0
- package/dist/constructs/browser-check.js.map +1 -0
- package/dist/constructs/check-group.d.ts +116 -0
- package/dist/constructs/check-group.js +113 -0
- package/dist/constructs/check-group.js.map +1 -0
- package/dist/constructs/check.d.ts +111 -0
- package/dist/constructs/check.js +88 -0
- package/dist/constructs/check.js.map +1 -0
- package/dist/constructs/construct.d.ts +17 -0
- package/dist/constructs/construct.js +22 -0
- package/dist/constructs/construct.js.map +1 -0
- package/dist/constructs/email-alert-channel.d.ts +26 -0
- package/dist/constructs/email-alert-channel.js +37 -0
- package/dist/constructs/email-alert-channel.js.map +1 -0
- package/dist/constructs/environment-variable.d.ts +2 -0
- package/dist/constructs/environment-variable.js +3 -0
- package/dist/constructs/environment-variable.js.map +1 -0
- package/dist/constructs/frequency.d.ts +20 -0
- package/dist/constructs/frequency.js +26 -0
- package/dist/constructs/frequency.js.map +1 -0
- package/dist/constructs/http-header.d.ts +2 -0
- package/dist/constructs/http-header.js +3 -0
- package/dist/constructs/http-header.js.map +1 -0
- package/dist/constructs/index.d.ts +15 -0
- package/dist/constructs/index.js +32 -0
- package/dist/constructs/index.js.map +1 -0
- package/dist/constructs/key-value-pair.d.ts +5 -0
- package/dist/constructs/key-value-pair.js +3 -0
- package/dist/constructs/key-value-pair.js.map +1 -0
- package/dist/constructs/opsgenie-alert-channel.d.ts +45 -0
- package/dist/constructs/opsgenie-alert-channel.js +44 -0
- package/dist/constructs/opsgenie-alert-channel.js.map +1 -0
- package/dist/constructs/pagerduty-alert-channel.d.ts +39 -0
- package/dist/constructs/pagerduty-alert-channel.js +42 -0
- package/dist/constructs/pagerduty-alert-channel.js.map +1 -0
- package/dist/constructs/project.d.ts +57 -0
- package/dist/constructs/project.js +100 -0
- package/dist/constructs/project.js.map +1 -0
- package/dist/constructs/query-param.d.ts +2 -0
- package/dist/constructs/query-param.js +3 -0
- package/dist/constructs/query-param.js.map +1 -0
- package/dist/constructs/ref.d.ts +5 -0
- package/dist/constructs/ref.js +13 -0
- package/dist/constructs/ref.js.map +1 -0
- package/dist/constructs/slack-alert-channel.d.ts +26 -0
- package/dist/constructs/slack-alert-channel.js +40 -0
- package/dist/constructs/slack-alert-channel.js.map +1 -0
- package/dist/constructs/sms-alert-channel.d.ts +27 -0
- package/dist/constructs/sms-alert-channel.js +38 -0
- package/dist/constructs/sms-alert-channel.js.map +1 -0
- package/dist/constructs/validator-error.d.ts +2 -0
- package/dist/constructs/validator-error.js +7 -0
- package/dist/constructs/validator-error.js.map +1 -0
- package/dist/constructs/webhook-alert-channel.d.ts +59 -0
- package/dist/constructs/webhook-alert-channel.js +50 -0
- package/dist/constructs/webhook-alert-channel.js.map +1 -0
- package/dist/help/examples.d.ts +6 -0
- package/dist/help/examples.js +22 -0
- package/dist/help/examples.js.map +1 -0
- package/dist/help/help-extension.d.ts +4 -0
- package/dist/help/help-extension.js +41 -0
- package/dist/help/help-extension.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/messages/common-messages.d.ts +5 -0
- package/dist/messages/common-messages.js +9 -0
- package/dist/messages/common-messages.js.map +1 -0
- package/dist/reporters/abstract-list.d.ts +34 -0
- package/dist/reporters/abstract-list.js +122 -0
- package/dist/reporters/abstract-list.js.map +1 -0
- package/dist/reporters/ci.d.ts +12 -0
- package/dist/reporters/ci.js +29 -0
- package/dist/reporters/ci.js.map +1 -0
- package/dist/reporters/dot.d.ts +12 -0
- package/dist/reporters/dot.js +28 -0
- package/dist/reporters/dot.js.map +1 -0
- package/dist/reporters/github.d.ts +33 -0
- package/dist/reporters/github.js +93 -0
- package/dist/reporters/github.js.map +1 -0
- package/dist/reporters/list.d.ts +13 -0
- package/dist/reporters/list.js +57 -0
- package/dist/reporters/list.js.map +1 -0
- package/dist/reporters/reporter.d.ts +14 -0
- package/dist/reporters/reporter.js +23 -0
- package/dist/reporters/reporter.js.map +1 -0
- package/dist/reporters/util.d.ts +15 -0
- package/dist/reporters/util.js +283 -0
- package/dist/reporters/util.js.map +1 -0
- package/dist/rest/accounts.d.ts +12 -0
- package/dist/rest/accounts.js +15 -0
- package/dist/rest/accounts.js.map +1 -0
- package/dist/rest/api.d.ts +27 -0
- package/dist/rest/api.js +90 -0
- package/dist/rest/api.js.map +1 -0
- package/dist/rest/assets.d.ts +13 -0
- package/dist/rest/assets.js +30 -0
- package/dist/rest/assets.js.map +1 -0
- package/dist/rest/environment-variables.d.ts +16 -0
- package/dist/rest/environment-variables.js +25 -0
- package/dist/rest/environment-variables.js.map +1 -0
- package/dist/rest/locations.d.ts +11 -0
- package/dist/rest/locations.js +12 -0
- package/dist/rest/locations.js.map +1 -0
- package/dist/rest/private-locations.d.ts +11 -0
- package/dist/rest/private-locations.js +12 -0
- package/dist/rest/private-locations.js.map +1 -0
- package/dist/rest/projects.d.ts +43 -0
- package/dist/rest/projects.js +24 -0
- package/dist/rest/projects.js.map +1 -0
- package/dist/rest/runtimes.d.ts +15 -0
- package/dist/rest/runtimes.js +15 -0
- package/dist/rest/runtimes.js.map +1 -0
- package/dist/rest/test-sessions.d.ts +26 -0
- package/dist/rest/test-sessions.js +12 -0
- package/dist/rest/test-sessions.js.map +1 -0
- package/dist/rest/users.d.ts +12 -0
- package/dist/rest/users.js +12 -0
- package/dist/rest/users.js.map +1 -0
- package/dist/services/abstract-check-runner.d.ts +50 -0
- package/dist/services/abstract-check-runner.js +151 -0
- package/dist/services/abstract-check-runner.js.map +1 -0
- package/dist/services/check-parser/collector.d.ts +33 -0
- package/dist/services/check-parser/collector.js +48 -0
- package/dist/services/check-parser/collector.js.map +1 -0
- package/dist/services/check-parser/errors.d.ts +8 -0
- package/dist/services/check-parser/errors.js +45 -0
- package/dist/services/check-parser/errors.js.map +1 -0
- package/dist/services/check-parser/parser.d.ts +39 -0
- package/dist/services/check-parser/parser.js +296 -0
- package/dist/services/check-parser/parser.js.map +1 -0
- package/dist/services/checkly-config-loader.d.ts +54 -0
- package/dist/services/checkly-config-loader.js +55 -0
- package/dist/services/checkly-config-loader.js.map +1 -0
- package/dist/services/config.d.ts +24 -0
- package/dist/services/config.js +73 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/project-parser.d.ts +19 -0
- package/dist/services/project-parser.js +87 -0
- package/dist/services/project-parser.js.map +1 -0
- package/dist/services/socket-client.d.ts +4 -0
- package/dist/services/socket-client.js +20 -0
- package/dist/services/socket-client.js.map +1 -0
- package/dist/services/test-filters.d.ts +2 -0
- package/dist/services/test-filters.js +16 -0
- package/dist/services/test-filters.js.map +1 -0
- package/dist/services/test-runner.d.ts +21 -0
- package/dist/services/test-runner.js +50 -0
- package/dist/services/test-runner.js.map +1 -0
- package/dist/services/util.d.ts +29 -0
- package/dist/services/util.js +147 -0
- package/dist/services/util.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/oclif.manifest.json +423 -0
- package/package.json +163 -18
- package/LICENSE +0 -121
- package/dist/checkly.min.js +0 -1
- package/index.js +0 -285
- package/logo.png +0 -0
- package/test.js +0 -183
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var _Login_instances, _Login_promptForLoginOrSignUp;
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const open = require("open");
|
|
10
|
+
const chalk = require("chalk");
|
|
11
|
+
const core_1 = require("@oclif/core");
|
|
12
|
+
const baseCommand_1 = require("./baseCommand");
|
|
13
|
+
const inquirer = require("inquirer");
|
|
14
|
+
const config_1 = require("../services/config");
|
|
15
|
+
const api = require("../rest/api");
|
|
16
|
+
const auth_1 = require("../auth");
|
|
17
|
+
const selectAccount = async (accounts) => {
|
|
18
|
+
if (accounts.length === 1) {
|
|
19
|
+
return accounts[0];
|
|
20
|
+
}
|
|
21
|
+
const { accountName } = await inquirer.prompt([
|
|
22
|
+
{
|
|
23
|
+
name: 'accountName',
|
|
24
|
+
type: 'list',
|
|
25
|
+
choices: accounts,
|
|
26
|
+
message: 'Which account do you want to use?',
|
|
27
|
+
},
|
|
28
|
+
]);
|
|
29
|
+
return accounts.find(({ name }) => name === accountName);
|
|
30
|
+
};
|
|
31
|
+
class Login extends baseCommand_1.BaseCommand {
|
|
32
|
+
constructor() {
|
|
33
|
+
super(...arguments);
|
|
34
|
+
_Login_instances.add(this);
|
|
35
|
+
this._checkExistingCredentials = async () => {
|
|
36
|
+
if (config_1.default.hasEnvVarsConfigured()) {
|
|
37
|
+
this.warn('`CHECKLY_API_KEY` ' +
|
|
38
|
+
'or `CHECKLY_ACCOUNT_ID` environment variables are configured. You must delete them to use `npx checkly login`.');
|
|
39
|
+
this.exit(0);
|
|
40
|
+
}
|
|
41
|
+
const hasValidCredentials = config_1.default.hasValidCredentials();
|
|
42
|
+
if (hasValidCredentials) {
|
|
43
|
+
const { setNewkey } = await inquirer.prompt([
|
|
44
|
+
{
|
|
45
|
+
name: 'setNewkey',
|
|
46
|
+
type: 'confirm',
|
|
47
|
+
message: `You are currently logged in to "${config_1.default.data.get('accountName')}". Do you want to log out and log in to a different account?`,
|
|
48
|
+
},
|
|
49
|
+
]);
|
|
50
|
+
!setNewkey && this.exit(0);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this._isLoginSuccess = async () => {
|
|
54
|
+
await api.validateAuthentication();
|
|
55
|
+
this.log('Welcome to the Checkly CLI');
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async run() {
|
|
59
|
+
const { flags } = await this.parse(Login);
|
|
60
|
+
const { 'api-key': apiKey, 'account-id': accountId } = flags;
|
|
61
|
+
await this._checkExistingCredentials();
|
|
62
|
+
if (apiKey) {
|
|
63
|
+
if (!accountId) {
|
|
64
|
+
throw new Error('The flag --account-id (-i) is required when using --api-key (-k)');
|
|
65
|
+
}
|
|
66
|
+
config_1.default.auth.set('apiKey', apiKey);
|
|
67
|
+
config_1.default.data.set('accountId', accountId);
|
|
68
|
+
await this._isLoginSuccess();
|
|
69
|
+
this.exit(0);
|
|
70
|
+
}
|
|
71
|
+
const mode = await __classPrivateFieldGet(this, _Login_instances, "m", _Login_promptForLoginOrSignUp).call(this);
|
|
72
|
+
const authContext = new auth_1.AuthContext(mode);
|
|
73
|
+
const { openUrl } = await inquirer.prompt([
|
|
74
|
+
{
|
|
75
|
+
name: 'openUrl',
|
|
76
|
+
type: 'confirm',
|
|
77
|
+
message: `Do you want to open a browser window to continue with ${mode === 'login' ? 'login' : 'sign up'}?`,
|
|
78
|
+
},
|
|
79
|
+
]);
|
|
80
|
+
if (!openUrl) {
|
|
81
|
+
this.log(`Please open the following URL in your browser: \n\n${chalk.cyan(authContext.authenticationUrl)}`);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
await open(authContext.authenticationUrl);
|
|
85
|
+
}
|
|
86
|
+
const { key, name } = await authContext.getAuth0Credentials();
|
|
87
|
+
config_1.default.auth.set('apiKey', key);
|
|
88
|
+
const { data } = await api.accounts.getAll();
|
|
89
|
+
const selectedAccount = await selectAccount(data);
|
|
90
|
+
config_1.default.data.set('accountId', selectedAccount.id);
|
|
91
|
+
config_1.default.data.set('accountName', selectedAccount.name);
|
|
92
|
+
this.log(`Successfully logged in as ${chalk.cyan.bold(name)}`);
|
|
93
|
+
await this._isLoginSuccess();
|
|
94
|
+
process.exit(0);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.default = Login;
|
|
98
|
+
_Login_instances = new WeakSet(), _Login_promptForLoginOrSignUp = async function _Login_promptForLoginOrSignUp() {
|
|
99
|
+
const { mode } = await inquirer.prompt([
|
|
100
|
+
{
|
|
101
|
+
name: 'mode',
|
|
102
|
+
type: 'list',
|
|
103
|
+
message: 'Do you want to log in or sign up to Checkly?',
|
|
104
|
+
choices: [{
|
|
105
|
+
name: 'I want to log in with an existing Checkly account',
|
|
106
|
+
value: 'login',
|
|
107
|
+
}, {
|
|
108
|
+
name: 'I want to sign up for a new Checkly account',
|
|
109
|
+
value: 'signup',
|
|
110
|
+
}],
|
|
111
|
+
},
|
|
112
|
+
]);
|
|
113
|
+
return mode;
|
|
114
|
+
};
|
|
115
|
+
Login.hidden = false;
|
|
116
|
+
Login.description = 'Login to your Checkly account or create a new one.';
|
|
117
|
+
Login.flags = {
|
|
118
|
+
'api-key': core_1.Flags.string({
|
|
119
|
+
char: 'k',
|
|
120
|
+
name: 'apiKey',
|
|
121
|
+
description: 'Checkly User API Key. \nIf you did not have one, create it at: https://app.checklyhq.com/settings/user/api-keys.',
|
|
122
|
+
}),
|
|
123
|
+
'account-id': core_1.Flags.string({
|
|
124
|
+
char: 'i',
|
|
125
|
+
name: 'accountId',
|
|
126
|
+
description: 'Checkly account ID. (This flag is required if you are using -k (--api-key) flag.',
|
|
127
|
+
}),
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";;;;;;;;AAAA,6BAA4B;AAC5B,+BAA8B;AAC9B,sCAAmC;AACnC,+CAA2C;AAC3C,qCAAoC;AACpC,+CAAuC;AACvC,mCAAkC;AAElC,kCAAoD;AAEpD,MAAM,aAAa,GAAG,KAAK,EAAE,QAAwB,EAAoB,EAAE;IACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAA;KACnB;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC5C;YACE,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,mCAAmC;SAC7C;KACF,CAAC,CAAA;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,CAAE,CAAA;AAC3D,CAAC,CAAA;AAED,MAAqB,KAAM,SAAQ,yBAAW;IAA9C;;;QAmBU,8BAAyB,GAAG,KAAK,IAAI,EAAE;YAC7C,IAAI,gBAAM,CAAC,oBAAoB,EAAE,EAAE;gBACjC,IAAI,CAAC,IAAI,CAAC,oBAAoB;oBAC9B,gHAAgH,CAAC,CAAA;gBACjH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aACb;YAED,MAAM,mBAAmB,GAAG,gBAAM,CAAC,mBAAmB,EAAE,CAAA;YAExD,IAAI,mBAAmB,EAAE;gBACvB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBAC1C;wBACE,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,mCAAmC,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,8DAA8D;qBACzI;iBACF,CAAC,CAAA;gBACF,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aAC3B;QACH,CAAC,CAAA;QAEO,oBAAe,GAAG,KAAK,IAAI,EAAE;YACnC,MAAM,GAAG,CAAC,sBAAsB,EAAE,CAAA;YAClC,IAAI,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;QACxC,CAAC,CAAA;IA6EH,CAAC;IA3EC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACzC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;QAE5D,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAA;QAEtC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;aACpF;YAED,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YACjC,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YAEvC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACb;QAED,MAAM,IAAI,GAAG,MAAM,uBAAA,IAAI,uDAAwB,MAA5B,IAAI,CAA0B,CAAA;QAEjD,MAAM,WAAW,GAAG,IAAI,kBAAW,CAAC,IAAI,CAAC,CAAA;QAEzC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACxC;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,yDAAyD,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG;aAC5G;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,GAAG,CACN,sDAAsD,KAAK,CAAC,IAAI,CAC9D,WAAW,CAAC,iBAAiB,CAC9B,EAAE,CACJ,CAAA;SACF;aAAM;YACL,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;SAC1C;QAED,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,mBAAmB,EAAE,CAAA;QAE7D,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QAE9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QAE5C,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;QAEjD,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,CAAC,CAAA;QAChD,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,CAAA;QAEpD,IAAI,CAAC,GAAG,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAE9D,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;;AApGH,wBAwHC;kEAlBC,KAAK;IACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAA2B;QAC/D;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,8CAA8C;YACvD,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,mDAAmD;oBACzD,KAAK,EAAE,OAAO;iBACf,EAAE;oBACD,IAAI,EAAE,6CAA6C;oBACnD,KAAK,EAAE,QAAQ;iBAChB,CAAC;SACH;KACF,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AAtHM,YAAM,GAAG,KAAK,CAAA;AACd,iBAAW,GAAG,oDAAoD,CAAA;AAElE,WAAK,GAAG;IACb,SAAS,EAAE,YAAK,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,QAAQ;QACd,WAAW,EACX,kHAAkH;KACnH,CAAC;IAEF,YAAY,EAAE,YAAK,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,kFAAkF;KAChG,CAAC;CACH,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseCommand } from './baseCommand';
|
|
2
|
+
export default class Logout extends BaseCommand {
|
|
3
|
+
static hidden: boolean;
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
force: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const inquirer_1 = require("inquirer");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const config_1 = require("../services/config");
|
|
6
|
+
const baseCommand_1 = require("./baseCommand");
|
|
7
|
+
const common_messages_1 = require("../messages/common-messages");
|
|
8
|
+
class Logout extends baseCommand_1.BaseCommand {
|
|
9
|
+
async run() {
|
|
10
|
+
const { flags } = await this.parse(Logout);
|
|
11
|
+
const { force } = flags;
|
|
12
|
+
const accountName = config_1.default.data.get('accountName');
|
|
13
|
+
if (!force) {
|
|
14
|
+
const message = `You are about to clear your local session ${accountName
|
|
15
|
+
? ' of "' + accountName + '"'
|
|
16
|
+
: ''}, do you want to continue?`;
|
|
17
|
+
const { confirm } = await (0, inquirer_1.prompt)([{
|
|
18
|
+
name: 'confirm',
|
|
19
|
+
type: 'confirm',
|
|
20
|
+
message,
|
|
21
|
+
}]);
|
|
22
|
+
if (!confirm) {
|
|
23
|
+
this.exit(0);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
config_1.default.clear();
|
|
27
|
+
this.log('See you soon! 👋');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.default = Logout;
|
|
31
|
+
Logout.hidden = false;
|
|
32
|
+
Logout.description = 'Log out and clear any local credentials.';
|
|
33
|
+
Logout.flags = {
|
|
34
|
+
force: core_1.Flags.boolean({
|
|
35
|
+
char: 'f',
|
|
36
|
+
description: common_messages_1.default.forceMode,
|
|
37
|
+
default: false,
|
|
38
|
+
}),
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;AAAA,uCAAiC;AACjC,sCAAmC;AACnC,+CAAuC;AACvC,+CAA2C;AAC3C,iEAAwD;AAExD,MAAqB,MAAO,SAAQ,yBAAW;IAW7C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;QACvB,MAAM,WAAW,GAAG,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAElD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,OAAO,GAAG,6CAA6C,WAAW;gBACtE,CAAC,CAAC,OAAO,GAAG,WAAW,GAAG,GAAG;gBAC7B,CAAC,CAAC,EAAE,4BAA4B,CAAA;YAElC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,iBAAM,EAAC,CAAC;oBAChC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO;iBACR,CAAC,CAAC,CAAA;YAEH,IAAI,CAAC,OAAO,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aACb;SACF;QAED,gBAAM,CAAC,KAAK,EAAE,CAAA;QACd,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC9B,CAAC;;AAlCH,yBAmCC;AAlCQ,aAAM,GAAG,KAAK,CAAA;AACd,kBAAW,GAAG,0CAA0C,CAAA;AACxD,YAAK,GAAG;IACb,KAAK,EAAE,YAAK,CAAC,OAAO,CAAC;QACnB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,yBAAc,CAAC,SAAS;QACrC,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const api = require("../rest/api");
|
|
4
|
+
const baseCommand_1 = require("./baseCommand");
|
|
5
|
+
class Runtimes extends baseCommand_1.BaseCommand {
|
|
6
|
+
async run() {
|
|
7
|
+
const { data: runtimes } = await api.runtimes.getAll();
|
|
8
|
+
const output = runtimes
|
|
9
|
+
.sort((a, b) => b.name.localeCompare(a.name))
|
|
10
|
+
.map(r => {
|
|
11
|
+
const { node, ...dependencies } = r.dependencies;
|
|
12
|
+
return {
|
|
13
|
+
name: r.name,
|
|
14
|
+
description: r.description,
|
|
15
|
+
stage: r.stage,
|
|
16
|
+
nodeVersion: node,
|
|
17
|
+
dependencies,
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
this.log(JSON.stringify(output, null, 2));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.default = Runtimes;
|
|
24
|
+
Runtimes.hidden = false;
|
|
25
|
+
Runtimes.description = 'List all supported runtimes and dependencies.';
|
|
26
|
+
//# sourceMappingURL=runtimes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimes.js","sourceRoot":"","sources":["../../src/commands/runtimes.ts"],"names":[],"mappings":";;AAAA,mCAAkC;AAClC,+CAA2C;AAE3C,MAAqB,QAAS,SAAQ,yBAAW;IAG/C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QACtD,MAAM,MAAM,GAAG,QAAQ;aACpB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,CAAA;YAChD,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,IAAI;gBACjB,YAAY;aACb,CAAA;QACH,CAAC,CAAC,CAAA;QACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;;AAlBH,2BAmBC;AAlBQ,eAAM,GAAG,KAAK,CAAA;AACd,oBAAW,GAAG,+CAA+C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AuthCommand } from './authCommand';
|
|
2
|
+
export default class Switch extends AuthCommand {
|
|
3
|
+
static hidden: boolean;
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
'account-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
7
|
+
};
|
|
8
|
+
run(): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chalk = require("chalk");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const inquirer = require("inquirer");
|
|
6
|
+
const config_1 = require("../services/config");
|
|
7
|
+
const api = require("../rest/api");
|
|
8
|
+
const authCommand_1 = require("./authCommand");
|
|
9
|
+
class Switch extends authCommand_1.AuthCommand {
|
|
10
|
+
async run() {
|
|
11
|
+
const { flags } = await this.parse(Switch);
|
|
12
|
+
const { 'account-id': accountId } = flags;
|
|
13
|
+
if (accountId) {
|
|
14
|
+
try {
|
|
15
|
+
const { data: account } = await api.accounts.get(accountId);
|
|
16
|
+
config_1.default.data.set('accountId', account.id);
|
|
17
|
+
this.log(`Account switched to ${chalk.bold.cyan(accountId)}`);
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
throw new Error(`Failed to find an account corresponding to account id ${accountId}`);
|
|
21
|
+
}
|
|
22
|
+
this.exit(0);
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
const { data: accounts } = await api.accounts.getAll();
|
|
26
|
+
if (accounts.length === 1) {
|
|
27
|
+
console.warn('Your user is only a member of one account: ' +
|
|
28
|
+
chalk.bold.cyan(accounts[0].name));
|
|
29
|
+
this.exit(0);
|
|
30
|
+
}
|
|
31
|
+
const { selectedAccountName } = await inquirer.prompt([
|
|
32
|
+
{
|
|
33
|
+
name: 'selectedAccountName',
|
|
34
|
+
type: 'list',
|
|
35
|
+
choices: accounts.map((account) => account.name),
|
|
36
|
+
message: 'Select a new Checkly account',
|
|
37
|
+
},
|
|
38
|
+
]);
|
|
39
|
+
const { id, name } = accounts.find((account) => account.name === selectedAccountName);
|
|
40
|
+
config_1.default.data.set('accountId', id);
|
|
41
|
+
config_1.default.data.set('accountName', name);
|
|
42
|
+
this.log(`Account switched to ${chalk.bold.cyan(name)}`);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
throw new Error(`Failed to switch account. ${err.message}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.default = Switch;
|
|
50
|
+
Switch.hidden = false;
|
|
51
|
+
Switch.description = 'Switch user account.';
|
|
52
|
+
Switch.flags = {
|
|
53
|
+
'account-id': core_1.Flags.string({
|
|
54
|
+
char: 'a',
|
|
55
|
+
name: 'accountId',
|
|
56
|
+
description: 'The id of the account you want to switch to.',
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../src/commands/switch.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,sCAAmC;AACnC,qCAAoC;AACpC,+CAAuC;AACvC,mCAAkC;AAClC,+CAA2C;AAE3C,MAAqB,MAAO,SAAQ,yBAAW;IAW7C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;QAEzC,IAAI,SAAS,EAAE;YACb,IAAI;gBACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAC3D,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;gBACxC,IAAI,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;aAC9D;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,yDAAyD,SAAS,EAAE,CAAC,CAAA;aACtF;YACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACb;QAED,IAAI;YACF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;YAEtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,OAAO,CAAC,IAAI,CACV,6CAA6C;oBAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACpC,CAAA;gBACD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;aACb;YAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBACpD;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;oBAChD,OAAO,EAAE,8BAA8B;iBACxC;aACF,CAAC,CAAA;YAEF,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,mBAAmB,CAAE,CAAA;YAEtF,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YAChC,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;YAEpC,IAAI,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SACzD;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;SAC5D;IACH,CAAC;;AAvDH,yBAwDC;AAvDQ,aAAM,GAAG,KAAK,CAAA;AACd,kBAAW,GAAG,sBAAsB,CAAA;AACpC,YAAK,GAAG;IACb,YAAY,EAAE,YAAK,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,GAAG;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,8CAA8C;KAC5D,CAAC;CACH,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { RunLocation, PrivateRunLocation } from '../services/abstract-check-runner';
|
|
2
|
+
import { AuthCommand } from './authCommand';
|
|
3
|
+
import type { Region } from '..';
|
|
4
|
+
import { ReporterType } from '../reporters/reporter';
|
|
5
|
+
export default class Test extends AuthCommand {
|
|
6
|
+
static hidden: boolean;
|
|
7
|
+
static description: string;
|
|
8
|
+
static flags: {
|
|
9
|
+
location: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
|
+
'private-location': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
11
|
+
grep: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
12
|
+
env: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
13
|
+
'env-file': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
14
|
+
list: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
timeout: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
16
|
+
verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
reporter: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
18
|
+
config: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
19
|
+
record: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
};
|
|
21
|
+
static args: {
|
|
22
|
+
fileArgs: import("@oclif/core/lib/interfaces/parser").Arg<string, Record<string, unknown>>;
|
|
23
|
+
};
|
|
24
|
+
static strict: boolean;
|
|
25
|
+
run(): Promise<void>;
|
|
26
|
+
prepareVerboseFlag(verboseFlag?: boolean, cliVerboseFlag?: boolean): boolean;
|
|
27
|
+
prepareReportersTypes(reporterFlag: ReporterType, cliReporters?: ReporterType[]): ReporterType[];
|
|
28
|
+
prepareRunLocation(configOptions?: {
|
|
29
|
+
runLocation?: keyof Region;
|
|
30
|
+
privateRunLocation?: string;
|
|
31
|
+
}, cliFlags?: {
|
|
32
|
+
runLocation?: keyof Region;
|
|
33
|
+
privateRunLocation?: string;
|
|
34
|
+
}): Promise<RunLocation>;
|
|
35
|
+
preparePrivateRunLocation(privateLocationSlugName: string): Promise<PrivateRunLocation>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs = require("node:fs/promises");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const dotenv_1 = require("dotenv");
|
|
6
|
+
const ci_info_1 = require("ci-info");
|
|
7
|
+
const api = require("../rest/api");
|
|
8
|
+
const config_1 = require("../services/config");
|
|
9
|
+
const project_parser_1 = require("../services/project-parser");
|
|
10
|
+
const abstract_check_runner_1 = require("../services/abstract-check-runner");
|
|
11
|
+
const test_runner_1 = require("../services/test-runner");
|
|
12
|
+
const checkly_config_loader_1 = require("../services/checkly-config-loader");
|
|
13
|
+
const test_filters_1 = require("../services/test-filters");
|
|
14
|
+
const authCommand_1 = require("./authCommand");
|
|
15
|
+
const constructs_1 = require("../constructs");
|
|
16
|
+
const util_1 = require("../services/util");
|
|
17
|
+
const reporter_1 = require("../reporters/reporter");
|
|
18
|
+
const common_messages_1 = require("../messages/common-messages");
|
|
19
|
+
const DEFAULT_REGION = 'eu-central-1';
|
|
20
|
+
async function getEnvs(envFile, envArgs) {
|
|
21
|
+
if (envFile) {
|
|
22
|
+
const envsString = await fs.readFile(envFile, { encoding: 'utf8' });
|
|
23
|
+
return (0, dotenv_1.parse)(envsString);
|
|
24
|
+
}
|
|
25
|
+
const envsString = `${envArgs.join('\n')}`;
|
|
26
|
+
return (0, dotenv_1.parse)(envsString);
|
|
27
|
+
}
|
|
28
|
+
class Test extends authCommand_1.AuthCommand {
|
|
29
|
+
async run() {
|
|
30
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
31
|
+
core_1.ux.action.start('Parsing your project', undefined, { stdout: true });
|
|
32
|
+
const { flags, argv } = await this.parse(Test);
|
|
33
|
+
const { location: runLocation, 'private-location': privateRunLocation, grep, env, 'env-file': envFile, list, timeout, verbose: verboseFlag, reporter: reporterFlag, config: configFilename, record: shouldRecord, } = flags;
|
|
34
|
+
const filePatterns = argv;
|
|
35
|
+
const testEnvVars = await getEnvs(envFile, env);
|
|
36
|
+
const { configDirectory, configFilenames } = (0, util_1.splitConfigFilePath)(configFilename);
|
|
37
|
+
const { config: checklyConfig, constructs: checklyConfigConstructs, } = await (0, checkly_config_loader_1.loadChecklyConfig)(configDirectory, configFilenames);
|
|
38
|
+
const location = await this.prepareRunLocation(checklyConfig.cli, {
|
|
39
|
+
runLocation: runLocation,
|
|
40
|
+
privateRunLocation,
|
|
41
|
+
});
|
|
42
|
+
const verbose = this.prepareVerboseFlag(verboseFlag, (_a = checklyConfig.cli) === null || _a === void 0 ? void 0 : _a.verbose);
|
|
43
|
+
const reporterTypes = this.prepareReportersTypes(reporterFlag, (_b = checklyConfig.cli) === null || _b === void 0 ? void 0 : _b.reporters);
|
|
44
|
+
const { data: availableRuntimes } = await api.runtimes.getAll();
|
|
45
|
+
const project = await (0, project_parser_1.parseProject)({
|
|
46
|
+
directory: configDirectory,
|
|
47
|
+
projectLogicalId: checklyConfig.logicalId,
|
|
48
|
+
projectName: checklyConfig.projectName,
|
|
49
|
+
repoUrl: checklyConfig.repoUrl,
|
|
50
|
+
checkMatch: (_c = checklyConfig.checks) === null || _c === void 0 ? void 0 : _c.checkMatch,
|
|
51
|
+
browserCheckMatch: (_e = (_d = checklyConfig.checks) === null || _d === void 0 ? void 0 : _d.browserChecks) === null || _e === void 0 ? void 0 : _e.testMatch,
|
|
52
|
+
ignoreDirectoriesMatch: (_f = checklyConfig.checks) === null || _f === void 0 ? void 0 : _f.ignoreDirectoriesMatch,
|
|
53
|
+
checkDefaults: checklyConfig.checks,
|
|
54
|
+
browserCheckDefaults: (_g = checklyConfig.checks) === null || _g === void 0 ? void 0 : _g.browserChecks,
|
|
55
|
+
availableRuntimes: availableRuntimes.reduce((acc, runtime) => {
|
|
56
|
+
acc[runtime.name] = runtime;
|
|
57
|
+
return acc;
|
|
58
|
+
}, {}),
|
|
59
|
+
checklyConfigConstructs,
|
|
60
|
+
});
|
|
61
|
+
const checks = Object.entries(project.data.check)
|
|
62
|
+
.filter(([, check]) => {
|
|
63
|
+
if (check instanceof constructs_1.BrowserCheck) {
|
|
64
|
+
return (0, test_filters_1.filterByFileNamePattern)(filePatterns, check.scriptPath) ||
|
|
65
|
+
(0, test_filters_1.filterByFileNamePattern)(filePatterns, check.__checkFilePath);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return (0, test_filters_1.filterByFileNamePattern)(filePatterns, check.__checkFilePath);
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
.filter(([, check]) => {
|
|
72
|
+
return (0, test_filters_1.filterByCheckNamePattern)(grep, check.name);
|
|
73
|
+
})
|
|
74
|
+
.map(([key, check]) => {
|
|
75
|
+
var _a;
|
|
76
|
+
check.logicalId = key;
|
|
77
|
+
if (Object.keys(testEnvVars).length) {
|
|
78
|
+
check.environmentVariables = ((_a = check.environmentVariables) === null || _a === void 0 ? void 0 : _a.filter((envVar) => !testEnvVars[envVar.key])) || [];
|
|
79
|
+
for (const [key, value] of Object.entries(testEnvVars)) {
|
|
80
|
+
check.environmentVariables.push({
|
|
81
|
+
key,
|
|
82
|
+
value,
|
|
83
|
+
locked: true,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return check;
|
|
88
|
+
});
|
|
89
|
+
core_1.ux.action.stop();
|
|
90
|
+
if (!checks.length) {
|
|
91
|
+
this.log(`Unable to find checks to run${filePatterns[0] !== '.*' ? ' using [FILEARGS]=\'' + filePatterns + '\'' : ''}.`);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const reporters = (0, reporter_1.createReporters)(reporterTypes, location, verbose);
|
|
95
|
+
if (list) {
|
|
96
|
+
reporters.forEach(r => r.onBeginStatic());
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const repoInfo = (0, util_1.getGitInformation)(project.repoUrl);
|
|
100
|
+
const ciInfo = (0, util_1.getCiInformation)();
|
|
101
|
+
const runner = new test_runner_1.default(config_1.default.getAccountId(), project, checks, location, timeout, verbose, shouldRecord, repoInfo, ciInfo.environment);
|
|
102
|
+
runner.on(abstract_check_runner_1.Events.RUN_STARTED, (checks, testSessionId) => reporters.forEach(r => r.onBegin(checks, testSessionId)));
|
|
103
|
+
runner.on(abstract_check_runner_1.Events.CHECK_SUCCESSFUL, (checkRunId, check, result) => {
|
|
104
|
+
if (result.hasFailures) {
|
|
105
|
+
process.exitCode = 1;
|
|
106
|
+
}
|
|
107
|
+
reporters.forEach(r => r.onCheckEnd(checkRunId, {
|
|
108
|
+
logicalId: check.logicalId,
|
|
109
|
+
sourceFile: check.getSourceFile(),
|
|
110
|
+
...result,
|
|
111
|
+
}));
|
|
112
|
+
});
|
|
113
|
+
runner.on(abstract_check_runner_1.Events.CHECK_FAILED, (checkRunId, check, message) => {
|
|
114
|
+
reporters.forEach(r => r.onCheckEnd(checkRunId, {
|
|
115
|
+
...check,
|
|
116
|
+
logicalId: check.logicalId,
|
|
117
|
+
sourceFile: check.getSourceFile(),
|
|
118
|
+
hasFailures: true,
|
|
119
|
+
runError: message,
|
|
120
|
+
}));
|
|
121
|
+
process.exitCode = 1;
|
|
122
|
+
});
|
|
123
|
+
runner.on(abstract_check_runner_1.Events.RUN_FINISHED, () => reporters.forEach(r => r.onEnd()));
|
|
124
|
+
runner.on(abstract_check_runner_1.Events.ERROR, (err) => {
|
|
125
|
+
reporters.forEach(r => r.onError(err));
|
|
126
|
+
process.exitCode = 1;
|
|
127
|
+
});
|
|
128
|
+
await runner.run();
|
|
129
|
+
}
|
|
130
|
+
prepareVerboseFlag(verboseFlag, cliVerboseFlag) {
|
|
131
|
+
var _a;
|
|
132
|
+
return (_a = verboseFlag !== null && verboseFlag !== void 0 ? verboseFlag : cliVerboseFlag) !== null && _a !== void 0 ? _a : false;
|
|
133
|
+
}
|
|
134
|
+
prepareReportersTypes(reporterFlag, cliReporters = []) {
|
|
135
|
+
if (!reporterFlag && !cliReporters.length) {
|
|
136
|
+
return [ci_info_1.isCI ? 'ci' : 'list'];
|
|
137
|
+
}
|
|
138
|
+
return reporterFlag ? [reporterFlag] : cliReporters;
|
|
139
|
+
}
|
|
140
|
+
async prepareRunLocation(configOptions = {}, cliFlags = {}) {
|
|
141
|
+
// Command line options take precedence
|
|
142
|
+
if (cliFlags.runLocation) {
|
|
143
|
+
const { data: availableLocations } = await api.locations.getAll();
|
|
144
|
+
if (availableLocations.some(l => l.region === cliFlags.runLocation)) {
|
|
145
|
+
return { type: 'PUBLIC', region: cliFlags.runLocation };
|
|
146
|
+
}
|
|
147
|
+
throw new Error(`Unable to run checks on unsupported location "${cliFlags.runLocation}". ` +
|
|
148
|
+
`Supported locations are:\n${availableLocations.map(l => `${l.region}`).join('\n')}`);
|
|
149
|
+
}
|
|
150
|
+
else if (cliFlags.privateRunLocation) {
|
|
151
|
+
return this.preparePrivateRunLocation(cliFlags.privateRunLocation);
|
|
152
|
+
}
|
|
153
|
+
else if (configOptions.runLocation && configOptions.privateRunLocation) {
|
|
154
|
+
throw new Error('Both runLocation and privateRunLocation fields were set in your Checkly config file.' +
|
|
155
|
+
` Please only specify one run location. The configured locations were' +
|
|
156
|
+
' "${configOptions.runLocation}" and "${configOptions.privateRunLocation}"`);
|
|
157
|
+
}
|
|
158
|
+
else if (configOptions.runLocation) {
|
|
159
|
+
return { type: 'PUBLIC', region: configOptions.runLocation };
|
|
160
|
+
}
|
|
161
|
+
else if (configOptions.privateRunLocation) {
|
|
162
|
+
return this.preparePrivateRunLocation(configOptions.privateRunLocation);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
return { type: 'PUBLIC', region: DEFAULT_REGION };
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
async preparePrivateRunLocation(privateLocationSlugName) {
|
|
169
|
+
try {
|
|
170
|
+
const { data: privateLocations } = await api.privateLocations.getAll();
|
|
171
|
+
const privateLocation = privateLocations.find(({ slugName }) => slugName === privateLocationSlugName);
|
|
172
|
+
if (privateLocation) {
|
|
173
|
+
return { type: 'PRIVATE', id: privateLocation.id, slugName: privateLocationSlugName };
|
|
174
|
+
}
|
|
175
|
+
const { data: account } = await api.accounts.get(config_1.default.getAccountId());
|
|
176
|
+
throw new Error(`The specified private location "${privateLocationSlugName}" was not found on account "${account.name}".`);
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
throw new Error(`Failed to get private locations. ${err.message}.`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.default = Test;
|
|
184
|
+
Test.hidden = false;
|
|
185
|
+
Test.description = 'Test your checks on Checkly.';
|
|
186
|
+
Test.flags = {
|
|
187
|
+
location: core_1.Flags.string({
|
|
188
|
+
char: 'l',
|
|
189
|
+
description: 'The location to run the checks at.',
|
|
190
|
+
}),
|
|
191
|
+
'private-location': core_1.Flags.string({
|
|
192
|
+
description: 'The private location to run checks at.',
|
|
193
|
+
exclusive: ['location'],
|
|
194
|
+
}),
|
|
195
|
+
grep: core_1.Flags.string({
|
|
196
|
+
char: 'g',
|
|
197
|
+
description: 'Only run checks where the check name matches a regular expression.',
|
|
198
|
+
default: '.*',
|
|
199
|
+
}),
|
|
200
|
+
env: core_1.Flags.string({
|
|
201
|
+
char: 'e',
|
|
202
|
+
description: 'Env vars to be passed to the test run.',
|
|
203
|
+
exclusive: ['env-file'],
|
|
204
|
+
multiple: true,
|
|
205
|
+
default: [],
|
|
206
|
+
}),
|
|
207
|
+
'env-file': core_1.Flags.string({
|
|
208
|
+
description: 'dotenv file path to be passed. For example --env-file="./.env"',
|
|
209
|
+
exclusive: ['env'],
|
|
210
|
+
}),
|
|
211
|
+
list: core_1.Flags.boolean({
|
|
212
|
+
default: false,
|
|
213
|
+
description: 'list all checks but don\'t run them.',
|
|
214
|
+
}),
|
|
215
|
+
timeout: core_1.Flags.integer({
|
|
216
|
+
default: 240,
|
|
217
|
+
description: 'A timeout (in seconds) to wait for checks to complete.',
|
|
218
|
+
}),
|
|
219
|
+
verbose: core_1.Flags.boolean({
|
|
220
|
+
char: 'v',
|
|
221
|
+
description: 'Always show the full logs of the checks.',
|
|
222
|
+
allowNo: true,
|
|
223
|
+
}),
|
|
224
|
+
reporter: core_1.Flags.string({
|
|
225
|
+
char: 'r',
|
|
226
|
+
description: 'A list of custom reporters for the test output.',
|
|
227
|
+
options: ['list', 'dot', 'ci', 'github'],
|
|
228
|
+
}),
|
|
229
|
+
config: core_1.Flags.string({
|
|
230
|
+
char: 'c',
|
|
231
|
+
description: common_messages_1.default.configFile,
|
|
232
|
+
}),
|
|
233
|
+
record: core_1.Flags.boolean({
|
|
234
|
+
description: 'Record test results in Checkly as a test session with full logs, traces and videos.',
|
|
235
|
+
default: false,
|
|
236
|
+
}),
|
|
237
|
+
};
|
|
238
|
+
Test.args = {
|
|
239
|
+
fileArgs: core_1.Args.string({
|
|
240
|
+
name: 'files',
|
|
241
|
+
required: false,
|
|
242
|
+
description: 'Only run checks where the file name matches a regular expression',
|
|
243
|
+
default: '.*',
|
|
244
|
+
}),
|
|
245
|
+
};
|
|
246
|
+
Test.strict = false;
|
|
247
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_1 = require("../services/config");
|
|
4
|
+
const api = require("../rest/api");
|
|
5
|
+
const authCommand_1 = require("./authCommand");
|
|
6
|
+
class Whoami extends authCommand_1.AuthCommand {
|
|
7
|
+
async run() {
|
|
8
|
+
const { data: account } = await api.accounts.get(config_1.default.getAccountId());
|
|
9
|
+
const { data: user } = await api.user.get();
|
|
10
|
+
this.log(`You are currently on account "${account.name}" (${account.id}) as ${user.name}.`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.default = Whoami;
|
|
14
|
+
Whoami.hidden = false;
|
|
15
|
+
Whoami.description = 'See your currently logged in account and user.';
|
|
16
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":";;AAAA,+CAAuC;AACvC,mCAAkC;AAClC,+CAA2C;AAE3C,MAAqB,MAAO,SAAQ,yBAAW;IAG7C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAM,CAAC,YAAY,EAAE,CAAC,CAAA;QACvE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;QAC3C,IAAI,CAAC,GAAG,CAAC,iCAAiC,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,EAAE,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;IAC7F,CAAC;;AAPH,yBAQC;AAPQ,aAAM,GAAG,KAAK,CAAA;AACd,kBAAW,GAAG,gDAAgD,CAAA"}
|