@sasjs/cli 3.16.1 → 3.16.2

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.
@@ -75,7 +75,8 @@ var logger_1 = require("@sasjs/utils/logger");
75
75
  var types_1 = require("@sasjs/utils/types");
76
76
  var node_1 = __importStar(require("@sasjs/adapter/node"));
77
77
  var auth_1 = require("../../utils/auth");
78
- var utils_1 = require("@sasjs/utils");
78
+ var utils_1 = require("../../utils");
79
+ var utils_2 = require("@sasjs/utils");
79
80
  var input_1 = require("./internal/input");
80
81
  var targetScope_1 = require("../../types/targetScope");
81
82
  var saveConfig_1 = require("./internal/saveConfig");
@@ -114,7 +115,7 @@ var addCredential = function (target, insecure, targetScope) { return __awaiter(
114
115
  case types_1.ServerType.Sas9: return [3 /*break*/, 10];
115
116
  case types_1.ServerType.Sasjs: return [3 /*break*/, 15];
116
117
  }
117
- return [3 /*break*/, 21];
118
+ return [3 /*break*/, 22];
118
119
  case 4: return [4 /*yield*/, (0, input_1.getCredentialsInputForViya)(target.name)];
119
120
  case 5:
120
121
  _b = _j.sent(), client = _b.client, secret = _b.secret;
@@ -129,7 +130,7 @@ var addCredential = function (target, insecure, targetScope) { return __awaiter(
129
130
  case 8:
130
131
  target = new types_1.Target(__assign(__assign({}, target.toJson(false)), { authConfig: { client: client, secret: secret, access_token: access_token, refresh_token: refresh_token } }));
131
132
  _j.label = 9;
132
- case 9: return [3 /*break*/, 22];
133
+ case 9: return [3 /*break*/, 23];
133
134
  case 10: return [4 /*yield*/, (0, input_1.getCredentialsInputSas9)(target, targetScope)];
134
135
  case 11:
135
136
  _d = _j.sent(), userName = _d.userName, password = _d.password;
@@ -141,25 +142,31 @@ var addCredential = function (target, insecure, targetScope) { return __awaiter(
141
142
  case 13:
142
143
  target = new types_1.Target(__assign(__assign({}, target.toJson(false)), { authConfigSas9: { userName: userName, password: password } }));
143
144
  _j.label = 14;
144
- case 14: return [3 /*break*/, 22];
145
- case 15: return [4 /*yield*/, (0, input_1.getCredentialsInputSasjs)(target)];
145
+ case 14: return [3 /*break*/, 23];
146
+ case 15: return [4 /*yield*/, (0, utils_1.isSasJsServerInServerMode)(target)];
146
147
  case 16:
148
+ if (!(_j.sent())) {
149
+ process.logger.info('No need to authenticate against the sasjs server running in desktop mode.');
150
+ return [2 /*return*/, target];
151
+ }
152
+ return [4 /*yield*/, (0, input_1.getCredentialsInputSasjs)(target)];
153
+ case 17:
147
154
  client = (_j.sent()).client;
148
155
  return [4 /*yield*/, (0, exports.getTokens)(target, client, '', httpsAgentOptions)];
149
- case 17:
156
+ case 18:
150
157
  _e = _j.sent(), access_token = _e.access_token, refresh_token = _e.refresh_token;
151
- if (!(targetScope === targetScope_1.TargetScope.Local)) return [3 /*break*/, 19];
158
+ if (!(targetScope === targetScope_1.TargetScope.Local)) return [3 /*break*/, 20];
152
159
  return [4 /*yield*/, (0, exports.createEnvFileForSasjs)(target.name, client, access_token, refresh_token)];
153
- case 18:
154
- _j.sent();
155
- return [3 /*break*/, 20];
156
160
  case 19:
161
+ _j.sent();
162
+ return [3 /*break*/, 21];
163
+ case 20:
157
164
  target = new types_1.Target(__assign(__assign({}, target.toJson(false)), { authConfig: { client: client, secret: '', access_token: access_token, refresh_token: refresh_token } }));
158
- _j.label = 20;
159
- case 20: return [3 /*break*/, 22];
160
- case 21: throw new Error('Target contains invalid serverType. Possible types could be SASVIYA, SAS9 and SASJS');
161
- case 22: return [4 /*yield*/, (0, saveConfig_1.saveConfig)(targetScope, target, false, false)];
162
- case 23:
165
+ _j.label = 21;
166
+ case 21: return [3 /*break*/, 23];
167
+ case 22: throw new Error('Target contains invalid serverType. Possible types could be SASVIYA, SAS9 and SASJS');
168
+ case 23: return [4 /*yield*/, (0, saveConfig_1.saveConfig)(targetScope, target, false, false)];
169
+ case 24:
163
170
  filePath = _j.sent();
164
171
  (_h = process.logger) === null || _h === void 0 ? void 0 : _h.info("Target configuration has been saved to ".concat(filePath, " ."));
165
172
  return [2 /*return*/, target];
@@ -216,7 +223,7 @@ var createEnvFileForViya = function (targetName, client, secret, accessToken, re
216
223
  case 0:
217
224
  envFileContent = "CLIENT=".concat(client, "\nSECRET=").concat(secret, "\nACCESS_TOKEN=").concat(accessToken, "\nREFRESH_TOKEN=").concat(refreshToken, "\n");
218
225
  envFilePath = path_1.default.join(process.projectDir, ".env.".concat(targetName));
219
- return [4 /*yield*/, (0, utils_1.createFile)(envFilePath, envFileContent)];
226
+ return [4 /*yield*/, (0, utils_2.createFile)(envFilePath, envFileContent)];
220
227
  case 1:
221
228
  _b.sent();
222
229
  (_a = process.logger) === null || _a === void 0 ? void 0 : _a.success("Environment file saved at ".concat(envFilePath));
@@ -233,7 +240,7 @@ var createEnvFileForSas9 = function (targetName, userName, password) { return __
233
240
  case 0:
234
241
  envFileContent = "SAS_USERNAME=".concat(userName, "\nSAS_PASSWORD=").concat(password, "\n");
235
242
  envFilePath = path_1.default.join(process.projectDir, ".env.".concat(targetName));
236
- return [4 /*yield*/, (0, utils_1.createFile)(envFilePath, envFileContent)];
243
+ return [4 /*yield*/, (0, utils_2.createFile)(envFilePath, envFileContent)];
237
244
  case 1:
238
245
  _b.sent();
239
246
  (_a = process.logger) === null || _a === void 0 ? void 0 : _a.success("Environment file saved at ".concat(envFilePath));
@@ -250,7 +257,7 @@ var createEnvFileForSasjs = function (targetName, client, accessToken, refreshTo
250
257
  case 0:
251
258
  envFileContent = "CLIENT=".concat(client, "\nACCESS_TOKEN=").concat(accessToken, "\nREFRESH_TOKEN=").concat(refreshToken, "\n");
252
259
  envFilePath = path_1.default.join(process.projectDir, ".env.".concat(targetName));
253
- return [4 /*yield*/, (0, utils_1.createFile)(envFilePath, envFileContent)];
260
+ return [4 /*yield*/, (0, utils_2.createFile)(envFilePath, envFileContent)];
254
261
  case 1:
255
262
  _b.sent();
256
263
  (_a = process.logger) === null || _a === void 0 ? void 0 : _a.success("Environment file saved at ".concat(envFilePath));
@@ -53,6 +53,7 @@ var targetScope_1 = require("../../types/targetScope");
53
53
  var input_1 = require("./internal/input");
54
54
  var saveConfig_1 = require("./internal/saveConfig");
55
55
  var addCredential_1 = require("./addCredential");
56
+ var utils_1 = require("../../utils");
56
57
  /**
57
58
  * Creates new target/ updates current target(if found) for either local config or global config file.
58
59
  * @param {boolean} insecure- boolean to use insecure connection, default is false. lf true the server will not reject any connection which is not authorized with the list of supplied CAs
@@ -81,7 +82,7 @@ function addTarget(insecure) {
81
82
  case types_1.ServerType.SasViya: return [3 /*break*/, 5];
82
83
  case types_1.ServerType.Sasjs: return [3 /*break*/, 7];
83
84
  }
84
- return [3 /*break*/, 9];
85
+ return [3 /*break*/, 11];
85
86
  case 3: return [4 /*yield*/, (0, input_1.getAndValidateSas9Fields)(target, scope)];
86
87
  case 4:
87
88
  _f = _h.sent(), serverName = _f.serverName, repositoryName = _f.repositoryName, userName = _f.userName, password = _f.password;
@@ -92,7 +93,7 @@ function addTarget(insecure) {
92
93
  else {
93
94
  targetJson = __assign(__assign({}, targetJson), { authConfigSas9: { userName: userName, password: password } });
94
95
  }
95
- return [3 /*break*/, 10];
96
+ return [3 /*break*/, 12];
96
97
  case 5: return [4 /*yield*/, (0, input_1.getAndValidateSasViyaFields)(target, scope, serverUrl, insecure, addCredential_1.addCredential)];
97
98
  case 6:
98
99
  _g = _h.sent(), contextName = _g.contextName, updatedViyaTarget = _g.target;
@@ -100,18 +101,22 @@ function addTarget(insecure) {
100
101
  contextName: contextName
101
102
  };
102
103
  targetJson = __assign(__assign({}, updatedViyaTarget.toJson(false)), targetJson);
103
- return [3 /*break*/, 10];
104
- case 7: return [4 /*yield*/, (0, input_1.getAndValidateSasjsFields)(target, scope, insecure, addCredential_1.addCredential)];
104
+ return [3 /*break*/, 12];
105
+ case 7: return [4 /*yield*/, (0, utils_1.isSasJsServerInServerMode)(target)];
105
106
  case 8:
107
+ if (!_h.sent()) return [3 /*break*/, 10];
108
+ return [4 /*yield*/, (0, input_1.getAndValidateSasjsFields)(target, scope, insecure, addCredential_1.addCredential)];
109
+ case 9:
106
110
  updatedSasjsTarget = (_h.sent()).target;
107
111
  targetJson = updatedSasjsTarget.toJson(false);
108
- return [3 /*break*/, 10];
109
- case 9: throw new Error('Target contains invalid serverType. Possible types could be SASVIYA, SAS9 and SASJS');
110
- case 10: return [4 /*yield*/, (0, input_1.getIsDefault)()];
111
- case 11:
112
+ _h.label = 10;
113
+ case 10: return [3 /*break*/, 12];
114
+ case 11: throw new Error('Target contains invalid serverType. Possible types could be SASVIYA, SAS9 and SASJS');
115
+ case 12: return [4 /*yield*/, (0, input_1.getIsDefault)()];
116
+ case 13:
112
117
  isDefault = _h.sent();
113
118
  return [4 /*yield*/, (0, saveConfig_1.saveConfig)(scope, new types_1.Target(targetJson), isDefault, false)];
114
- case 12:
119
+ case 14:
115
120
  filePath = _h.sent();
116
121
  (_c = process.logger) === null || _c === void 0 ? void 0 : _c.info("Target configuration has been saved to ".concat(filePath));
117
122
  return [2 /*return*/, true];
@@ -73,6 +73,7 @@ var utils_1 = require("@sasjs/utils");
73
73
  var dotenv_1 = __importDefault(require("dotenv"));
74
74
  var path_1 = __importDefault(require("path"));
75
75
  var inputModule = __importStar(require("../internal/input"));
76
+ var utilsModule = __importStar(require("../../../utils/utils"));
76
77
  var addTarget_1 = require("../addTarget");
77
78
  var config_1 = require("../../../utils/config");
78
79
  var targetScope_1 = require("../../../types/targetScope");
@@ -192,6 +193,9 @@ describe('addTarget', function () {
192
193
  target: new utils_1.Target(commonFields)
193
194
  });
194
195
  });
196
+ jest
197
+ .spyOn(utilsModule, 'isSasJsServerInServerMode')
198
+ .mockImplementation(function () { return Promise.resolve(true); });
195
199
  return [4 /*yield*/, expect((0, addTarget_1.addTarget)(false)).resolves.toEqual(true)];
196
200
  case 1:
197
201
  _a.sent();
@@ -392,6 +396,9 @@ describe('addTarget', function () {
392
396
  target: new utils_1.Target(__assign(__assign({}, targetJson), commonFields))
393
397
  });
394
398
  });
399
+ jest
400
+ .spyOn(utilsModule, 'isSasJsServerInServerMode')
401
+ .mockImplementation(function () { return Promise.resolve(true); });
395
402
  return [4 /*yield*/, expect((0, addTarget_1.addTarget)(false)).resolves.toEqual(true)];
396
403
  case 2:
397
404
  _a.sent();
@@ -44,3 +44,4 @@ export declare const terminateProcess: (status: number) => never;
44
44
  */
45
45
  export declare const isSASjsProject: () => Promise<boolean>;
46
46
  export declare const getNodeModulePath: (module: string) => Promise<string>;
47
+ export declare const isSasJsServerInServerMode: (target: Target) => Promise<boolean>;
@@ -86,10 +86,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
86
86
  return (mod && mod.__esModule) ? mod : { "default": mod };
87
87
  };
88
88
  Object.defineProperty(exports, "__esModule", { value: true });
89
- exports.getNodeModulePath = exports.isSASjsProject = exports.terminateProcess = exports.prefixAppLoc = exports.loadEnvVariables = exports.displaySasjsRunnerError = exports.getAdapterInstance = exports.checkNodeVersion = exports.millisecondsToDdHhMmSs = exports.arrToObj = exports.parseLogLines = exports.executeShellScript = exports.getUniqServicesObj = exports.removeComments = exports.setupDoxygen = exports.setupGhooks = exports.setupGitIgnore = exports.setupNpmProject = exports.createTemplateApp = exports.createMinimalApp = exports.createAngularApp = exports.createReactApp = exports.diff = exports.inExistingProject = void 0;
89
+ exports.isSasJsServerInServerMode = exports.getNodeModulePath = exports.isSASjsProject = exports.terminateProcess = exports.prefixAppLoc = exports.loadEnvVariables = exports.displaySasjsRunnerError = exports.getAdapterInstance = exports.checkNodeVersion = exports.millisecondsToDdHhMmSs = exports.arrToObj = exports.parseLogLines = exports.executeShellScript = exports.getUniqServicesObj = exports.removeComments = exports.setupDoxygen = exports.setupGhooks = exports.setupGitIgnore = exports.setupNpmProject = exports.createTemplateApp = exports.createMinimalApp = exports.createAngularApp = exports.createReactApp = exports.diff = exports.inExistingProject = void 0;
90
90
  var shelljs_1 = __importDefault(require("shelljs"));
91
91
  var path_1 = __importDefault(require("path"));
92
92
  var ora_1 = __importDefault(require("ora"));
93
+ var axios_1 = __importDefault(require("axios"));
93
94
  var utils_1 = require("@sasjs/utils");
94
95
  var node_1 = __importDefault(require("@sasjs/adapter/node"));
95
96
  var displayResult_1 = require("./displayResult");
@@ -638,3 +639,23 @@ var getNodeModulePath = function (module) { return __awaiter(void 0, void 0, voi
638
639
  });
639
640
  }); };
