@sasjs/cli 3.16.1 → 3.17.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.js +25 -18
- package/build/commands/add/addTarget.js +14 -9
- package/build/commands/add/spec/addTarget.spec.js +7 -0
- package/build/commands/build/build.js +42 -40
- package/build/commands/build/spec/build.spec.js +51 -0
- package/build/commands/build/spec/{cb.spec.server.d.ts → cb.spec.server.viya.d.ts} +0 -0
- package/build/commands/build/spec/{cb.spec.server.js → cb.spec.server.viya.js} +1 -1
- package/build/commands/compile/internal/loadDependencies.js +29 -21
- package/build/commands/deploy/spec/cbd.spec.js +22 -18
- package/build/commands/deploy/spec/{cbd.spec.server.d.ts → cbd.spec.server.viya.d.ts} +0 -0
- package/build/commands/deploy/spec/cbd.spec.server.viya.js +334 -0
- package/build/commands/flow/spec/{flow.spec.server.d.ts → flow.spec.server.viya.d.ts} +0 -0
- package/build/commands/flow/spec/{flow.spec.server.js → flow.spec.server.viya.js} +39 -55
- package/build/commands/folder/spec/{folder.spec.server.d.ts → folder.spec.server.viya.d.ts} +0 -0
- package/build/commands/folder/spec/{folder.spec.server.js → folder.spec.server.viya.js} +17 -23
- package/build/commands/init/init.js +7 -10
- package/build/commands/init/spec/{init.spec.server.d.ts → init.spec.d.ts} +0 -0
- package/build/commands/init/spec/{init.spec.server.js → init.spec.js} +0 -0
- package/build/commands/job/spec/{job.spec.server.d.ts → job.spec.server.viya.d.ts} +0 -0
- package/build/commands/job/spec/{job.spec.server.js → job.spec.server.viya.js} +45 -56
- package/build/commands/request/request.js +3 -2
- package/build/commands/request/spec/{request.spec.server.d.ts → request.spec.server.sas9.d.ts} +0 -0
- package/build/commands/request/spec/request.spec.server.sas9.js +283 -0
- package/build/commands/{run/spec/run.spec.server.d.ts → request/spec/request.spec.server.viya.d.ts} +0 -0
- package/build/commands/request/spec/request.spec.server.viya.js +460 -0
- package/build/commands/request/spec/utils.d.ts +23 -0
- package/build/commands/request/spec/utils.js +87 -0
- package/build/commands/{servicepack/spec/servicepack.spec.server.d.ts → run/spec/run.spec.server.sas9.d.ts} +0 -0
- package/build/commands/run/spec/run.spec.server.sas9.js +115 -0
- package/build/commands/run/spec/run.spec.server.viya.d.ts +1 -0
- package/build/commands/run/spec/{run.spec.server.js → run.spec.server.viya.js} +32 -101
- package/build/commands/servicepack/spec/servicepack.spec.server.viya.d.ts +1 -0
- package/build/commands/servicepack/spec/{servicepack.spec.server.js → servicepack.spec.server.viya.js} +1 -1
- package/build/utils/test.js +4 -2
- package/build/utils/utils.d.ts +1 -7
- package/build/utils/utils.js +113 -114
- package/package.json +4 -3
- package/build/commands/deploy/spec/cbd.spec.server.js +0 -331
- package/build/commands/request/spec/request.spec.server.js +0 -709
- package/build/utils/spec/removeComments.spec.d.ts +0 -1
- package/build/utils/spec/removeComments.spec.js +0 -47
|
@@ -0,0 +1,115 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
var path_1 = __importDefault(require("path"));
|
|
43
|
+
var __1 = require("../..");
|
|
44
|
+
var utils_1 = require("@sasjs/utils");
|
|
45
|
+
var test_1 = require("../../../utils/test");
|
|
46
|
+
describe('sasjs run with SAS9', function () {
|
|
47
|
+
var target;
|
|
48
|
+
beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
|
+
var appName;
|
|
50
|
+
return __generator(this, function (_a) {
|
|
51
|
+
switch (_a.label) {
|
|
52
|
+
case 0:
|
|
53
|
+
appName = 'cli-tests-run-sas9-' + (0, utils_1.generateTimestamp)();
|
|
54
|
+
return [4 /*yield*/, (0, test_1.createTestApp)(__dirname, appName)];
|
|
55
|
+
case 1:
|
|
56
|
+
_a.sent();
|
|
57
|
+
target = (0, test_1.generateTestTarget)(appName, "/Public/app/cli-tests/".concat(appName), {
|
|
58
|
+
serviceFolders: ['sasjs/testServices'],
|
|
59
|
+
initProgram: '',
|
|
60
|
+
termProgram: '',
|
|
61
|
+
macroVars: {}
|
|
62
|
+
}, utils_1.ServerType.Sas9);
|
|
63
|
+
return [4 /*yield*/, (0, utils_1.copy)(path_1.default.join(__dirname, 'testServices'), path_1.default.join(process.projectDir, 'sasjs', 'testServices'))];
|
|
64
|
+
case 2:
|
|
65
|
+
_a.sent();
|
|
66
|
+
return [2 /*return*/];
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}); });
|
|
70
|
+
afterEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
71
|
+
return __generator(this, function (_a) {
|
|
72
|
+
switch (_a.label) {
|
|
73
|
+
case 0: return [4 /*yield*/, (0, test_1.removeTestServerFolder)(target.appLoc, target)];
|
|
74
|
+
case 1:
|
|
75
|
+
_a.sent();
|
|
76
|
+
return [4 /*yield*/, (0, test_1.removeTestApp)(__dirname, target.name)];
|
|
77
|
+
case 2:
|
|
78
|
+
_a.sent();
|
|
79
|
+
return [2 /*return*/];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}); });
|
|
83
|
+
it('should run a file when a relative path is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
84
|
+
var logParts, result;
|
|
85
|
+
return __generator(this, function (_a) {
|
|
86
|
+
switch (_a.label) {
|
|
87
|
+
case 0:
|
|
88
|
+
logParts = ['data;', 'do x=1 to 100;', 'output;', 'end;', 'run;'];
|
|
89
|
+
return [4 /*yield*/, (0, __1.runSasCode)(target, 'sasjs/testServices/logJob.sas')];
|
|
90
|
+
case 1:
|
|
91
|
+
result = _a.sent();
|
|
92
|
+
logParts.forEach(function (logPart) {
|
|
93
|
+
expect(result.log.includes(logPart)).toBeTruthy();
|
|
94
|
+
});
|
|
95
|
+
return [2 /*return*/];
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}); });
|
|
99
|
+
it('should run a file when an absolute path is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
100
|
+
var logParts, result;
|
|
101
|
+
return __generator(this, function (_a) {
|
|
102
|
+
switch (_a.label) {
|
|
103
|
+
case 0:
|
|
104
|
+
logParts = ['data;', 'do x=1 to 100;', 'output;', 'end;', 'run;'];
|
|
105
|
+
return [4 /*yield*/, (0, __1.runSasCode)(target, "".concat(process.projectDir, "/sasjs/testServices/logJob.sas"))];
|
|
106
|
+
case 1:
|
|
107
|
+
result = _a.sent();
|
|
108
|
+
logParts.forEach(function (logPart) {
|
|
109
|
+
expect(result.log.includes(logPart)).toBeTruthy();
|
|
110
|
+
});
|
|
111
|
+
return [2 /*return*/];
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}); });
|
|
115
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -46,7 +46,7 @@ var utils_1 = require("@sasjs/utils");
|
|
|
46
46
|
var test_1 = require("../../../utils/test");
|
|
47
47
|
var build_1 = require("../../build/build");
|
|
48
48
|
var utils_2 = require("../../../utils");
|
|
49
|
-
describe('sasjs run', function () {
|
|
49
|
+
describe('sasjs run with Viya', function () {
|
|
50
50
|
var target;
|
|
51
51
|
describe('runSasCode within project', function () {
|
|
52
52
|
beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -198,70 +198,6 @@ describe('sasjs run', function () {
|
|
|
198
198
|
});
|
|
199
199
|
}); });
|
|
200
200
|
});
|
|
201
|
-
describe('runSasCode within vanilla js project', function () {
|
|
202
|
-
var appName;
|
|
203
|
-
beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
204
|
-
return __generator(this, function (_a) {
|
|
205
|
-
switch (_a.label) {
|
|
206
|
-
case 0:
|
|
207
|
-
dotenv_1.default.config();
|
|
208
|
-
appName = 'cli-tests-run-' + (0, utils_1.generateTimestamp)();
|
|
209
|
-
return [4 /*yield*/, (0, test_1.createTestMinimalApp)(__dirname, appName)];
|
|
210
|
-
case 1:
|
|
211
|
-
_a.sent();
|
|
212
|
-
return [4 /*yield*/, (0, test_1.updateTarget)({
|
|
213
|
-
appLoc: "/Public/app/cli-tests/".concat(appName),
|
|
214
|
-
streamConfig: {
|
|
215
|
-
assetPaths: [],
|
|
216
|
-
streamWeb: true,
|
|
217
|
-
streamWebFolder: 'webv',
|
|
218
|
-
webSourcePath: 'src',
|
|
219
|
-
streamServiceName: 'clickme'
|
|
220
|
-
},
|
|
221
|
-
authConfig: {
|
|
222
|
-
client: process.env.CLIENT,
|
|
223
|
-
secret: process.env.SECRET,
|
|
224
|
-
access_token: process.env.ACCESS_TOKEN,
|
|
225
|
-
refresh_token: process.env.REFRESH_TOKEN
|
|
226
|
-
}
|
|
227
|
-
}, 'viya')];
|
|
228
|
-
case 2:
|
|
229
|
-
target = _a.sent();
|
|
230
|
-
return [2 /*return*/];
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
}); });
|
|
234
|
-
afterEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
235
|
-
return __generator(this, function (_a) {
|
|
236
|
-
switch (_a.label) {
|
|
237
|
-
case 0: return [4 /*yield*/, (0, test_1.removeTestServerFolder)(target.appLoc, target)];
|
|
238
|
-
case 1:
|
|
239
|
-
_a.sent();
|
|
240
|
-
return [4 /*yield*/, (0, test_1.removeTestApp)(__dirname, appName)];
|
|
241
|
-
case 2:
|
|
242
|
-
_a.sent();
|
|
243
|
-
return [2 /*return*/];
|
|
244
|
-
}
|
|
245
|
-
});
|
|
246
|
-
}); });
|
|
247
|
-
it('should get the log having launch code message', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
248
|
-
var logPart, result;
|
|
249
|
-
return __generator(this, function (_a) {
|
|
250
|
-
switch (_a.label) {
|
|
251
|
-
case 0:
|
|
252
|
-
logPart = "SASjs Streaming App Created! Check it out here:\n \n \n \n \n sas.analytium.co.uk/SASJobExecution?_FILE=".concat(target.appLoc, "/services/clickme.html&_debug=2\n");
|
|
253
|
-
return [4 /*yield*/, (0, build_1.build)(target)];
|
|
254
|
-
case 1:
|
|
255
|
-
_a.sent();
|
|
256
|
-
return [4 /*yield*/, (0, __1.runSasCode)(target, 'sasjsbuild/myviyadeploy.sas')];
|
|
257
|
-
case 2:
|
|
258
|
-
result = _a.sent();
|
|
259
|
-
expect(result.log.includes(logPart)).toBeTruthy();
|
|
260
|
-
return [2 /*return*/];
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
}); });
|
|
264
|
-
});
|
|
265
201
|
describe('runSasCode outside project', function () {
|
|
266
202
|
var sharedAppName;
|
|
267
203
|
var homedir = require('os').homedir();
|
|
@@ -395,25 +331,35 @@ describe('sasjs run', function () {
|
|
|
395
331
|
});
|
|
396
332
|
}); });
|
|
397
333
|
});
|
|
398
|
-
describe('
|
|
334
|
+
describe('runSasCode within vanilla js project', function () {
|
|
335
|
+
var appName;
|
|
399
336
|
beforeEach(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
400
|
-
var appName;
|
|
401
337
|
return __generator(this, function (_a) {
|
|
402
338
|
switch (_a.label) {
|
|
403
339
|
case 0:
|
|
404
|
-
|
|
405
|
-
|
|
340
|
+
dotenv_1.default.config();
|
|
341
|
+
appName = 'cli-tests-run-' + (0, utils_1.generateTimestamp)();
|
|
342
|
+
return [4 /*yield*/, (0, test_1.createTestMinimalApp)(__dirname, appName)];
|
|
406
343
|
case 1:
|
|
407
344
|
_a.sent();
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
345
|
+
return [4 /*yield*/, (0, test_1.updateTarget)({
|
|
346
|
+
appLoc: "/Public/app/cli-tests/".concat(appName),
|
|
347
|
+
streamConfig: {
|
|
348
|
+
assetPaths: [],
|
|
349
|
+
streamWeb: true,
|
|
350
|
+
streamWebFolder: 'webv',
|
|
351
|
+
webSourcePath: 'src',
|
|
352
|
+
streamServiceName: 'clickme'
|
|
353
|
+
},
|
|
354
|
+
authConfig: {
|
|
355
|
+
client: process.env.CLIENT,
|
|
356
|
+
secret: process.env.SECRET,
|
|
357
|
+
access_token: process.env.ACCESS_TOKEN,
|
|
358
|
+
refresh_token: process.env.REFRESH_TOKEN
|
|
359
|
+
}
|
|
360
|
+
}, 'viya')];
|
|
415
361
|
case 2:
|
|
416
|
-
_a.sent();
|
|
362
|
+
target = _a.sent();
|
|
417
363
|
return [2 /*return*/];
|
|
418
364
|
}
|
|
419
365
|
});
|
|
@@ -424,41 +370,26 @@ describe('sasjs run', function () {
|
|
|
424
370
|
case 0: return [4 /*yield*/, (0, test_1.removeTestServerFolder)(target.appLoc, target)];
|
|
425
371
|
case 1:
|
|
426
372
|
_a.sent();
|
|
427
|
-
return [4 /*yield*/, (0, test_1.removeTestApp)(__dirname,
|
|
373
|
+
return [4 /*yield*/, (0, test_1.removeTestApp)(__dirname, appName)];
|
|
428
374
|
case 2:
|
|
429
375
|
_a.sent();
|
|
430
376
|
return [2 /*return*/];
|
|
431
377
|
}
|
|
432
378
|
});
|
|
433
379
|
}); });
|
|
434
|
-
it('should
|
|
435
|
-
var
|
|
436
|
-
return __generator(this, function (_a) {
|
|
437
|
-
switch (_a.label) {
|
|
438
|
-
case 0:
|
|
439
|
-
logParts = ['data;', 'do x=1 to 100;', 'output;', 'end;', 'run;'];
|
|
440
|
-
return [4 /*yield*/, (0, __1.runSasCode)(target, 'sasjs/testServices/logJob.sas')];
|
|
441
|
-
case 1:
|
|
442
|
-
result = _a.sent();
|
|
443
|
-
logParts.forEach(function (logPart) {
|
|
444
|
-
expect(result.log.includes(logPart)).toBeTruthy();
|
|
445
|
-
});
|
|
446
|
-
return [2 /*return*/];
|
|
447
|
-
}
|
|
448
|
-
});
|
|
449
|
-
}); });
|
|
450
|
-
it('should run a file when an absolute path is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
451
|
-
var logParts, result;
|
|
380
|
+
it('should get the log having launch code message', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
381
|
+
var logPart, result;
|
|
452
382
|
return __generator(this, function (_a) {
|
|
453
383
|
switch (_a.label) {
|
|
454
384
|
case 0:
|
|
455
|
-
|
|
456
|
-
return [4 /*yield*/, (0,
|
|
385
|
+
logPart = "SASjs Streaming App Created! Check it out here:\n \n \n \n \n sas.analytium.co.uk/SASJobExecution?_FILE=".concat(target.appLoc, "/services/clickme.html&_debug=2\n");
|
|
386
|
+
return [4 /*yield*/, (0, build_1.build)(target)];
|
|
457
387
|
case 1:
|
|
388
|
+
_a.sent();
|
|
389
|
+
return [4 /*yield*/, (0, __1.runSasCode)(target, 'sasjsbuild/myviyadeploy.sas')];
|
|
390
|
+
case 2:
|
|
458
391
|
result = _a.sent();
|
|
459
|
-
|
|
460
|
-
expect(result.log.includes(logPart)).toBeTruthy();
|
|
461
|
-
});
|
|
392
|
+
expect(result.log.includes(logPart)).toBeTruthy();
|
|
462
393
|
return [2 /*return*/];
|
|
463
394
|
}
|
|
464
395
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -45,7 +45,7 @@ var utils_1 = require("@sasjs/utils");
|
|
|
45
45
|
var utils_2 = require("../../../utils");
|
|
46
46
|
var deploy_1 = require("../deploy");
|
|
47
47
|
var test_1 = require("../../../utils/test");
|
|
48
|
-
describe('sasjs servicepack', function () {
|
|
48
|
+
describe('sasjs servicepack with Viya', function () {
|
|
49
49
|
var target;
|
|
50
50
|
beforeAll(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
51
51
|
var targetName;
|
package/build/utils/test.js
CHANGED
|
@@ -151,9 +151,11 @@ var removeTestServerFolder = function (folderPath, target) { return __awaiter(vo
|
|
|
151
151
|
appLoc: target.appLoc,
|
|
152
152
|
serverType: target.serverType
|
|
153
153
|
});
|
|
154
|
-
|
|
155
|
-
return [4 /*yield*/, (0, delete_1.deleteFolder)(folderPath, sasjs, accessToken)];
|
|
154
|
+
return [4 /*yield*/, (0, config_1.getAccessToken)(target)];
|
|
156
155
|
case 1:
|
|
156
|
+
accessToken = _a.sent();
|
|
157
|
+
return [4 /*yield*/, (0, delete_1.deleteFolder)(folderPath, sasjs, accessToken)];
|
|
158
|
+
case 2:
|
|
157
159
|
_a.sent();
|
|
158
160
|
return [2 /*return*/];
|
|
159
161
|
}
|
package/build/utils/utils.d.ts
CHANGED
|
@@ -8,14 +8,7 @@ export declare function createMinimalApp(folderPath: string): Promise<void>;
|
|
|
8
8
|
export declare function createTemplateApp(folderPath: string, template: string): Promise<void>;
|
|
9
9
|
export declare function setupNpmProject(folderName: string): Promise<void>;
|
|
10
10
|
export declare function setupGitIgnore(folderName: string): Promise<void>;
|
|
11
|
-
export declare function setupGhooks(folderName: string): Promise<void>;
|
|
12
11
|
export declare function setupDoxygen(folderPath: string): Promise<void>;
|
|
13
|
-
/**
|
|
14
|
-
* Removes comments from a given block of text.
|
|
15
|
-
* Preserves single line block comments and inline comments.
|
|
16
|
-
* @param {string} text - the text to remove comments from.
|
|
17
|
-
*/
|
|
18
|
-
export declare function removeComments(text: string): string;
|
|
19
12
|
export declare function getUniqServicesObj(services: string[]): any;
|
|
20
13
|
export declare function executeShellScript(filePath: string, logFilePath: string): Promise<unknown>;
|
|
21
14
|
/**
|
|
@@ -44,3 +37,4 @@ export declare const terminateProcess: (status: number) => never;
|
|
|
44
37
|
*/
|
|
45
38
|
export declare const isSASjsProject: () => Promise<boolean>;
|
|
46
39
|
export declare const getNodeModulePath: (module: string) => Promise<string>;
|
|
40
|
+
export declare const isSasJsServerInServerMode: (target: Target) => Promise<boolean>;
|