@sasjs/cli 4.11.0 → 4.11.1
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/build/commands/add/addCredential.d.ts +2 -2
- package/build/commands/add/addCredential.js +8 -17
- package/build/commands/add/internal/input.js +11 -19
- package/build/commands/context/contextCommand.js +15 -60
- package/build/commands/flow/flowCommand.js +1 -7
- package/build/commands/folder/folderCommand.js +2 -16
- package/build/commands/job/jobCommand.d.ts +1 -1
- package/build/commands/job/jobCommand.js +3 -3
- package/build/commands/job/spec/jobCommand.spec.js +2 -2
- package/build/commands/request/request.js +8 -19
- package/build/commands/shared/deployToSasViyaWithServicePack.js +1 -11
- package/build/utils/config.js +5 -12
- package/build/utils/test.js +1 -7
- package/build/utils/utils.js +2 -9
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Target
|
|
1
|
+
import { Target } from '@sasjs/utils/types';
|
|
2
2
|
import { TargetScope } from '../../types/targetScope';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a .env file for the specified target.
|
|
@@ -10,7 +10,7 @@ import { TargetScope } from '../../types/targetScope';
|
|
|
10
10
|
*/
|
|
11
11
|
export declare const addCredential: (target: Target, insecure: boolean, targetScope: TargetScope) => Promise<Target>;
|
|
12
12
|
export declare const validateTargetName: (targetName: string) => string;
|
|
13
|
-
export declare const getTokens: (target: Target, client: string, secret: string
|
|
13
|
+
export declare const getTokens: (target: Target, client: string, secret: string) => Promise<{
|
|
14
14
|
access_token: string;
|
|
15
15
|
refresh_token: string;
|
|
16
16
|
}>;
|
|
@@ -52,10 +52,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
exports.createEnvFileForSasjs = exports.createEnvFileForSas9 = exports.createEnvFileForViya = exports.getTokens = exports.validateTargetName = exports.addCredential = void 0;
|
|
54
54
|
var path_1 = __importDefault(require("path"));
|
|
55
|
-
var logger_1 = require("@sasjs/utils/logger");
|
|
56
55
|
var types_1 = require("@sasjs/utils/types");
|
|
57
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
58
|
-
var auth_1 = require("../../utils/auth");
|
|
59
56
|
var utils_1 = require("../../utils");
|
|
60
57
|
var utils_2 = require("@sasjs/utils");
|
|
61
58
|
var input_1 = require("./internal/input");
|
|
@@ -100,7 +97,7 @@ var addCredential = function (target, insecure, targetScope) { return __awaiter(
|
|
|
100
97
|
case 4: return [4 /*yield*/, (0, input_1.getCredentialsInputForViya)(target.name)];
|
|
101
98
|
case 5:
|
|
102
99
|
_b = _j.sent(), client = _b.client, secret = _b.secret;
|
|
103
|
-
return [4 /*yield*/, (0, exports.getTokens)(target, client, secret
|
|
100
|
+
return [4 /*yield*/, (0, exports.getTokens)(target, client, secret).catch(function (err) {
|
|
104
101
|
throw err;
|
|
105
102
|
})];
|
|
106
103
|
case 6:
|
|
@@ -135,7 +132,7 @@ var addCredential = function (target, insecure, targetScope) { return __awaiter(
|
|
|
135
132
|
return [4 /*yield*/, (0, input_1.getCredentialsInputSasjs)(target)];
|
|
136
133
|
case 17:
|
|
137
134
|
client = (_j.sent()).client;
|
|
138
|
-
return [4 /*yield*/, (0, exports.getTokens)(target, client, ''
|
|
135
|
+
return [4 /*yield*/, (0, exports.getTokens)(target, client, '')];
|
|
139
136
|
case 18:
|
|
140
137
|
_e = _j.sent(), access_token = _e.access_token, refresh_token = _e.refresh_token;
|
|
141
138
|
if (!(targetScope === targetScope_1.TargetScope.Local)) return [3 /*break*/, 20];
|
|
@@ -169,23 +166,17 @@ var validateTargetName = function (targetName) {
|
|
|
169
166
|
return targetName;
|
|
170
167
|
};
|
|
171
168
|
exports.validateTargetName = validateTargetName;
|
|
172
|
-
var getTokens = function (target, client, secret
|
|
169
|
+
var getTokens = function (target, client, secret) { return __awaiter(void 0, void 0, void 0, function () {
|
|
173
170
|
var adapter, _a, access_token, refresh_token;
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
switch (_c.label) {
|
|
171
|
+
return __generator(this, function (_b) {
|
|
172
|
+
switch (_b.label) {
|
|
177
173
|
case 0:
|
|
178
|
-
adapter =
|
|
179
|
-
|
|
180
|
-
serverType: target.serverType,
|
|
181
|
-
httpsAgentOptions: httpsAgentOptions,
|
|
182
|
-
debug: ((_b = process.logger) === null || _b === void 0 ? void 0 : _b.logLevel) === logger_1.LogLevel.Debug
|
|
183
|
-
});
|
|
184
|
-
return [4 /*yield*/, (0, auth_1.getNewAccessToken)(adapter, client, secret, target).catch(function (err) {
|
|
174
|
+
adapter = (0, utils_1.getSASjs)(target);
|
|
175
|
+
return [4 /*yield*/, (0, utils_1.getNewAccessToken)(adapter, client, secret, target).catch(function (err) {
|
|
185
176
|
throw err;
|
|
186
177
|
})];
|
|
187
178
|
case 1:
|
|
188
|
-
_a =
|
|
179
|
+
_a = _b.sent(), access_token = _a.access_token, refresh_token = _a.refresh_token;
|
|
189
180
|
return [2 /*return*/, { access_token: access_token, refresh_token: refresh_token }];
|
|
190
181
|
}
|
|
191
182
|
});
|
|
@@ -53,13 +53,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
53
53
|
exports.getIsDefault = exports.getDefaultValues = exports.getCredentialsInputSas9 = exports.getCredentialsInputSasjs = exports.getCredentialsInputForViya = exports.getAndValidateSasjsFields = exports.getAndValidateSasViyaFields = exports.shouldAuthenticate = exports.getAndValidateSas9Fields = exports.getAndValidateServerUrl = exports.getCommonFields = void 0;
|
|
54
54
|
var input_1 = require("@sasjs/utils/input");
|
|
55
55
|
var types_1 = require("@sasjs/utils/types");
|
|
56
|
-
var logger_1 = require("@sasjs/utils/logger");
|
|
57
56
|
var utils_1 = require("@sasjs/utils");
|
|
58
57
|
var path_1 = __importDefault(require("path"));
|
|
59
58
|
var dotenv_1 = __importDefault(require("dotenv"));
|
|
60
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
61
59
|
var targetScope_1 = require("../../../types/targetScope");
|
|
62
|
-
var
|
|
60
|
+
var utils_2 = require("../../../utils");
|
|
63
61
|
function getCommonFields() {
|
|
64
62
|
var _a;
|
|
65
63
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -205,7 +203,7 @@ function getAndValidateUpdateExisting(targetScope, targetName) {
|
|
|
205
203
|
var targetJson, errorMessage_1, choice;
|
|
206
204
|
return __generator(this, function (_b) {
|
|
207
205
|
switch (_b.label) {
|
|
208
|
-
case 0: return [4 /*yield*/, (0,
|
|
206
|
+
case 0: return [4 /*yield*/, (0, utils_2.findTargetInConfiguration)(targetName, targetScope)
|
|
209
207
|
.then(function (res) { return res.target.toJson(false); })
|
|
210
208
|
.catch(function (_) { return undefined; })];
|
|
211
209
|
case 1:
|
|
@@ -255,27 +253,21 @@ var shouldAuthenticate = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
255
253
|
}); }); };
|
|
256
254
|
exports.shouldAuthenticate = shouldAuthenticate;
|
|
257
255
|
function getAndValidateSasViyaFields(target, scope, serverUrl, insecure, authenticateCallback) {
|
|
258
|
-
var _a;
|
|
259
256
|
return __awaiter(this, void 0, void 0, function () {
|
|
260
257
|
var contextName, httpsAgentOptions, sasjs, contexts, contextNumberErrorMessage, contextNumber;
|
|
261
|
-
return __generator(this, function (
|
|
262
|
-
switch (
|
|
258
|
+
return __generator(this, function (_a) {
|
|
259
|
+
switch (_a.label) {
|
|
263
260
|
case 0:
|
|
264
261
|
contextName = 'SAS Job Execution compute context';
|
|
265
262
|
return [4 /*yield*/, (0, exports.shouldAuthenticate)()];
|
|
266
263
|
case 1:
|
|
267
|
-
if (!
|
|
264
|
+
if (!_a.sent()) return [3 /*break*/, 8];
|
|
268
265
|
return [4 /*yield*/, authenticateCallback(target, insecure, scope)];
|
|
269
266
|
case 2:
|
|
270
|
-
target =
|
|
267
|
+
target = _a.sent();
|
|
271
268
|
httpsAgentOptions = insecure
|
|
272
269
|
? __assign(__assign({}, target.httpsAgentOptions), { allowInsecureRequests: true, rejectUnauthorized: false }) : target.httpsAgentOptions;
|
|
273
|
-
sasjs =
|
|
274
|
-
serverUrl: serverUrl,
|
|
275
|
-
serverType: types_1.ServerType.SasViya,
|
|
276
|
-
httpsAgentOptions: httpsAgentOptions,
|
|
277
|
-
debug: ((_a = process.logger) === null || _a === void 0 ? void 0 : _a.logLevel) === logger_1.LogLevel.Debug
|
|
278
|
-
});
|
|
270
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
279
271
|
contexts = [];
|
|
280
272
|
if (!(scope === targetScope_1.TargetScope.Local)) return [3 /*break*/, 4];
|
|
281
273
|
dotenv_1.default.config({
|
|
@@ -283,7 +275,7 @@ function getAndValidateSasViyaFields(target, scope, serverUrl, insecure, authent
|
|
|
283
275
|
});
|
|
284
276
|
return [4 /*yield*/, sasjs.getComputeContexts(process.env.ACCESS_TOKEN)];
|
|
285
277
|
case 3:
|
|
286
|
-
contexts =
|
|
278
|
+
contexts = _a.sent();
|
|
287
279
|
return [3 /*break*/, 6];
|
|
288
280
|
case 4:
|
|
289
281
|
if (!target.authConfig || !target.authConfig.access_token) {
|
|
@@ -291,13 +283,13 @@ function getAndValidateSasViyaFields(target, scope, serverUrl, insecure, authent
|
|
|
291
283
|
}
|
|
292
284
|
return [4 /*yield*/, sasjs.getComputeContexts(target.authConfig.access_token)];
|
|
293
285
|
case 5:
|
|
294
|
-
contexts =
|
|
295
|
-
|
|
286
|
+
contexts = _a.sent();
|
|
287
|
+
_a.label = 6;
|
|
296
288
|
case 6:
|
|
297
289
|
contextNumberErrorMessage = "Context number must be between 1 and ".concat(contexts.length);
|
|
298
290
|
return [4 /*yield*/, (0, input_1.getChoice)('Please pick your SAS Viya execution context: ', contextNumberErrorMessage, contexts.map(function (c, i) { return ({ title: c.name, value: i }); }))];
|
|
299
291
|
case 7:
|
|
300
|
-
contextNumber =
|
|
292
|
+
contextNumber = _a.sent();
|
|
301
293
|
contextName = contexts[contextNumber].name;
|
|
302
294
|
return [2 /*return*/, { contextName: contextName, target: target }];
|
|
303
295
|
case 8: return [2 /*return*/, {
|
|
@@ -50,13 +50,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
50
50
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
54
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
55
|
-
};
|
|
56
53
|
var _a, _b;
|
|
57
54
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
55
|
exports.ContextCommand = void 0;
|
|
59
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
60
56
|
var utils_1 = require("@sasjs/utils");
|
|
61
57
|
var command_1 = require("../../types/command");
|
|
62
58
|
var targetCommand_1 = require("../../types/command/targetCommand");
|
|
@@ -217,12 +213,7 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
217
213
|
case 0: return [4 /*yield*/, this.getTargetInfo()];
|
|
218
214
|
case 1:
|
|
219
215
|
target = (_a.sent()).target;
|
|
220
|
-
sasjs =
|
|
221
|
-
serverUrl: target.serverUrl,
|
|
222
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
223
|
-
appLoc: target.appLoc,
|
|
224
|
-
serverType: target.serverType
|
|
225
|
-
});
|
|
216
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
226
217
|
return [4 /*yield*/, this.getConfig().catch(function (err) {
|
|
227
218
|
var _a;
|
|
228
219
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error("Unable to create context. Error fetching context configuration from ".concat(_this.parsed.source, ": "), err);
|
|
@@ -265,12 +256,7 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
265
256
|
case 0: return [4 /*yield*/, this.getTargetInfo()];
|
|
266
257
|
case 1:
|
|
267
258
|
target = (_a.sent()).target;
|
|
268
|
-
sasjs =
|
|
269
|
-
serverUrl: target.serverUrl,
|
|
270
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
271
|
-
appLoc: target.appLoc,
|
|
272
|
-
serverType: target.serverType
|
|
273
|
-
});
|
|
259
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
274
260
|
return [4 /*yield*/, (0, utils_2.getAuthConfig)(target).catch(function (err) {
|
|
275
261
|
var _a;
|
|
276
262
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error('Unable to create context. Error fetching auth config: ', err);
|
|
@@ -304,12 +290,7 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
304
290
|
case 0: return [4 /*yield*/, this.getTargetInfo()];
|
|
305
291
|
case 1:
|
|
306
292
|
target = (_a.sent()).target;
|
|
307
|
-
sasjs =
|
|
308
|
-
serverUrl: target.serverUrl,
|
|
309
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
310
|
-
appLoc: target.appLoc,
|
|
311
|
-
serverType: target.serverType
|
|
312
|
-
});
|
|
293
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
313
294
|
return [4 /*yield*/, this.getConfig().catch(function (err) {
|
|
314
295
|
var _a;
|
|
315
296
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error("Unable to edit context. Error fetching context configuration from ".concat(_this.parsed.source, ": "), err);
|
|
@@ -317,9 +298,8 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
317
298
|
})];
|
|
318
299
|
case 2:
|
|
319
300
|
config = _a.sent();
|
|
320
|
-
if (!config)
|
|
301
|
+
if (!config)
|
|
321
302
|
return [2 /*return*/, command_1.ReturnCode.InternalError];
|
|
322
|
-
}
|
|
323
303
|
return [4 /*yield*/, (0, utils_2.getAuthConfig)(target).catch(function (err) {
|
|
324
304
|
var _a;
|
|
325
305
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error('Unable to edit context. Error fetching auth config: ', err);
|
|
@@ -327,16 +307,11 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
327
307
|
})];
|
|
328
308
|
case 3:
|
|
329
309
|
authConfig = _a.sent();
|
|
330
|
-
if (!authConfig)
|
|
310
|
+
if (!authConfig)
|
|
331
311
|
return [2 /*return*/, command_1.ReturnCode.InternalError];
|
|
332
|
-
}
|
|
333
312
|
return [4 /*yield*/, (0, edit_1.edit)(this.parsed.contextName, config, sasjs, authConfig.access_token)
|
|
334
|
-
.then(function () {
|
|
335
|
-
return command_1.ReturnCode.
|
|
336
|
-
})
|
|
337
|
-
.catch(function () {
|
|
338
|
-
return command_1.ReturnCode.InternalError;
|
|
339
|
-
})];
|
|
313
|
+
.then(function () { return command_1.ReturnCode.Success; })
|
|
314
|
+
.catch(function () { return command_1.ReturnCode.InternalError; })];
|
|
340
315
|
case 4:
|
|
341
316
|
returnCode = _a.sent();
|
|
342
317
|
return [2 /*return*/, returnCode];
|
|
@@ -352,12 +327,7 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
352
327
|
case 0: return [4 /*yield*/, this.getTargetInfo()];
|
|
353
328
|
case 1:
|
|
354
329
|
target = (_a.sent()).target;
|
|
355
|
-
sasjs =
|
|
356
|
-
serverUrl: target.serverUrl,
|
|
357
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
358
|
-
appLoc: target.appLoc,
|
|
359
|
-
serverType: target.serverType
|
|
360
|
-
});
|
|
330
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
361
331
|
return [4 /*yield*/, (0, utils_2.getAuthConfig)(target).catch(function (err) {
|
|
362
332
|
var _a;
|
|
363
333
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error('Unable to create context. Error fetching auth config: ', err);
|
|
@@ -365,16 +335,11 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
365
335
|
})];
|
|
366
336
|
case 2:
|
|
367
337
|
authConfig = _a.sent();
|
|
368
|
-
if (!authConfig)
|
|
338
|
+
if (!authConfig)
|
|
369
339
|
return [2 /*return*/, command_1.ReturnCode.InternalError];
|
|
370
|
-
}
|
|
371
340
|
return [4 /*yield*/, (0, export_1.exportContext)(this.parsed.contextName, sasjs, authConfig.access_token)
|
|
372
|
-
.then(function () {
|
|
373
|
-
return command_1.ReturnCode.
|
|
374
|
-
})
|
|
375
|
-
.catch(function () {
|
|
376
|
-
return command_1.ReturnCode.InternalError;
|
|
377
|
-
})];
|
|
341
|
+
.then(function () { return command_1.ReturnCode.Success; })
|
|
342
|
+
.catch(function () { return command_1.ReturnCode.InternalError; })];
|
|
378
343
|
case 3:
|
|
379
344
|
returnCode = _a.sent();
|
|
380
345
|
return [2 /*return*/, returnCode];
|
|
@@ -395,12 +360,7 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
395
360
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error("'context list' command is only supported for SAS Viya build targets.\nPlease try again with a different target.");
|
|
396
361
|
return [2 /*return*/, command_1.ReturnCode.InternalError];
|
|
397
362
|
}
|
|
398
|
-
sasjs =
|
|
399
|
-
serverUrl: target.serverUrl,
|
|
400
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
401
|
-
appLoc: target.appLoc,
|
|
402
|
-
serverType: target.serverType
|
|
403
|
-
});
|
|
363
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
404
364
|
return [4 /*yield*/, (0, utils_2.getAuthConfig)(target).catch(function (err) {
|
|
405
365
|
var _a;
|
|
406
366
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error('Unable to create context. Error fetching auth config: ', err);
|
|
@@ -408,16 +368,11 @@ var ContextCommand = /** @class */ (function (_super) {
|
|
|
408
368
|
})];
|
|
409
369
|
case 2:
|
|
410
370
|
authConfig = _b.sent();
|
|
411
|
-
if (!authConfig)
|
|
371
|
+
if (!authConfig)
|
|
412
372
|
return [2 /*return*/, command_1.ReturnCode.InternalError];
|
|
413
|
-
}
|
|
414
373
|
return [4 /*yield*/, (0, list_1.list)(target, sasjs, authConfig)
|
|
415
|
-
.then(function () {
|
|
416
|
-
return command_1.ReturnCode.
|
|
417
|
-
})
|
|
418
|
-
.catch(function () {
|
|
419
|
-
return command_1.ReturnCode.InternalError;
|
|
420
|
-
})];
|
|
374
|
+
.then(function () { return command_1.ReturnCode.Success; })
|
|
375
|
+
.catch(function () { return command_1.ReturnCode.InternalError; })];
|
|
421
376
|
case 3:
|
|
422
377
|
returnCode = _b.sent();
|
|
423
378
|
return [2 /*return*/, returnCode];
|
|
@@ -56,7 +56,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
56
56
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
57
|
exports.FlowCommand = void 0;
|
|
58
58
|
var path_1 = __importDefault(require("path"));
|
|
59
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
60
59
|
var command_1 = require("../../types/command");
|
|
61
60
|
var targetCommand_1 = require("../../types/command/targetCommand");
|
|
62
61
|
var utils_1 = require("../../utils");
|
|
@@ -121,12 +120,7 @@ var FlowCommand = /** @class */ (function (_super) {
|
|
|
121
120
|
case 0: return [4 /*yield*/, this.getTargetInfo()];
|
|
122
121
|
case 1:
|
|
123
122
|
target = (_b.sent()).target;
|
|
124
|
-
sasjs =
|
|
125
|
-
serverUrl: target.serverUrl,
|
|
126
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
127
|
-
appLoc: target.appLoc,
|
|
128
|
-
serverType: target.serverType
|
|
129
|
-
});
|
|
123
|
+
sasjs = (0, utils_1.getSASjs)(target);
|
|
130
124
|
return [4 /*yield*/, (0, utils_1.getAuthConfig)(target).catch(function (err) {
|
|
131
125
|
(0, utils_1.displayError)(err, 'Error while getting access token.');
|
|
132
126
|
return null;
|
|
@@ -50,12 +50,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
50
50
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
54
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
55
|
-
};
|
|
56
53
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
54
|
exports.FolderCommand = void 0;
|
|
58
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
59
55
|
var utils_1 = require("@sasjs/utils");
|
|
60
56
|
var command_1 = require("../../types/command");
|
|
61
57
|
var targetCommand_1 = require("../../types/command/targetCommand");
|
|
@@ -128,12 +124,7 @@ var FolderCommand = /** @class */ (function (_super) {
|
|
|
128
124
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error("This command is only supported for SAS Viya targets.\nPlease try again with a different target.");
|
|
129
125
|
return [2 /*return*/, command_1.ReturnCode.InternalError];
|
|
130
126
|
}
|
|
131
|
-
sasjs =
|
|
132
|
-
serverUrl: target.serverUrl,
|
|
133
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
134
|
-
appLoc: target.appLoc,
|
|
135
|
-
serverType: target.serverType
|
|
136
|
-
});
|
|
127
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
137
128
|
return [4 /*yield*/, (0, utils_2.getAuthConfig)(target).catch(function (err) {
|
|
138
129
|
var _a;
|
|
139
130
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error('Unable to execute folder command. Error fetching auth config: ', err);
|
|
@@ -255,12 +246,7 @@ var FolderCommand = /** @class */ (function (_super) {
|
|
|
255
246
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error("'folder move' command is only supported for SAS Viya build targets.\nPlease try again with a different target.");
|
|
256
247
|
return [2 /*return*/, command_1.ReturnCode.InternalError];
|
|
257
248
|
}
|
|
258
|
-
sasjs =
|
|
259
|
-
serverUrl: target.serverUrl,
|
|
260
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
261
|
-
appLoc: target.appLoc,
|
|
262
|
-
serverType: target.serverType
|
|
263
|
-
});
|
|
249
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
264
250
|
return [4 /*yield*/, (0, utils_2.getAuthConfig)(target).catch(function (err) {
|
|
265
251
|
var _a;
|
|
266
252
|
(_a = process.logger) === null || _a === void 0 ? void 0 : _a.error('Unable to list folder. Error fetching auth config: ', err);
|
|
@@ -3,7 +3,7 @@ import { ReturnCode } from '../../types/command';
|
|
|
3
3
|
import { TargetCommand } from '../../types/command/targetCommand';
|
|
4
4
|
export declare class JobCommand extends TargetCommand {
|
|
5
5
|
private jobSubCommands;
|
|
6
|
-
private verbose
|
|
6
|
+
private verbose?;
|
|
7
7
|
private sasjs;
|
|
8
8
|
private authConfig?;
|
|
9
9
|
constructor(args: string[]);
|
|
@@ -144,7 +144,6 @@ var JobCommand = /** @class */ (function (_super) {
|
|
|
144
144
|
examples: examples,
|
|
145
145
|
syntax: syntax
|
|
146
146
|
}) || this;
|
|
147
|
-
_this.verbose = false;
|
|
148
147
|
_this.sasjs = new node_1.default();
|
|
149
148
|
_this.jobSubCommands = jobSubCommands;
|
|
150
149
|
_this.verbose = getVerbose(args, _this.parsed.verbose);
|
|
@@ -187,8 +186,9 @@ var JobCommand = /** @class */ (function (_super) {
|
|
|
187
186
|
return [2 /*return*/, command_1.ReturnCode.InternalError];
|
|
188
187
|
}
|
|
189
188
|
this.sasjs = sasjs;
|
|
190
|
-
this.sasjs.setVerboseMode(this.verbose);
|
|
191
189
|
this.authConfig = authConfig || authConfigSas9;
|
|
190
|
+
if (this.verbose)
|
|
191
|
+
this.sasjs.setVerboseMode(this.verbose);
|
|
192
192
|
_b = target.serverType;
|
|
193
193
|
switch (_b) {
|
|
194
194
|
case utils_1.ServerType.SasViya: return [3 /*break*/, 3];
|
|
@@ -376,5 +376,5 @@ var getVerbose = function (args, verboseArg) {
|
|
|
376
376
|
return verboseArg;
|
|
377
377
|
return true;
|
|
378
378
|
}
|
|
379
|
-
return
|
|
379
|
+
return undefined;
|
|
380
380
|
};
|
|
@@ -368,7 +368,7 @@ describe('JobCommand', function () {
|
|
|
368
368
|
}
|
|
369
369
|
});
|
|
370
370
|
}); });
|
|
371
|
-
it('should
|
|
371
|
+
it('should not call @sasjs/adapter/setVerboseMode method if verbose flag is not present', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
372
372
|
var sasjs;
|
|
373
373
|
return __generator(this, function (_a) {
|
|
374
374
|
switch (_a.label) {
|
|
@@ -387,7 +387,7 @@ describe('JobCommand', function () {
|
|
|
387
387
|
return [4 /*yield*/, executeCommandWrapper([jobPath])];
|
|
388
388
|
case 1:
|
|
389
389
|
_a.sent();
|
|
390
|
-
expect(sasjs.setVerboseMode).
|
|
390
|
+
expect(sasjs.setVerboseMode).not.toHaveBeenCalled();
|
|
391
391
|
return [2 /*return*/];
|
|
392
392
|
}
|
|
393
393
|
});
|
|
@@ -41,12 +41,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.runSasJob = void 0;
|
|
43
43
|
var path_1 = __importDefault(require("path"));
|
|
44
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
45
44
|
var utils_1 = require("@sasjs/utils");
|
|
46
|
-
var displayResult_1 = require("../../utils/displayResult");
|
|
47
45
|
var types_1 = require("@sasjs/utils/types");
|
|
48
|
-
var utils_2 = require("../../utils
|
|
49
|
-
var saveLog_1 = require("../../utils/saveLog");
|
|
46
|
+
var utils_2 = require("../../utils");
|
|
50
47
|
function runSasJob(target, isLocal, sasJobLocation, dataFilePath, configFilePath, authConfig, logFile, jobPath, outputPathParam) {
|
|
51
48
|
return __awaiter(this, void 0, void 0, function () {
|
|
52
49
|
var dataJson, configJson, dataFile, configFile, sas9CredentialsError, sasjs, result;
|
|
@@ -102,15 +99,7 @@ function runSasJob(target, isLocal, sasJobLocation, dataFilePath, configFilePath
|
|
|
102
99
|
}
|
|
103
100
|
configJson.password = (0, utils_1.decodeFromBase64)(configJson.password);
|
|
104
101
|
}
|
|
105
|
-
sasjs =
|
|
106
|
-
serverUrl: target.serverUrl,
|
|
107
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
108
|
-
appLoc: target.appLoc,
|
|
109
|
-
serverType: target.serverType,
|
|
110
|
-
contextName: target.contextName,
|
|
111
|
-
useComputeApi: false,
|
|
112
|
-
debug: true
|
|
113
|
-
});
|
|
102
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
114
103
|
return [4 /*yield*/, sasjs
|
|
115
104
|
.request(sasJobLocation, dataJson, configJson, undefined, authConfig)
|
|
116
105
|
.then(function (res) { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -119,7 +108,7 @@ function runSasJob(target, isLocal, sasJobLocation, dataFilePath, configFilePath
|
|
|
119
108
|
switch (_a.label) {
|
|
120
109
|
case 0:
|
|
121
110
|
if (!((res && res.errorCode) || (res && res.error))) return [3 /*break*/, 2];
|
|
122
|
-
(0,
|
|
111
|
+
(0, utils_2.displayError)('Request finished with errors.');
|
|
123
112
|
return [4 /*yield*/, saveLogFile(sasjs, sasJobLocation, logFile, jobPath)];
|
|
124
113
|
case 1:
|
|
125
114
|
_a.sent();
|
|
@@ -145,7 +134,7 @@ function runSasJob(target, isLocal, sasJobLocation, dataFilePath, configFilePath
|
|
|
145
134
|
output = JSON.parse(res);
|
|
146
135
|
}
|
|
147
136
|
catch (error) {
|
|
148
|
-
(0,
|
|
137
|
+
(0, utils_2.displayError)('Error parsing response. JSON is expected.');
|
|
149
138
|
}
|
|
150
139
|
}
|
|
151
140
|
else {
|
|
@@ -201,7 +190,7 @@ var saveLogFile = function (sasjs, sasJobLocation, logFile, jobPath) { return __
|
|
|
201
190
|
;
|
|
202
191
|
logFile = path_1.default.join(logPath, "".concat(filename, "-").concat(timestamp, ".log"));
|
|
203
192
|
_a.label = 2;
|
|
204
|
-
case 2: return [4 /*yield*/, (0,
|
|
193
|
+
case 2: return [4 /*yield*/, (0, utils_2.saveLog)(currentRequestLog.logFile, logFile, jobPath || '', false)];
|
|
205
194
|
case 3:
|
|
206
195
|
_a.sent();
|
|
207
196
|
_a.label = 4;
|
|
@@ -253,7 +242,7 @@ var writeOutput = function (outputPathParam, output, sasJobLocation) { return __
|
|
|
253
242
|
outputString = JSON.stringify(output, null, 2);
|
|
254
243
|
}
|
|
255
244
|
catch (error) {
|
|
256
|
-
(0,
|
|
245
|
+
(0, utils_2.displayError)(error, 'Result parsing failed.');
|
|
257
246
|
return [2 /*return*/];
|
|
258
247
|
}
|
|
259
248
|
}
|
|
@@ -264,10 +253,10 @@ var writeOutput = function (outputPathParam, output, sasJobLocation) { return __
|
|
|
264
253
|
return [4 /*yield*/, (0, utils_1.createFile)(outputPath, outputString)];
|
|
265
254
|
case 5:
|
|
266
255
|
_a.sent();
|
|
267
|
-
(0,
|
|
256
|
+
(0, utils_2.displaySuccess)("Request finished. Output is stored at '".concat(outputPath, "'"));
|
|
268
257
|
return [3 /*break*/, 7];
|
|
269
258
|
case 6:
|
|
270
|
-
(0,
|
|
259
|
+
(0, utils_2.displayError)("There was a problem with writing output file. Data not present.");
|
|
271
260
|
_a.label = 7;
|
|
272
261
|
case 7: return [2 /*return*/];
|
|
273
262
|
}
|
|
@@ -35,12 +35,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
39
|
exports.deployToSasViyaWithServicePack = void 0;
|
|
43
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
44
40
|
var utils_1 = require("@sasjs/utils");
|
|
45
41
|
var utils_2 = require("../../utils");
|
|
46
42
|
function deployToSasViyaWithServicePack(jsonFilePath, target, isLocal, isForced) {
|
|
@@ -65,13 +61,7 @@ function deployToSasViyaWithServicePack(jsonFilePath, target, isLocal, isForced)
|
|
|
65
61
|
if (!access_token) {
|
|
66
62
|
throw new Error("Deployment failed. Request is not authenticated.\nPlease add the following variables to your .env".concat(isLocal ? ".".concat(target.name) : '', " file:\nCLIENT, SECRET, ACCESS_TOKEN, REFRESH_TOKEN"));
|
|
67
63
|
}
|
|
68
|
-
sasjs =
|
|
69
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
70
|
-
appLoc: target.appLoc,
|
|
71
|
-
serverType: target.serverType,
|
|
72
|
-
serverUrl: target.serverUrl,
|
|
73
|
-
useComputeApi: true
|
|
74
|
-
});
|
|
64
|
+
sasjs = (0, utils_2.getSASjs)(target);
|
|
75
65
|
return [4 /*yield*/, sasjs
|
|
76
66
|
.deployServicePack(jsonObject, undefined, undefined, access_token, isForced)
|
|
77
67
|
.catch(function (err) {
|
package/build/utils/config.js
CHANGED
|
@@ -845,11 +845,7 @@ function getAuthConfig(target) {
|
|
|
845
845
|
throw new Error("Client secret was not found.\n Please make sure that the 'secret' property is set in your local .env file or in the correct target authConfig in your global ~".concat(path_1.default.sep, ".sasjsrc file."));
|
|
846
846
|
}
|
|
847
847
|
if (!(0, auth_1.isAccessTokenExpiring)(access_token)) return [3 /*break*/, 8];
|
|
848
|
-
sasjs =
|
|
849
|
-
serverUrl: target.serverUrl,
|
|
850
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
851
|
-
serverType: target.serverType
|
|
852
|
-
});
|
|
848
|
+
sasjs = getSASjs(target);
|
|
853
849
|
tokens = void 0;
|
|
854
850
|
if (!(0, auth_1.isRefreshTokenExpiring)(refresh_token)) return [3 /*break*/, 4];
|
|
855
851
|
return [4 /*yield*/, (0, auth_1.getNewAccessToken)(sasjs, client, secret, target)];
|
|
@@ -879,7 +875,7 @@ function getAuthConfig(target) {
|
|
|
879
875
|
}
|
|
880
876
|
exports.getAuthConfig = getAuthConfig;
|
|
881
877
|
var saveTokens = function (targetName, client, secret, access_token, refresh_token) { return __awaiter(void 0, void 0, void 0, function () {
|
|
882
|
-
var isLocalTarget, envFileContent, envFilePath, globalConfig, target, targetJson;
|
|
878
|
+
var isLocalTarget, VERBOSE, envFileContent, envFilePath, globalConfig, target, targetJson;
|
|
883
879
|
var _a, _b, _c;
|
|
884
880
|
return __generator(this, function (_d) {
|
|
885
881
|
switch (_d.label) {
|
|
@@ -893,7 +889,8 @@ var saveTokens = function (targetName, client, secret, access_token, refresh_tok
|
|
|
893
889
|
case 1:
|
|
894
890
|
isLocalTarget = _d.sent();
|
|
895
891
|
if (!isLocalTarget) return [3 /*break*/, 3];
|
|
896
|
-
|
|
892
|
+
VERBOSE = process.env.VERBOSE;
|
|
893
|
+
envFileContent = "CLIENT=".concat(client, "\nSECRET=").concat(secret, "\nACCESS_TOKEN=").concat(access_token, "\nREFRESH_TOKEN=").concat(refresh_token, "\n").concat(VERBOSE ? 'VERBOSE=' + VERBOSE + '\n' : '');
|
|
897
894
|
envFilePath = path_1.default.join(process.projectDir, ".env.".concat(targetName));
|
|
898
895
|
return [4 /*yield*/, (0, utils_1.createFile)(envFilePath, envFileContent)];
|
|
899
896
|
case 2:
|
|
@@ -983,11 +980,7 @@ function getAccessToken(target, checkIfExpiring) {
|
|
|
983
980
|
throw new Error("A valid access token was not found.\nPlease provide an access token in the access_token property in your .env file or as part of the authInfo in your target configuration (sasjsconfig.json).");
|
|
984
981
|
}
|
|
985
982
|
if (!(checkIfExpiring && (0, auth_1.isAccessTokenExpiring)(accessToken))) return [3 /*break*/, 7];
|
|
986
|
-
sasjs =
|
|
987
|
-
serverUrl: target.serverUrl,
|
|
988
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
989
|
-
serverType: target.serverType
|
|
990
|
-
});
|
|
983
|
+
sasjs = getSASjs(target);
|
|
991
984
|
client = target.authConfig && target.authConfig.client
|
|
992
985
|
? target.authConfig.client
|
|
993
986
|
: process.env.CLIENT;
|
package/build/utils/test.js
CHANGED
|
@@ -64,7 +64,6 @@ var builtFiles_1 = require("./fileStructures/builtFiles");
|
|
|
64
64
|
var builtFilesCustom1_1 = require("./fileStructures/builtFilesCustom1");
|
|
65
65
|
var create_1 = require("../commands/create/create");
|
|
66
66
|
var setConstants_1 = require("./setConstants");
|
|
67
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
68
67
|
var createTestApp = function (parentFolder, appName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
69
68
|
var _a;
|
|
70
69
|
return __generator(this, function (_b) {
|
|
@@ -160,12 +159,7 @@ var removeTestServerFolder = function (folderPath, target) { return __awaiter(vo
|
|
|
160
159
|
if (target.serverType === types_1.ServerType.Sas9) {
|
|
161
160
|
return [2 /*return*/];
|
|
162
161
|
}
|
|
163
|
-
sasjs =
|
|
164
|
-
serverUrl: target.serverUrl,
|
|
165
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
166
|
-
appLoc: target.appLoc,
|
|
167
|
-
serverType: target.serverType
|
|
168
|
-
});
|
|
162
|
+
sasjs = (0, config_1.getSASjs)(target);
|
|
169
163
|
return [4 /*yield*/, (0, config_1.getAccessToken)(target)];
|
|
170
164
|
case 1:
|
|
171
165
|
accessToken = _a.sent();
|
package/build/utils/utils.js
CHANGED
|
@@ -97,10 +97,10 @@ var path_1 = __importDefault(require("path"));
|
|
|
97
97
|
var ora_1 = __importDefault(require("ora"));
|
|
98
98
|
var axios_1 = __importDefault(require("axios"));
|
|
99
99
|
var utils_1 = require("@sasjs/utils");
|
|
100
|
-
var node_1 = __importDefault(require("@sasjs/adapter/node"));
|
|
101
100
|
var displayResult_1 = require("./displayResult");
|
|
102
101
|
var dotenv_1 = __importDefault(require("dotenv"));
|
|
103
102
|
var adm_zip_1 = __importDefault(require("adm-zip"));
|
|
103
|
+
var config_1 = require("./config");
|
|
104
104
|
function inExistingProject(folderPath) {
|
|
105
105
|
return __awaiter(this, void 0, void 0, function () {
|
|
106
106
|
var packageJsonExists;
|
|
@@ -587,14 +587,7 @@ function getAdapterInstance(target) {
|
|
|
587
587
|
if (!target.serverType) {
|
|
588
588
|
throw new Error("Unable to create SASjs adapter instance: Target ".concat(target.name, " is missing a `serverType`."));
|
|
589
589
|
}
|
|
590
|
-
var sasjs =
|
|
591
|
-
serverUrl: target.serverUrl,
|
|
592
|
-
serverType: target.serverType,
|
|
593
|
-
httpsAgentOptions: target.httpsAgentOptions,
|
|
594
|
-
contextName: target.contextName,
|
|
595
|
-
useComputeApi: true,
|
|
596
|
-
debug: process.env.LOG_LEVEL === utils_1.LogLevel.Debug
|
|
597
|
-
});
|
|
590
|
+
var sasjs = (0, config_1.getSASjs)(target);
|
|
598
591
|
return sasjs;
|
|
599
592
|
}
|
|
600
593
|
exports.getAdapterInstance = getAdapterInstance;
|
package/package.json
CHANGED
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@sasjs/adapter": "4.10.
|
|
54
|
+
"@sasjs/adapter": "4.10.1",
|
|
55
55
|
"@sasjs/core": "4.46.3",
|
|
56
56
|
"@sasjs/lint": "2.3.1",
|
|
57
57
|
"@sasjs/utils": "3.4.0",
|
|
@@ -104,5 +104,5 @@
|
|
|
104
104
|
"typescript": "4.9.5",
|
|
105
105
|
"util": "0.12.4"
|
|
106
106
|
},
|
|
107
|
-
"version": "4.11.
|
|
107
|
+
"version": "4.11.1"
|
|
108
108
|
}
|