runlify 0.0.2 → 0.0.5

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 (37) hide show
  1. package/build/cli.js +14 -2
  2. package/build/commands/availableEnvironments.js +74 -0
  3. package/build/commands/env.js +7 -26
  4. package/build/commands/init.js +70 -0
  5. package/build/commands/login.js +67 -0
  6. package/build/commands/logout.js +67 -0
  7. package/build/commands/readEnv.js +1 -7
  8. package/build/commands/runlify.js +2 -2
  9. package/build/commands/showEnvironmentVariables.js +62 -0
  10. package/build/commands/showToken.js +62 -0
  11. package/build/commands/tryGetMeta.js +59 -0
  12. package/build/commands/writeToken.js +86 -0
  13. package/build/services/getConfigService.js +53 -0
  14. package/build/services/getEnvService.js +122 -0
  15. package/build/services/getMetaService.js +83 -0
  16. package/build/templates/src/templates/runlify.developer.example.json.ejs +3 -0
  17. package/build/templates/src/templates/runlify.json.ejs +6 -0
  18. package/build/types/commands/availableEnvironments.d.ts +1 -0
  19. package/build/types/commands/init.d.ts +1 -0
  20. package/build/types/commands/login.d.ts +1 -0
  21. package/build/types/commands/logout.d.ts +1 -0
  22. package/build/types/commands/showEnvironmentVariables.d.ts +1 -0
  23. package/build/types/commands/showToken.d.ts +1 -0
  24. package/build/types/commands/tryGetMeta.d.ts +1 -0
  25. package/build/types/commands/writeToken.d.ts +1 -0
  26. package/build/types/services/getConfigService.d.ts +10 -0
  27. package/build/types/services/getEnvService.d.ts +8 -0
  28. package/build/types/services/getMetaService.d.ts +5 -0
  29. package/build/types/{signal-termination.d.ts → utils/TermSignals.d.ts} +2 -1
  30. package/build/types/utils/getAuth.d.ts +7 -0
  31. package/build/types/utils/getPkgManager.d.ts +3 -0
  32. package/build/types/utils/notifyUpdate.d.ts +2 -0
  33. package/build/{signal-termination.js → utils/TermSignals.js} +2 -3
  34. package/build/utils/getAuth.js +122 -0
  35. package/build/utils/getPkgManager.js +29 -0
  36. package/build/utils/notifyUpdate.js +70 -0
  37. package/package.json +5 -2
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var getConfigService_1 = require("../services/getConfigService");
40
+ module.exports = {
41
+ name: 'writeToken',
42
+ alias: ['w'],
43
+ run: function (toolbox) { return __awaiter(void 0, void 0, void 0, function () {
44
+ var parameters, info, envName, command, commandArgs, _a, getConfig, getConfigValue, getConfigPath, login, password, endpoint;
45
+ var _b, _c, _d;
46
+ return __generator(this, function (_e) {
47
+ switch (_e.label) {
48
+ case 0:
49
+ parameters = toolbox.parameters, info = toolbox.print.info;
50
+ info("writeToken");
51
+ envName = parameters.first;
52
+ info("envName: ".concat(envName));
53
+ command = (_b = parameters.second) !== null && _b !== void 0 ? _b : '';
54
+ info("command: ".concat(command));
55
+ commandArgs = (_d = (_c = parameters.array) === null || _c === void 0 ? void 0 : _c.splice(2)) !== null && _d !== void 0 ? _d : [];
56
+ info("commandArgs");
57
+ info(commandArgs);
58
+ _a = (0, getConfigService_1.default)(toolbox), getConfig = _a.getConfig, getConfigValue = _a.getConfigValue, getConfigPath = _a.getConfigPath;
59
+ console.log(getConfig());
60
+ console.log(getConfig());
61
+ console.log(getConfigValue('token'));
62
+ console.log(getConfigPath());
63
+ return [4 /*yield*/, toolbox.prompt.ask({
64
+ name: 'login',
65
+ type: 'input',
66
+ message: 'login',
67
+ })];
68
+ case 1:
69
+ login = (_e.sent()).login;
70
+ console.log(login);
71
+ return [4 /*yield*/, toolbox.prompt.ask({
72
+ name: 'password',
73
+ type: 'password',
74
+ message: 'password',
75
+ })];
76
+ case 2:
77
+ password = (_e.sent()).password;
78
+ console.log(password);
79
+ endpoint = 'http://localhost:3000/';
80
+ console.log(endpoint);
81
+ return [2 /*return*/];
82
+ }
83
+ });
84
+ }); },
85
+ };
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy93cml0ZVRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaUVBQTJEO0FBRTNELE1BQU0sQ0FBQyxPQUFPLEdBQUc7SUFDZixJQUFJLEVBQUUsWUFBWTtJQUNsQixLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDWixHQUFHLEVBQUUsVUFBTyxPQUF1Qjs7Ozs7O29CQUUvQixVQUFVLEdBRVIsT0FBTyxXQUZDLEVBQ0QsSUFBSSxHQUNYLE9BQU8sV0FESSxDQUNKO29CQUVYLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtvQkFFWixPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQTtvQkFDaEMsSUFBSSxDQUFDLG1CQUFZLE9BQU8sQ0FBRSxDQUFDLENBQUE7b0JBRXJCLE9BQU8sR0FBRyxNQUFBLFVBQVUsQ0FBQyxNQUFNLG1DQUFJLEVBQUUsQ0FBQTtvQkFDdkMsSUFBSSxDQUFDLG1CQUFZLE9BQU8sQ0FBRSxDQUFDLENBQUE7b0JBRXJCLFdBQVcsR0FBRyxNQUFBLE1BQUEsVUFBVSxDQUFDLEtBQUssMENBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxFQUFFLENBQUE7b0JBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtvQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO29CQUVYLEtBQ0osSUFBQSwwQkFBZ0IsRUFBQyxPQUFPLENBQUMsRUFEbkIsU0FBUyxlQUFBLEVBQUUsY0FBYyxvQkFBQSxFQUFFLGFBQWEsbUJBQUEsQ0FDckI7b0JBRTNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQTtvQkFFeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO29CQUV4QixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO29CQUVwQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7b0JBRVYscUJBQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQ3pDLElBQUksRUFBRSxPQUFPOzRCQUNiLElBQUksRUFBRSxPQUFPOzRCQUNiLE9BQU8sRUFBRSxPQUFPO3lCQUNqQixDQUFDLEVBQUE7O29CQUpNLEtBQUssR0FBSyxDQUFBLFNBSWhCLENBQUEsTUFKVztvQkFLYixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUVHLHFCQUFNLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDOzRCQUM1QyxJQUFJLEVBQUUsVUFBVTs0QkFDaEIsSUFBSSxFQUFFLFVBQVU7NEJBQ2hCLE9BQU8sRUFBRSxVQUFVO3lCQUNwQixDQUFDLEVBQUE7O29CQUpNLFFBQVEsR0FBSyxDQUFBLFNBSW5CLENBQUEsU0FKYztvQkFLaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtvQkFFZixRQUFRLEdBQUcsd0JBQXdCLENBQUE7b0JBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7Ozs7U0FDdEI7Q0FDRixDQUFBIn0=
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ var appdata_path_1 = require("appdata-path");
15
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
16
+ var getConfigService = function (toolbox) {
17
+ var getConfigPath = function () { return (0, appdata_path_1.default)('runlify/runlify.json'); };
18
+ var writeConfig = function (config) {
19
+ var configPath = getConfigPath();
20
+ return toolbox.filesystem.write(configPath, JSON.stringify(config));
21
+ };
22
+ var initConfig = function () {
23
+ var configPath = getConfigPath();
24
+ if (!toolbox.filesystem.exists(configPath)) {
25
+ toolbox.filesystem.write(configPath, JSON.stringify({}));
26
+ }
27
+ };
28
+ var getConfig = function () {
29
+ initConfig();
30
+ var configPath = getConfigPath();
31
+ var rawConfig = toolbox.filesystem.read(configPath);
32
+ return JSON.parse(rawConfig);
33
+ };
34
+ var setConfigValue = function (key, value) {
35
+ var _a;
36
+ var config = getConfig();
37
+ writeConfig(__assign(__assign({}, config), (_a = {}, _a[key] = value, _a)));
38
+ };
39
+ var getConfigValue = function (key) {
40
+ var config = getConfig();
41
+ return config[key];
42
+ };
43
+ return {
44
+ getConfigPath: getConfigPath,
45
+ writeConfig: writeConfig,
46
+ initConfig: initConfig,
47
+ getConfig: getConfig,
48
+ setConfigValue: setConfigValue,
49
+ getConfigValue: getConfigValue,
50
+ };
51
+ };
52
+ exports.default = getConfigService;
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZmlnU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9nZXRDb25maWdTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFDQSw2Q0FBeUM7QUFFekMsNkVBQTZFO0FBQzdFLElBQU0sZ0JBQWdCLEdBQUcsVUFBQyxPQUF1QjtJQUMvQyxJQUFNLGFBQWEsR0FBRyxjQUFNLE9BQUEsSUFBQSxzQkFBYyxFQUFDLHNCQUFzQixDQUFDLEVBQXRDLENBQXNDLENBQUE7SUFFbEUsSUFBTSxXQUFXLEdBQUcsVUFBQyxNQUEyQjtRQUM5QyxJQUFNLFVBQVUsR0FBRyxhQUFhLEVBQUUsQ0FBQTtRQUVsQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7SUFDckUsQ0FBQyxDQUFBO0lBRUQsSUFBTSxVQUFVLEdBQUc7UUFDakIsSUFBTSxVQUFVLEdBQUcsYUFBYSxFQUFFLENBQUE7UUFFbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7U0FDekQ7SUFDSCxDQUFDLENBQUE7SUFFRCxJQUFNLFNBQVMsR0FBRztRQUNoQixVQUFVLEVBQUUsQ0FBQTtRQUNaLElBQU0sVUFBVSxHQUFHLGFBQWEsRUFBRSxDQUFBO1FBQ2xDLElBQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBRXJELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM5QixDQUFDLENBQUE7SUFFRCxJQUFNLGNBQWMsR0FBRyxVQUFDLEdBQVcsRUFBRSxLQUFhOztRQUNoRCxJQUFNLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQTtRQUUxQixXQUFXLHVCQUNOLE1BQU0sZ0JBQ1IsR0FBRyxJQUFHLEtBQUssT0FDWixDQUFBO0lBQ0osQ0FBQyxDQUFBO0lBRUQsSUFBTSxjQUFjLEdBQUcsVUFBQyxHQUFXO1FBQ2pDLElBQU0sTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFBO1FBRTFCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3BCLENBQUMsQ0FBQTtJQUVELE9BQU87UUFDTCxhQUFhLGVBQUE7UUFDYixXQUFXLGFBQUE7UUFDWCxVQUFVLFlBQUE7UUFDVixTQUFTLFdBQUE7UUFDVCxjQUFjLGdCQUFBO1FBQ2QsY0FBYyxnQkFBQTtLQUNmLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxrQkFBZSxnQkFBZ0IsQ0FBQSJ9
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var R = require("ramda");
40
+ var getAuth_1 = require("../utils/getAuth");
41
+ var getConfigService_1 = require("./getConfigService");
42
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
43
+ var getEnvService = function (toolbox) {
44
+ var removeToken = (0, getAuth_1.default)(toolbox).removeToken;
45
+ var getConfigValue = (0, getConfigService_1.default)(toolbox).getConfigValue;
46
+ var _a = toolbox.print, info = _a.info, error = _a.error, warning = _a.warning;
47
+ var getEnvVariables = function (projectId, environmentId, scopes) { return __awaiter(void 0, void 0, void 0, function () {
48
+ var token, endpoint, http, res, composedVariables;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0:
52
+ token = getConfigValue('token');
53
+ info("token: ".concat(token));
54
+ if (!token) {
55
+ warning("\nYou should login first:\n\n runlify login\n");
56
+ process.exit();
57
+ }
58
+ endpoint = 'http://localhost:3000';
59
+ return [4 /*yield*/, toolbox.http.create({ baseURL: endpoint })];
60
+ case 1:
61
+ http = _a.sent();
62
+ return [4 /*yield*/, http.get("/rest/cli/environmentVariables", {
63
+ projectId: projectId,
64
+ environmentId: environmentId,
65
+ scopes: scopes,
66
+ }, {
67
+ headers: {
68
+ authorization: token,
69
+ },
70
+ })];
71
+ case 2:
72
+ res = _a.sent();
73
+ if (res.status === 401) {
74
+ removeToken();
75
+ error('Unauthorized');
76
+ process.exit();
77
+ }
78
+ composedVariables = R.fromPairs(res.data.data.map(function (v) { return [v.environmentVariableId, v.value]; }));
79
+ return [2 /*return*/, composedVariables];
80
+ }
81
+ });
82
+ }); };
83
+ var getAvailableEnvironments = function (projectId) { return __awaiter(void 0, void 0, void 0, function () {
84
+ var token, endpoint, http, res;
85
+ return __generator(this, function (_a) {
86
+ switch (_a.label) {
87
+ case 0:
88
+ token = getConfigValue('token');
89
+ info("token: ".concat(token));
90
+ if (!token) {
91
+ warning("\nYou should login first:\n\n runlify login\n");
92
+ process.exit();
93
+ }
94
+ endpoint = 'http://localhost:3000';
95
+ return [4 /*yield*/, toolbox.http.create({ baseURL: endpoint })];
96
+ case 1:
97
+ http = _a.sent();
98
+ return [4 /*yield*/, http.get("/rest/cli/environments", {
99
+ projectId: projectId,
100
+ }, {
101
+ headers: {
102
+ authorization: token,
103
+ },
104
+ })];
105
+ case 2:
106
+ res = _a.sent();
107
+ if (res.status === 401) {
108
+ removeToken();
109
+ error('Unauthorized');
110
+ process.exit();
111
+ }
112
+ return [2 /*return*/, res.data.data];
113
+ }
114
+ });
115
+ }); };
116
+ return {
117
+ getEnvVariables: getEnvVariables,
118
+ getAvailableEnvironments: getAvailableEnvironments,
119
+ };
120
+ };
121
+ exports.default = getEnvService;
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RW52U2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9nZXRFbnZTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EseUJBQTBCO0FBQzFCLDRDQUFzQztBQUN0Qyx1REFBaUQ7QUFFakQsNkVBQTZFO0FBQzdFLElBQU0sYUFBYSxHQUFHLFVBQUMsT0FBdUI7SUFDcEMsSUFBQSxXQUFXLEdBQUssSUFBQSxpQkFBTyxFQUFDLE9BQU8sQ0FBQyxZQUFyQixDQUFxQjtJQUNoQyxJQUFBLGNBQWMsR0FBSyxJQUFBLDBCQUFnQixFQUFDLE9BQU8sQ0FBQyxlQUE5QixDQUE4QjtJQUVsRCxJQUFBLEtBQ0UsT0FBTyxNQURzQixFQUF0QixJQUFJLFVBQUEsRUFBRSxLQUFLLFdBQUEsRUFBRSxPQUFPLGFBQUUsQ0FDdEI7SUFFWCxJQUFNLGVBQWUsR0FBRyxVQUN0QixTQUFpQixFQUNqQixhQUFxQixFQUNyQixNQUFnQjs7Ozs7b0JBRVYsS0FBSyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtvQkFDckMsSUFBSSxDQUFDLGlCQUFVLEtBQUssQ0FBRSxDQUFDLENBQUE7b0JBRXZCLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLGtEQUliLENBQUMsQ0FBQTt3QkFDSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7cUJBQ2Y7b0JBRUssUUFBUSxHQUFHLHVCQUF1QixDQUFBO29CQUMzQixxQkFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFBOztvQkFBdkQsSUFBSSxHQUFHLFNBQWdEO29CQUNqRCxxQkFBTSxJQUFJLENBQUMsR0FBRyxDQUN4QixnQ0FBZ0MsRUFDaEM7NEJBQ0UsU0FBUyxXQUFBOzRCQUNULGFBQWEsZUFBQTs0QkFDYixNQUFNLFFBQUE7eUJBQ1AsRUFDRDs0QkFDRSxPQUFPLEVBQUU7Z0NBQ1AsYUFBYSxFQUFFLEtBQUs7NkJBQ3JCO3lCQUNGLENBQ0YsRUFBQTs7b0JBWkssR0FBRyxHQUFHLFNBWVg7b0JBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTt3QkFDdEIsV0FBVyxFQUFFLENBQUE7d0JBQ2IsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFBO3dCQUNyQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7cUJBQ2Y7b0JBRUssaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFsQyxDQUFrQyxDQUFDLENBQzdELENBQUE7b0JBRUQsc0JBQU8saUJBQWlCLEVBQUE7OztTQUN6QixDQUFBO0lBRUQsSUFBTSx3QkFBd0IsR0FBRyxVQUFPLFNBQWlCOzs7OztvQkFDakQsS0FBSyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtvQkFDckMsSUFBSSxDQUFDLGlCQUFVLEtBQUssQ0FBRSxDQUFDLENBQUE7b0JBRXZCLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLGtEQUliLENBQUMsQ0FBQTt3QkFDSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7cUJBQ2Y7b0JBRUssUUFBUSxHQUFHLHVCQUF1QixDQUFBO29CQUMzQixxQkFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFBOztvQkFBdkQsSUFBSSxHQUFHLFNBQWdEO29CQUNqRCxxQkFBTSxJQUFJLENBQUMsR0FBRyxDQUN4Qix3QkFBd0IsRUFDeEI7NEJBQ0UsU0FBUyxXQUFBO3lCQUNWLEVBQ0Q7NEJBQ0UsT0FBTyxFQUFFO2dDQUNQLGFBQWEsRUFBRSxLQUFLOzZCQUNyQjt5QkFDRixDQUNGLEVBQUE7O29CQVZLLEdBQUcsR0FBRyxTQVVYO29CQUNELElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7d0JBQ3RCLFdBQVcsRUFBRSxDQUFBO3dCQUNiLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTt3QkFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO3FCQUNmO29CQUVELHNCQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFBOzs7U0FDckIsQ0FBQTtJQUVELE9BQU87UUFDTCxlQUFlLGlCQUFBO1FBQ2Ysd0JBQXdCLDBCQUFBO0tBQ3pCLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxrQkFBZSxhQUFhLENBQUEifQ==
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var getAuth_1 = require("../utils/getAuth");
40
+ var getConfigService_1 = require("./getConfigService");
41
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
42
+ var getMetaService = function (toolbox) {
43
+ var removeToken = (0, getAuth_1.default)(toolbox).removeToken;
44
+ var getConfigValue = (0, getConfigService_1.default)(toolbox).getConfigValue;
45
+ var _a = toolbox.print, info = _a.info, error = _a.error, warning = _a.warning;
46
+ var getMeta = function (project) { return __awaiter(void 0, void 0, void 0, function () {
47
+ var token, endpoint, http, res;
48
+ return __generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0:
51
+ token = getConfigValue('token');
52
+ info("token: ".concat(token));
53
+ if (!token) {
54
+ warning("\nYou should login first:\n\n runlify login\n");
55
+ process.exit();
56
+ }
57
+ endpoint = 'http://localhost:3000';
58
+ return [4 /*yield*/, toolbox.http.create({ baseURL: endpoint })];
59
+ case 1:
60
+ http = _a.sent();
61
+ return [4 /*yield*/, http.get("/rest/cli/projectMeta/".concat(project), {}, {
62
+ headers: {
63
+ authorization: token,
64
+ },
65
+ })];
66
+ case 2:
67
+ res = _a.sent();
68
+ info(res);
69
+ if (res.status === 401) {
70
+ removeToken();
71
+ error('Unauthorized');
72
+ process.exit();
73
+ }
74
+ return [2 /*return*/];
75
+ }
76
+ });
77
+ }); };
78
+ return {
79
+ getMeta: getMeta,
80
+ };
81
+ };
82
+ exports.default = getMetaService;
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0TWV0YVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvZ2V0TWV0YVNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw0Q0FBc0M7QUFDdEMsdURBQWlEO0FBRWpELDZFQUE2RTtBQUM3RSxJQUFNLGNBQWMsR0FBRyxVQUFDLE9BQXVCO0lBQ3JDLElBQUEsV0FBVyxHQUFLLElBQUEsaUJBQU8sRUFBQyxPQUFPLENBQUMsWUFBckIsQ0FBcUI7SUFDaEMsSUFBQSxjQUFjLEdBQUssSUFBQSwwQkFBZ0IsRUFBQyxPQUFPLENBQUMsZUFBOUIsQ0FBOEI7SUFFbEQsSUFBQSxLQUNFLE9BQU8sTUFEc0IsRUFBdEIsSUFBSSxVQUFBLEVBQUUsS0FBSyxXQUFBLEVBQUUsT0FBTyxhQUFFLENBQ3RCO0lBRVgsSUFBTSxPQUFPLEdBQUcsVUFBTyxPQUFlOzs7OztvQkFDOUIsS0FBSyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtvQkFDckMsSUFBSSxDQUFDLGlCQUFVLEtBQUssQ0FBRSxDQUFDLENBQUE7b0JBRXZCLElBQUksQ0FBQyxLQUFLLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLGtEQUliLENBQUMsQ0FBQTt3QkFDSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUE7cUJBQ2Y7b0JBRUssUUFBUSxHQUFHLHVCQUF1QixDQUFBO29CQUMzQixxQkFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFBOztvQkFBdkQsSUFBSSxHQUFHLFNBQWdEO29CQUNqRCxxQkFBTSxJQUFJLENBQUMsR0FBRyxDQUN4QixnQ0FBeUIsT0FBTyxDQUFFLEVBQ2xDLEVBQUUsRUFDRjs0QkFDRSxPQUFPLEVBQUU7Z0NBQ1AsYUFBYSxFQUFFLEtBQUs7NkJBQ3JCO3lCQUNGLENBQ0YsRUFBQTs7b0JBUkssR0FBRyxHQUFHLFNBUVg7b0JBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUNULElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7d0JBQ3RCLFdBQVcsRUFBRSxDQUFBO3dCQUNiLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTt3QkFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO3FCQUNmOzs7O1NBQ0YsQ0FBQTtJQUVELE9BQU87UUFDTCxPQUFPLFNBQUE7S0FDUixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsa0JBQWUsY0FBYyxDQUFBIn0=
@@ -0,0 +1,3 @@
1
+ {
2
+ "defaultEnvironment": "dev"
3
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "projectName": "<%= props.projectName %>",
3
+ "partName": "<%= props.projectName %>-<%= props.projectCategory %>",
4
+ "projectCategory": "<%= props.projectCategory %>",
5
+ "varCategories": ["back", "worker", "telegramBot"]
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import { GluegunToolbox } from 'gluegun';
2
+ declare const getConfigService: (toolbox: GluegunToolbox) => {
3
+ getConfigPath: () => string;
4
+ writeConfig: (config: Record<string, any>) => void;
5
+ initConfig: () => void;
6
+ getConfig: () => any;
7
+ setConfigValue: (key: string, value: string) => void;
8
+ getConfigValue: (key: string) => any;
9
+ };
10
+ export default getConfigService;
@@ -0,0 +1,8 @@
1
+ import { GluegunToolbox } from 'gluegun';
2
+ declare const getEnvService: (toolbox: GluegunToolbox) => {
3
+ getEnvVariables: (projectId: string, environmentId: string, scopes: string[]) => Promise<{
4
+ [index: string]: unknown;
5
+ }>;
6
+ getAvailableEnvironments: (projectId: string) => Promise<any>;
7
+ };
8
+ export default getEnvService;
@@ -0,0 +1,5 @@
1
+ import { GluegunToolbox } from 'gluegun';
2
+ declare const getMetaService: (toolbox: GluegunToolbox) => {
3
+ getMeta: (project: string) => Promise<void>;
4
+ };
5
+ export default getMetaService;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { ChildProcess } from 'child_process';
3
- export declare class TermSignals {
3
+ declare class TermSignals {
4
4
  private readonly terminateSpawnedProcessFuncHandlers;
5
5
  private readonly verbose;
6
6
  _exitCalled: boolean;
@@ -25,3 +25,4 @@ export declare class TermSignals {
25
25
  */
26
26
  _uncaughtExceptionHandler(e: Error): void;
27
27
  }
28
+ export default TermSignals;
@@ -0,0 +1,7 @@
1
+ import { GluegunToolbox } from 'gluegun';
2
+ declare const getAuth: (toolbox: GluegunToolbox) => {
3
+ login: () => Promise<void>;
4
+ logout: () => Promise<void>;
5
+ removeToken: () => void;
6
+ };
7
+ export default getAuth;
@@ -0,0 +1,3 @@
1
+ export declare type PackageManager = 'npm' | 'pnpm' | 'yarn';
2
+ declare const getPkgManager: () => PackageManager;
3
+ export default getPkgManager;
@@ -0,0 +1,2 @@
1
+ declare const notifyUpdate: () => Promise<void>;
2
+ export default notifyUpdate;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TermSignals = void 0;
4
3
  // file from env-cmd package
5
4
  var SIGNALS_TO_HANDLE = ['SIGINT', 'SIGTERM', 'SIGHUP'];
6
5
  var TermSignals = /** @class */ (function () {
@@ -114,5 +113,5 @@ var TermSignals = /** @class */ (function () {
114
113
  };
115
114
  return TermSignals;
116
115
  }());
117
- exports.TermSignals = TermSignals;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXRlcm1pbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NpZ25hbC10ZXJtaW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw0QkFBNEI7QUFFNUIsSUFBTSxpQkFBaUIsR0FBcUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBRTNFO0lBTUUscUJBQVksT0FBbUM7UUFBbkMsd0JBQUEsRUFBQSxZQUFtQztRQUwvQyw4REFBOEQ7UUFDN0Msd0NBQW1DLEdBQXdCLEVBQUUsQ0FBQTtRQUM3RCxZQUFPLEdBQVksS0FBSyxDQUFBO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUFBO1FBR3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUE7SUFDekMsQ0FBQztJQUVNLHVDQUFpQixHQUF4QixVQUF5QixJQUFrQjtRQUEzQyxpQkF5RUM7UUF4RUMsd0VBQXdFO1FBQ3hFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFDLE1BQU07WUFDL0IsS0FBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQ2pELE1BQStCLEVBQy9CLElBQVk7Z0JBRVosS0FBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7Z0JBQzlCLElBQUksQ0FBQyxLQUFJLENBQUMsV0FBVyxFQUFFO29CQUNyQixJQUFJLEtBQUksQ0FBQyxPQUFPLEVBQUU7d0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQ1YscUNBQXFDOzRCQUNuQyxNQUFNLENBQUMsUUFBUSxFQUFFOzRCQUNqQixnQ0FBZ0MsQ0FDbkMsQ0FBQTtxQkFDRjtvQkFDRCw2REFBNkQ7b0JBQzdELEtBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO29CQUN2Qiw2Q0FBNkM7b0JBQzdDLElBQUksYUFBYSxTQUE0QixDQUFBO29CQUM3QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTt3QkFDOUIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRTs0QkFDeEIsSUFBSSxHQUFHLE1BQU0sQ0FBQTs0QkFDYixhQUFhLEdBQUcsUUFBUSxDQUFBO3lCQUN6QjtxQkFDRjt5QkFBTTt3QkFDTCxhQUFhLEdBQUcsTUFBTSxDQUFBO3FCQUN2QjtvQkFDRCx5QkFBeUI7b0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxhQUFiLGFBQWEsY0FBYixhQUFhLEdBQUksSUFBSSxDQUFDLENBQUE7b0JBQ2hDLCtCQUErQjtvQkFDL0IsS0FBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQTtpQkFDNUM7WUFDSCxDQUFDLENBQUE7WUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFJLENBQUMsbUNBQW1DLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUN4RSxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUV0RSx3RUFBd0U7UUFDeEUsSUFBSSxDQUFDLEVBQUUsQ0FDTCxNQUFNLEVBQ04sVUFDRSxJQUF3QixFQUN4QixNQUFzQztZQUV0QyxLQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQTtZQUM5QixJQUFJLENBQUMsS0FBSSxDQUFDLFdBQVcsRUFBRTtnQkFDckIsSUFBSSxLQUFJLENBQUMsT0FBTyxFQUFFO29CQUNoQixPQUFPLENBQUMsSUFBSSxDQUNWLDBDQUFtQyxDQUNqQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQ1gsQ0FBQyxRQUFRLEVBQUUsaUJBQWM7d0JBQ3hCLENBQUMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO3dCQUN6QixpQ0FBaUMsQ0FDcEMsQ0FBQTtpQkFDRjtnQkFDRCw2REFBNkQ7Z0JBQzdELEtBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO2dCQUN2Qiw2Q0FBNkM7Z0JBQzdDLElBQUksYUFBYSxTQUE0QixDQUFBO2dCQUM3QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtvQkFDOUIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxDQUFDLENBQUMsRUFBRTt3QkFDeEIsSUFBSSxHQUFHLE1BQU0sQ0FBQTt3QkFDYixhQUFhLEdBQUcsUUFBUSxDQUFBO3FCQUN6QjtpQkFDRjtxQkFBTTtvQkFDTCxhQUFhLEdBQUcsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksU0FBUyxDQUFBO2lCQUNwQztnQkFDRCwrQkFBK0I7Z0JBQy9CLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUE7YUFDNUM7UUFDSCxDQUFDLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLDhDQUF3QixHQUEvQjtRQUFBLGlCQUlDO1FBSEMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxVQUFDLENBQUM7WUFDaEMsT0FBQSxLQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQWpDLENBQWlDLENBQ2xDLENBQUE7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSx1Q0FBaUIsR0FBeEIsVUFBeUIsSUFBYSxFQUFFLE1BQXVCO1FBQzdELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDakMsT0FBTTtTQUNQO1FBQ0QsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtTQUMxQjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSw2Q0FBdUIsR0FBOUI7UUFBQSxpQkFXQztRQVZDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFDLE1BQU07WUFDL0IsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsTUFBTSxFQUNOLEtBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsQ0FDakQsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsTUFBTSxFQUNOLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxPQUFPLENBQ2pELENBQUE7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSwrQ0FBeUIsR0FBaEMsVUFBaUMsQ0FBUTtRQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFDSCxrQkFBQztBQUFELENBQUMsQUFuSUQsSUFtSUM7QUFuSVksa0NBQVcifQ==
116
+ exports.default = TermSignals;
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVybVNpZ25hbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvVGVybVNpZ25hbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSw0QkFBNEI7QUFFNUIsSUFBTSxpQkFBaUIsR0FBcUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBRTNFO0lBTUUscUJBQVksT0FBbUM7UUFBbkMsd0JBQUEsRUFBQSxZQUFtQztRQUwvQyw4REFBOEQ7UUFDN0Msd0NBQW1DLEdBQXdCLEVBQUUsQ0FBQTtRQUM3RCxZQUFPLEdBQVksS0FBSyxDQUFBO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUFBO1FBR3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUE7SUFDekMsQ0FBQztJQUVNLHVDQUFpQixHQUF4QixVQUF5QixJQUFrQjtRQUEzQyxpQkF5RUM7UUF4RUMsd0VBQXdFO1FBQ3hFLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxVQUFDLE1BQU07WUFDL0IsS0FBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQ2pELE1BQStCLEVBQy9CLElBQVk7Z0JBRVosS0FBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7Z0JBQzlCLElBQUksQ0FBQyxLQUFJLENBQUMsV0FBVyxFQUFFO29CQUNyQixJQUFJLEtBQUksQ0FBQyxPQUFPLEVBQUU7d0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQ1YscUNBQXFDOzRCQUNuQyxNQUFNLENBQUMsUUFBUSxFQUFFOzRCQUNqQixnQ0FBZ0MsQ0FDbkMsQ0FBQTtxQkFDRjtvQkFDRCw2REFBNkQ7b0JBQzdELEtBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBO29CQUN2Qiw2Q0FBNkM7b0JBQzdDLElBQUksYUFBYSxTQUE0QixDQUFBO29CQUM3QyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTt3QkFDOUIsSUFB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
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ var getConfigService_1 = require("../services/getConfigService");
40
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
41
+ var getAuth = function (toolbox) {
42
+ var _a = (0, getConfigService_1.default)(toolbox), setConfigValue = _a.setConfigValue, getConfigValue = _a.getConfigValue;
43
+ var _b = toolbox.print, info = _b.info, error = _b.error;
44
+ var login = function () { return __awaiter(void 0, void 0, void 0, function () {
45
+ var login, password, endpoint, http, res, tokenEntity;
46
+ return __generator(this, function (_a) {
47
+ switch (_a.label) {
48
+ case 0: return [4 /*yield*/, toolbox.prompt.ask({
49
+ name: 'login',
50
+ type: 'input',
51
+ message: 'login',
52
+ })];
53
+ case 1:
54
+ login = (_a.sent()).login;
55
+ info(login);
56
+ return [4 /*yield*/, toolbox.prompt.ask({
57
+ name: 'password',
58
+ type: 'password',
59
+ message: 'password',
60
+ })];
61
+ case 2:
62
+ password = (_a.sent()).password;
63
+ info(password);
64
+ endpoint = 'http://localhost:3000';
65
+ info(endpoint);
66
+ return [4 /*yield*/, toolbox.http.create({ baseURL: endpoint })];
67
+ case 3:
68
+ http = _a.sent();
69
+ return [4 /*yield*/, http.post('/rest/cli/login', {
70
+ login: login,
71
+ password: password,
72
+ name: 'runlify',
73
+ })];
74
+ case 4:
75
+ res = _a.sent();
76
+ if (res.status === 401) {
77
+ error('Wrong login, password or you do not have permission to login by cli');
78
+ process.exit();
79
+ }
80
+ tokenEntity = res.data.data;
81
+ info('tokenEntity');
82
+ info(tokenEntity);
83
+ setConfigValue('token', tokenEntity.token);
84
+ return [2 /*return*/];
85
+ }
86
+ });
87
+ }); };
88
+ var logout = function () { return __awaiter(void 0, void 0, void 0, function () {
89
+ var token, endpoint, http, res;
90
+ return __generator(this, function (_a) {
91
+ switch (_a.label) {
92
+ case 0:
93
+ token = getConfigValue('token');
94
+ info("token: ".concat(token));
95
+ endpoint = 'http://localhost:3000';
96
+ return [4 /*yield*/, toolbox.http.create({ baseURL: endpoint })];
97
+ case 1:
98
+ http = _a.sent();
99
+ return [4 /*yield*/, http.post('/rest/cli/logout', {}, {
100
+ headers: {
101
+ authorization: token,
102
+ },
103
+ })];
104
+ case 2:
105
+ res = _a.sent();
106
+ info(res);
107
+ removeToken();
108
+ return [2 /*return*/];
109
+ }
110
+ });
111
+ }); };
112
+ var removeToken = function () {
113
+ setConfigValue('token', undefined);
114
+ };
115
+ return {
116
+ login: login,
117
+ logout: logout,
118
+ removeToken: removeToken,
119
+ };
120
+ };
121
+ exports.default = getAuth;
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9nZXRBdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaUVBQTJEO0FBRTNELDZFQUE2RTtBQUM3RSxJQUFNLE9BQU8sR0FBRyxVQUFDLE9BQXVCO0lBQ2hDLElBQUEsS0FBcUMsSUFBQSwwQkFBZ0IsRUFBQyxPQUFPLENBQUMsRUFBNUQsY0FBYyxvQkFBQSxFQUFFLGNBQWMsb0JBQThCLENBQUE7SUFFbEUsSUFBQSxLQUNFLE9BQU8sTUFEYSxFQUFiLElBQUksVUFBQSxFQUFFLEtBQUssV0FBRSxDQUNiO0lBRVgsSUFBTSxLQUFLLEdBQUc7Ozs7d0JBQ00scUJBQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7d0JBQ3pDLElBQUksRUFBRSxPQUFPO3dCQUNiLElBQUksRUFBRSxPQUFPO3dCQUNiLE9BQU8sRUFBRSxPQUFPO3FCQUNqQixDQUFDLEVBQUE7O29CQUpNLEtBQUssR0FBSyxDQUFBLFNBSWhCLENBQUEsTUFKVztvQkFLYixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7b0JBRVUscUJBQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQzVDLElBQUksRUFBRSxVQUFVOzRCQUNoQixJQUFJLEVBQUUsVUFBVTs0QkFDaEIsT0FBTyxFQUFFLFVBQVU7eUJBQ3BCLENBQUMsRUFBQTs7b0JBSk0sUUFBUSxHQUFLLENBQUEsU0FJbkIsQ0FBQSxTQUpjO29CQUtoQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7b0JBRVIsUUFBUSxHQUFHLHVCQUF1QixDQUFBO29CQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7b0JBRUQscUJBQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBQTs7b0JBQXZELElBQUksR0FBRyxTQUFnRDtvQkFDakQscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBTSxpQkFBaUIsRUFBRTs0QkFDbEQsS0FBSyxPQUFBOzRCQUNMLFFBQVEsVUFBQTs0QkFDUixJQUFJLEVBQUUsU0FBUzt5QkFDaEIsQ0FBQyxFQUFBOztvQkFKSSxHQUFHLEdBQUcsU0FJVjtvQkFFRixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO3dCQUN0QixLQUFLLENBQ0gscUVBQXFFLENBQ3RFLENBQUE7d0JBQ0QsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFBO3FCQUNmO29CQUVLLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQTtvQkFFakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO29CQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUE7b0JBRWpCLGNBQWMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBOzs7O1NBQzNDLENBQUE7SUFFRCxJQUFNLE1BQU0sR0FBRzs7Ozs7b0JBQ1AsS0FBSyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtvQkFDckMsSUFBSSxDQUFDLGlCQUFVLEtBQUssQ0FBRSxDQUFDLENBQUE7b0JBRWpCLFFBQVEsR0FBRyx1QkFBdUIsQ0FBQTtvQkFDM0IscUJBQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBQTs7b0JBQXZELElBQUksR0FBRyxTQUFnRDtvQkFDakQscUJBQU0sSUFBSSxDQUFDLElBQUksQ0FDekIsa0JBQWtCLEVBQ2xCLEVBQUUsRUFDRjs0QkFDRSxPQUFPLEVBQUU7Z0NBQ1AsYUFBYSxFQUFFLEtBQUs7NkJBQ3JCO3lCQUNGLENBQ0YsRUFBQTs7b0JBUkssR0FBRyxHQUFHLFNBUVg7b0JBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUVULFdBQVcsRUFBRSxDQUFBOzs7O1NBQ2QsQ0FBQTtJQUVELElBQU0sV0FBVyxHQUFHO1FBQ2xCLGNBQWMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDcEMsQ0FBQyxDQUFBO0lBRUQsT0FBTztRQUNMLEtBQUssT0FBQTtRQUNMLE1BQU0sUUFBQTtRQUNOLFdBQVcsYUFBQTtLQUNaLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxrQkFBZSxPQUFPLENBQUEifQ==