@sasjs/cli 4.11.0 → 4.11.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.
@@ -1,4 +1,4 @@
1
- import { Target, HttpsAgentOptions } from '@sasjs/utils/types';
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, httpsAgentOptions?: HttpsAgentOptions) => Promise<{
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, httpsAgentOptions).catch(function (err) {
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, '', httpsAgentOptions)];
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, httpsAgentOptions) { return __awaiter(void 0, void 0, void 0, function () {
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
- var _b;
175
- return __generator(this, function (_c) {
176
- switch (_c.label) {
171
+ return __generator(this, function (_b) {
172
+ switch (_b.label) {
177
173
  case 0:
178
- adapter = new node_1.default({
179
- serverUrl: target.serverUrl,
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 = _c.sent(), access_token = _a.access_token, refresh_token = _a.refresh_token;
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 config_1 = require("../../../utils/config");
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, config_1.findTargetInConfiguration)(targetName, targetScope)
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 (_b) {
262
- switch (_b.label) {
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 (!_b.sent()) return [3 /*break*/, 8];
264
+ if (!_a.sent()) return [3 /*break*/, 8];
268
265
  return [4 /*yield*/, authenticateCallback(target, insecure, scope)];
269
266
  case 2:
270
- target = _b.sent();
267
+ target = _a.sent();
271
268
  httpsAgentOptions = insecure
272
269
  ? __assign(__assign({}, target.httpsAgentOptions), { allowInsecureRequests: true, rejectUnauthorized: false }) : target.httpsAgentOptions;
273
- sasjs = new node_1.default({
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 = _b.sent();
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 = _b.sent();
295
- _b.label = 6;
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 = _b.sent();
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 = new node_1.default({
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 = new node_1.default({
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 = new node_1.default({
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.Success;
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 = new node_1.default({
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.Success;
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 = new node_1.default({
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.Success;
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 = new node_1.default({
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 = new node_1.default({
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 = new node_1.default({
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 false;
379
+ return undefined;
380
380
  };
@@ -368,7 +368,7 @@ describe('JobCommand', function () {
368
368
  }
369
369
  });
370
370
  }); });
371
- it('should set verbose to false if verbose flag is not present', function () { return __awaiter(void 0, void 0, void 0, function () {
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).toHaveBeenCalledWith(false);
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/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 = new node_1.default({
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, displayResult_1.displayError)('Request finished with errors.');
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, displayResult_1.displayError)('Error parsing response. JSON is expected.');
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, saveLog_1.saveLog)(currentRequestLog.logFile, logFile, jobPath || '', false)];
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, displayResult_1.displayError)(error, 'Result parsing failed.');
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, displayResult_1.displaySuccess)("Request finished. Output is stored at '".concat(outputPath, "'"));
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, displayResult_1.displayError)("There was a problem with writing output file. Data not present.");
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 = new node_1.default({
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) {
@@ -6,3 +6,4 @@ export declare const getStyleTags: (parsedHtml: JSDOM) => HTMLLinkElement[];
6
6
  export declare const getFaviconTags: (parsedHtml: JSDOM) => HTMLLinkElement[];
7
7
  export declare const getImgTags: (parsedHtml: JSDOM) => HTMLImageElement[];
8
8
  export declare const getSourceTags: (parsedHtml: JSDOM) => HTMLSourceElement[];
9
+ export declare const getManifestTags: (parsedHtml: JSDOM) => HTMLLinkElement[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSourceTags = exports.getImgTags = exports.getFaviconTags = exports.getStyleTags = exports.getStyleInPageTags = exports.getScriptTags = exports.getSasjsTags = void 0;
3
+ exports.getManifestTags = exports.getSourceTags = exports.getImgTags = exports.getFaviconTags = exports.getStyleTags = exports.getStyleInPageTags = exports.getScriptTags = exports.getSasjsTags = void 0;
4
4
  var getSasjsTags = function (parsedHtml) {
5
5
  return Array.from(parsedHtml.window.document.getElementsByTagName('sasjs'));
6
6
  };
@@ -29,3 +29,7 @@ var getSourceTags = function (parsedHtml) {
29
29
  return Array.from(parsedHtml.window.document.getElementsByTagName('source')).filter(function (s) { return s.getAttribute('src'); });
30
30
  };
31
31
  exports.getSourceTags = getSourceTags;
32
+ var getManifestTags = function (parsedHtml) {
33
+ return Array.from(parsedHtml.window.document.getElementsByTagName('link')).filter(function (s) { return s.getAttribute('rel') === 'manifest'; });
34
+ };
35
+ exports.getManifestTags = getManifestTags;
@@ -76,7 +76,7 @@ var updateSasjsTag_1 = require("./updateSasjsTag");
76
76
  var updateAllTags = function (parsedHtml, target, _a) {
77
77
  var webSourcePathFull = _a.webSourcePathFull, destinationPath = _a.destinationPath, serverType = _a.serverType, assetPathMap = _a.assetPathMap;
78
78
  return __awaiter(void 0, void 0, void 0, function () {
79
- var assetsNotFound, sasjsTags, scriptTags, styleExternalTags, styleInPageTags, styleTags, faviconTags, imgTags, sourceTags, srcTags, notFoundErrors;
79
+ var assetsNotFound, sasjsTags, scriptTags, styleExternalTags, styleInPageTags, styleTags, faviconTags, manifestTags, imgTags, sourceTags, srcTags, notFoundErrors;
80
80
  return __generator(this, function (_b) {
81
81
  switch (_b.label) {
82
82
  case 0:
@@ -122,6 +122,15 @@ var updateAllTags = function (parsedHtml, target, _a) {
122
122
  assetsNotFound.push(error);
123
123
  }
124
124
  });
125
+ manifestTags = (0, getTags_1.getManifestTags)(parsedHtml);
126
+ manifestTags.forEach(function (tag) {
127
+ try {
128
+ (0, updateLinkTag_1.updateLinkTag)(tag, assetPathMap);
129
+ }
130
+ catch (error) {
131
+ assetsNotFound.push(error);
132
+ }
133
+ });
125
134
  imgTags = (0, getTags_1.getImgTags)(parsedHtml);
126
135
  sourceTags = (0, getTags_1.getSourceTags)(parsedHtml);
127
136
  srcTags = __spreadArray(__spreadArray([], __read(imgTags), false), __read(sourceTags), false);
package/build/index.js CHANGED
@@ -1,4 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- require = require('esm')(module /*, options*/);
4
3
  require('./cli').cli(process.argv);
@@ -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 = new node_1.default({
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
- envFileContent = "CLIENT=".concat(client, "\nSECRET=").concat(secret, "\nACCESS_TOKEN=").concat(access_token, "\nREFRESH_TOKEN=").concat(refresh_token, "\n");
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 = new node_1.default({
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;
@@ -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 = new node_1.default({
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();
@@ -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 = new node_1.default({
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
@@ -11,7 +11,7 @@
11
11
  "start:ci": "npm run build && npm run set:permissions",
12
12
  "start": "nodemon --watch \"src/**/*\" --exec \"npm run build && npm run set:permissions\"",
13
13
  "set:permissions": "node -e \"require('fs').chmodSync('build/index.js', '755')\"",
14
- "build": "rimraf build && tsc -p . && npm run copy:files",
14
+ "build": "npx rimraf build && tsc -p . && npm run copy:files",
15
15
  "copy:files": "copyfiles -u 1 ./src/config.json ./build/ && npm run copy:doxy",
16
16
  "copy:doxy": "copyfiles -u 2 src/doxy/* build/doxy/",
17
17
  "test": "npm run test:mocked && npm run test:server",
@@ -51,14 +51,13 @@
51
51
  "access": "public"
52
52
  },
53
53
  "dependencies": {
54
- "@sasjs/adapter": "4.10.0",
55
- "@sasjs/core": "4.46.3",
56
- "@sasjs/lint": "2.3.1",
57
- "@sasjs/utils": "3.4.0",
54
+ "@sasjs/adapter": "4.11.3",
55
+ "@sasjs/core": "4.54.0",
56
+ "@sasjs/lint": "2.4.3",
57
+ "@sasjs/utils": "3.5.2",
58
58
  "adm-zip": "0.5.10",
59
59
  "chalk": "4.1.2",
60
60
  "dotenv": "16.0.3",
61
- "esm": "3.2.25",
62
61
  "find": "0.3.0",
63
62
  "js-base64": "3.7.5",
64
63
  "jsdom": "22.1.0",
@@ -68,17 +67,15 @@
68
67
  "node-graphviz": "0.1.1",
69
68
  "node-powershell": "5.0.1",
70
69
  "ora": "5.4.1",
71
- "rimraf": "3.0.2",
72
70
  "shelljs": "0.8.5",
73
71
  "ssl-root-cas": "1.3.1",
74
72
  "xml": "1.0.1",
75
73
  "yargs": "17.6.2"
76
74
  },
77
75
  "devDependencies": {
78
- "@babel/core": "7.21.0",
79
- "@babel/preset-env": "7.20.2",
80
- "@babel/preset-typescript": "7.21.0",
81
- "@compodoc/compodoc": "1.1.21",
76
+ "@babel/core": "7.22.0",
77
+ "@babel/preset-env": "7.22.0",
78
+ "@babel/preset-typescript": "7.22.5",
82
79
  "@types/adm-zip": "0.5.0",
83
80
  "@types/debug": "4.1.7",
84
81
  "@types/find": "0.2.1",
@@ -90,7 +87,7 @@
90
87
  "@types/shelljs": "0.8.9",
91
88
  "@types/url-parse": "1.4.4",
92
89
  "@types/xml": "1.0.6",
93
- "babel-jest": "29.4.3",
90
+ "babel-jest": "29.7.0",
94
91
  "copyfiles": "2.4.1",
95
92
  "jest": "29.4.3",
96
93
  "jest-cli": "29.4.3",
@@ -104,5 +101,5 @@
104
101
  "typescript": "4.9.5",
105
102
  "util": "0.12.4"
106
103
  },
107
- "version": "4.11.0"
104
+ "version": "4.11.2"
108
105
  }