640
641
  exports.getNodeModulePath = getNodeModulePath;
642
+ var isSasJsServerInServerMode = function (target) { return __awaiter(void 0, void 0, void 0, function () {
643
+ var res, error_1, message;
644
+ return __generator(this, function (_a) {
645
+ switch (_a.label) {
646
+ case 0:
647
+ _a.trys.push([0, 2, , 3]);
648
+ return [4 /*yield*/, axios_1.default.get("".concat(target.serverUrl, "/SASjsApi/info"))];
649
+ case 1:
650
+ res = _a.sent();
651
+ return [2 /*return*/, res.data.mode === 'server'];
652
+ case 2:
653
+ error_1 = _a.sent();
654
+ message = "An error occurred while fetching server info from ".concat(target.serverUrl, "/SASjsApi/info");
655
+ (0, displayResult_1.displayError)(error_1, message);
656
+ throw new Error(message);
657
+ case 3: return [2 /*return*/];
658
+ }
659
+ });
660
+ }); };
661
+ exports.isSasJsServerInServerMode = isSasJsServerInServerMode;
package/package.json CHANGED
@@ -96,5 +96,5 @@
96
96
  "typescript": "4.5.4",
97
97
  "util": "0.12.4"
98
98
  },
99
- "version": "3.16.1"
99
+ "version": "3.16.2"
100
100
  }