@sasjs/utils 3.4.0 → 3.5.0
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/.github/workflows/publish.yml +1 -1
- package/auth/auth.js +6 -8
- package/auth/auth.js.map +1 -1
- package/compileTree/compileTree.js +37 -89
- package/compileTree/compileTree.js.map +1 -1
- package/conversion/convertJsDateToSasDate.js +6 -6
- package/conversion/convertJsDateToSasDate.js.map +1 -1
- package/conversion/convertSasDateToJsDate.js +8 -8
- package/conversion/convertSasDateToJsDate.js.map +1 -1
- package/error/errorModifier.js +3 -14
- package/error/errorModifier.js.map +1 -1
- package/error/serverTypeError.js +9 -54
- package/error/serverTypeError.js.map +1 -1
- package/file/csvFile.js +72 -159
- package/file/csvFile.js.map +1 -1
- package/file/file.d.ts +1 -1
- package/file/file.js +121 -264
- package/file/file.js.map +1 -1
- package/file/getAbsolutePath.js +5 -7
- package/file/getAbsolutePath.js.map +1 -1
- package/formatter/number.js +2 -3
- package/formatter/number.js.map +1 -1
- package/formatter/regexp.js +1 -1
- package/formatter/regexp.js.map +1 -1
- package/formatter/string.js +2 -6
- package/formatter/string.js.map +1 -1
- package/fs/generateCompileProgram.js +36 -145
- package/fs/generateCompileProgram.js.map +1 -1
- package/fs/hash.js +83 -186
- package/fs/hash.js.map +1 -1
- package/fs/internal/helper.js +60 -99
- package/fs/internal/helper.js.map +1 -1
- package/fs/sync.js +86 -192
- package/fs/sync.js.map +1 -1
- package/input/readAndValidateInput.js +80 -163
- package/input/readAndValidateInput.js.map +1 -1
- package/input/validators.js +9 -13
- package/input/validators.js.map +1 -1
- package/logger/isLowerThanOrEqualTo.js +2 -2
- package/logger/isLowerThanOrEqualTo.js.map +1 -1
- package/logger/isNullOrUndefined.js +1 -1
- package/logger/isNullOrUndefined.js.map +1 -1
- package/logger/logger.js +45 -104
- package/logger/logger.js.map +1 -1
- package/package.json +2 -3
- package/sasjsCli/getDependencies.js +122 -198
- package/sasjsCli/getDependencies.js.map +1 -1
- package/sasjsCli/getDependencyPaths.js +40 -131
- package/sasjsCli/getDependencyPaths.js.map +1 -1
- package/sasjsCli/getInitTerm.js +90 -192
- package/sasjsCli/getInitTerm.js.map +1 -1
- package/sasjsCli/getList.js +13 -13
- package/sasjsCli/getList.js.map +1 -1
- package/sasjsCli/getPreCode.js +41 -79
- package/sasjsCli/getPreCode.js.map +1 -1
- package/sasjsCli/loadDependenciesFile.js +63 -160
- package/sasjsCli/loadDependenciesFile.js.map +1 -1
- package/sasjsCli/prioritiseDependencyOverrides.js +10 -39
- package/sasjsCli/prioritiseDependencyOverrides.js.map +1 -1
- package/sasjsCli/validateFileRef.js +1 -1
- package/sasjsCli/validateFileRef.js.map +1 -1
- package/time/timestamp.js +16 -18
- package/time/timestamp.js.map +1 -1
- package/types/macro.js +1 -3
- package/types/macro.js.map +1 -1
- package/types/target.js +86 -197
- package/types/target.js.map +1 -1
- package/types/targetValidators.js +32 -32
- package/types/targetValidators.js.map +1 -1
- package/utils/base64.js +7 -7
- package/utils/base64.js.map +1 -1
- package/utils/bytesToSize.js +6 -8
- package/utils/bytesToSize.js.map +1 -1
- package/utils/chunk.js +2 -3
- package/utils/chunk.js.map +1 -1
- package/utils/diff.js +7 -36
- package/utils/diff.js.map +1 -1
- package/utils/executor.js +2 -2
- package/utils/executor.js.map +1 -1
- package/utils/fileTree.js +25 -37
- package/utils/fileTree.js.map +1 -1
- package/utils/url.js +2 -2
- package/utils/url.js.map +1 -1
- package/utils/utils.js +15 -63
- package/utils/utils.js.map +1 -1
package/auth/auth.js
CHANGED
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.decodeToken = exports.hasTokenExpired = exports.isRefreshTokenExpiring = exports.isAccessTokenExpiring = void 0;
|
|
7
|
-
|
|
7
|
+
const jwt_decode_1 = __importDefault(require("jwt-decode"));
|
|
8
8
|
/**
|
|
9
9
|
* Checks if the Access Token is expired or is expiring in 1 hour. A default Access Token
|
|
10
10
|
* lasts 12 hours. If the Access Token expires, the Refresh Token is used to fetch a new
|
|
@@ -14,8 +14,7 @@ var jwt_decode_1 = __importDefault(require("jwt-decode"));
|
|
|
14
14
|
* @param {number} timeToLiveSeconds - the amount of time that the token has before it expires, defaults to 3600
|
|
15
15
|
* @returns {boolean} a value indicating whether the token is about to expire
|
|
16
16
|
*/
|
|
17
|
-
function isAccessTokenExpiring(token, timeToLiveSeconds) {
|
|
18
|
-
if (timeToLiveSeconds === void 0) { timeToLiveSeconds = 3600; }
|
|
17
|
+
function isAccessTokenExpiring(token, timeToLiveSeconds = 3600) {
|
|
19
18
|
if (!token) {
|
|
20
19
|
return true;
|
|
21
20
|
}
|
|
@@ -31,8 +30,7 @@ exports.isAccessTokenExpiring = isAccessTokenExpiring;
|
|
|
31
30
|
* @param {number} timeToLiveSeconds - the amount of time that the token has before it expires, defaults to 30
|
|
32
31
|
* @returns {boolean} a value indicating whether the token is about to expire
|
|
33
32
|
*/
|
|
34
|
-
function isRefreshTokenExpiring(token, timeToLiveSeconds) {
|
|
35
|
-
if (timeToLiveSeconds === void 0) { timeToLiveSeconds = 30; }
|
|
33
|
+
function isRefreshTokenExpiring(token, timeToLiveSeconds = 30) {
|
|
36
34
|
if (!token) {
|
|
37
35
|
return true;
|
|
38
36
|
}
|
|
@@ -52,12 +50,12 @@ function hasTokenExpired(token) {
|
|
|
52
50
|
}
|
|
53
51
|
exports.hasTokenExpired = hasTokenExpired;
|
|
54
52
|
function isTokenExpiring(token, timeToLiveSeconds) {
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
const payload = (0, jwt_decode_1.default)(token);
|
|
54
|
+
const timeToLive = payload.exp - new Date().valueOf() / 1000;
|
|
57
55
|
return timeToLive <= timeToLiveSeconds;
|
|
58
56
|
}
|
|
59
57
|
function decodeToken(token) {
|
|
60
|
-
|
|
58
|
+
let payload;
|
|
61
59
|
try {
|
|
62
60
|
payload = (0, jwt_decode_1.default)(token);
|
|
63
61
|
}
|
package/auth/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth/auth.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAkC;AAGlC;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CACnC,KAAc,EACd,iBAAiB,GAAG,IAAI;IAExB,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;AAClD,CAAC;AARD,sDAQC;AAED;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CACpC,KAAc,EACd,iBAAiB,GAAG,EAAE;IAEtB,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;AAClD,CAAC;AARD,wDAQC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AAClC,CAAC;AALD,0CAKC;AAED,SAAS,eAAe,CAAC,KAAa,EAAE,iBAAyB;IAC/D,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAkB,KAAK,CAAC,CAAA;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;IAE5D,OAAO,UAAU,IAAI,iBAAiB,CAAA;AACxC,CAAC;AAED,SAAgB,WAAW,CAAC,KAAa;IACvC,IAAI,OAAqB,CAAA;IACzB,IAAI;QACF,OAAO,GAAG,IAAA,oBAAS,EAAC,KAAK,CAAC,CAAA;KAC3B;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC3C;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AATD,kCASC"}
|
|
@@ -8,110 +8,61 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
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
11
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
13
|
};
|
|
41
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
15
|
exports.removeHeader = exports.CompileTree = void 0;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (tree === void 0) { tree = {}; }
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const __1 = require("../");
|
|
18
|
+
const sasjsCli_1 = require("../sasjsCli");
|
|
19
|
+
class CompileTree {
|
|
20
|
+
constructor(treePath, tree = {}) {
|
|
49
21
|
this._treePath = treePath;
|
|
50
22
|
this._tree = tree;
|
|
51
23
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
},
|
|
57
|
-
enumerable: false,
|
|
58
|
-
configurable: true
|
|
59
|
-
});
|
|
24
|
+
// Returns entire tree
|
|
25
|
+
get tree() {
|
|
26
|
+
return this._tree;
|
|
27
|
+
}
|
|
60
28
|
// Returns tree leaf
|
|
61
|
-
|
|
29
|
+
getLeaf(location) {
|
|
62
30
|
return this._tree[this.getFileName(location)];
|
|
63
|
-
}
|
|
31
|
+
}
|
|
64
32
|
// Adds leaf
|
|
65
|
-
|
|
33
|
+
addLeaf(leaf) {
|
|
66
34
|
leaf.dependencies = (0, sasjsCli_1.getList)((0, sasjsCli_1.getDeprecatedHeader)(leaf.content, sasjsCli_1.DependencyHeader.Macro), leaf.content);
|
|
67
35
|
leaf.content = (0, exports.removeHeader)(leaf.content);
|
|
68
36
|
this._tree[this.getFileName(leaf.location)] = leaf;
|
|
69
37
|
return leaf;
|
|
70
|
-
}
|
|
38
|
+
}
|
|
71
39
|
// Saves tree to sasjsbuild folder
|
|
72
|
-
|
|
73
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
74
|
-
|
|
75
|
-
switch (_a.label) {
|
|
76
|
-
case 0: return [4 /*yield*/, (0, __1.createFile)(this._treePath, JSON.stringify(this._tree, null, 2))];
|
|
77
|
-
case 1:
|
|
78
|
-
_a.sent();
|
|
79
|
-
return [2 /*return*/];
|
|
80
|
-
}
|
|
81
|
-
});
|
|
40
|
+
saveTree() {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
yield (0, __1.createFile)(this._treePath, JSON.stringify(this._tree, null, 2));
|
|
82
43
|
});
|
|
83
|
-
}
|
|
44
|
+
}
|
|
84
45
|
// If leaf exists, returns it's content.
|
|
85
46
|
// Otherwise reads file, creates leaf and return content.
|
|
86
|
-
|
|
87
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
this.validateDependency(content, depPath, depType);
|
|
99
|
-
return [2 /*return*/, this.addLeaf({
|
|
100
|
-
content: content,
|
|
101
|
-
dependencies: [],
|
|
102
|
-
location: depPath
|
|
103
|
-
}).content];
|
|
104
|
-
}
|
|
105
|
-
});
|
|
47
|
+
getDepContent(depPath, depType) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const leaf = this.getLeaf(depPath);
|
|
50
|
+
if (leaf)
|
|
51
|
+
return leaf.content;
|
|
52
|
+
const content = yield (0, __1.readFile)(depPath, undefined);
|
|
53
|
+
this.validateDependency(content, depPath, depType);
|
|
54
|
+
return this.addLeaf({
|
|
55
|
+
content,
|
|
56
|
+
dependencies: [],
|
|
57
|
+
location: depPath
|
|
58
|
+
}).content;
|
|
106
59
|
});
|
|
107
|
-
}
|
|
60
|
+
}
|
|
108
61
|
// Throws an error if wrong dependencies have been used
|
|
109
|
-
|
|
62
|
+
validateDependency(content, depPath, depType) {
|
|
110
63
|
if (!depType)
|
|
111
64
|
return;
|
|
112
|
-
|
|
113
|
-
return "Dependency '".concat(header, "' can not be used in artefact type '").concat(dependency, "'. Please remove it from '").concat(depPath, "'.");
|
|
114
|
-
};
|
|
65
|
+
const getErrorMessage = (header, dependency, depPath) => `Dependency '${header}' can not be used in artefact type '${dependency}'. Please remove it from '${depPath}'.`;
|
|
115
66
|
switch (depType) {
|
|
116
67
|
case sasjsCli_1.DependencyType.Macro:
|
|
117
68
|
if (content.includes(sasjsCli_1.DependencyHeader.Include)) {
|
|
@@ -123,19 +74,16 @@ var CompileTree = /** @class */ (function () {
|
|
|
123
74
|
default:
|
|
124
75
|
break;
|
|
125
76
|
}
|
|
126
|
-
}
|
|
77
|
+
}
|
|
127
78
|
// Returns file name based on file path
|
|
128
|
-
|
|
79
|
+
getFileName(location) {
|
|
129
80
|
return location.split(path_1.default.sep)[location.split(path_1.default.sep).length - 1];
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
}());
|
|
81
|
+
}
|
|
82
|
+
}
|
|
133
83
|
exports.CompileTree = CompileTree;
|
|
134
84
|
// Removes header from SAS file
|
|
135
85
|
// If string begins with a multiline comment, remove the comment
|
|
136
86
|
// Ignore any preceding white space or line breaks
|
|
137
|
-
|
|
138
|
-
return content.replace(new RegExp("^\\s*\\/(\\*){1,2}([\\s\\S]*?)(\\*){1,2}\\/"), '');
|
|
139
|
-
};
|
|
87
|
+
const removeHeader = (content) => content.replace(new RegExp(`^\\s*\\/(\\*){1,2}([\\s\\S]*?)(\\*){1,2}\\/`), '');
|
|
140
88
|
exports.removeHeader = removeHeader;
|
|
141
89
|
//# sourceMappingURL=compileTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileTree.js","sourceRoot":"","sources":["../../src/compileTree/compileTree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compileTree.js","sourceRoot":"","sources":["../../src/compileTree/compileTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,15 +12,15 @@ exports.convertJsDateToSasDate = void 0;
|
|
|
12
12
|
* @param unit Unit in which to return the SAS Date / datetime, eg `sasdate | sasdatetime`
|
|
13
13
|
* @returns SAS Date value based on `unit` param
|
|
14
14
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
const convertJsDateToSasDate = (jsDate, unit) => {
|
|
16
|
+
const valueInMilliseconds = new Date(Date.UTC(jsDate.getFullYear(), jsDate.getMonth(), jsDate.getDate(), jsDate.getHours(), jsDate.getMinutes(), jsDate.getSeconds())).valueOf();
|
|
17
|
+
const msInDay = 24 * 60 * 60 * 1000;
|
|
18
|
+
const msInTenYears = 315619200000; //calculating is not guaranteed to give the correct value, as this is parsed with: new Date(Date.UTC(1960, 0, 1)).getTime()
|
|
19
|
+
const ms1960 = valueInMilliseconds + msInTenYears;
|
|
20
20
|
switch (unit) {
|
|
21
21
|
case 'sasdate': {
|
|
22
22
|
// always in days from 1960
|
|
23
|
-
|
|
23
|
+
let valueInDays = ms1960 / msInDay;
|
|
24
24
|
valueInDays = Math.floor(valueInDays);
|
|
25
25
|
return valueInDays;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertJsDateToSasDate.js","sourceRoot":"","sources":["../../src/conversion/convertJsDateToSasDate.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACI,
|
|
1
|
+
{"version":3,"file":"convertJsDateToSasDate.js","sourceRoot":"","sources":["../../src/conversion/convertJsDateToSasDate.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACI,MAAM,sBAAsB,GAAG,CACpC,MAAY,EACZ,IAA+B,EACvB,EAAE;IACV,MAAM,mBAAmB,GAAG,IAAI,IAAI,CAClC,IAAI,CAAC,GAAG,CACN,MAAM,CAAC,WAAW,EAAE,EACpB,MAAM,CAAC,QAAQ,EAAE,EACjB,MAAM,CAAC,OAAO,EAAE,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,MAAM,CAAC,UAAU,EAAE,EACnB,MAAM,CAAC,UAAU,EAAE,CACpB,CACF,CAAC,OAAO,EAAE,CAAA;IAEX,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACnC,MAAM,YAAY,GAAG,YAAY,CAAA,CAAC,2HAA2H;IAE7J,MAAM,MAAM,GAAG,mBAAmB,GAAG,YAAY,CAAA;IAEjD,QAAQ,IAAI,EAAE;QACZ,KAAK,SAAS,CAAC,CAAC;YACd,2BAA2B;YAC3B,IAAI,WAAW,GAAG,MAAM,GAAG,OAAO,CAAA;YAElC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YAErC,OAAO,WAAW,CAAA;SACnB;QACD,KAAK,aAAa,CAAC,CAAC;YAClB,8BAA8B;YAC9B,OAAO,MAAM,GAAG,IAAI,CAAA;SACrB;KACF;AACH,CAAC,CAAA;AAlCY,QAAA,sBAAsB,0BAkClC"}
|
|
@@ -12,19 +12,19 @@ exports.convertSasDateToJsDate = void 0;
|
|
|
12
12
|
* @param unit Unit from which to convert the SAS Date / Datetime, eg `sasdate | sasdatetime`
|
|
13
13
|
* @returns JavaScript Date object
|
|
14
14
|
*/
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const convertSasDateToJsDate = (sasValue, unit) => {
|
|
16
|
+
const msInDay = 24 * 60 * 60 * 1000;
|
|
17
|
+
const msNegativeTenYears = -315619200000; //since calculating it is not practical/guarantee to get correct value, this is parsed with: new Date(Date.UTC(1960, 0, 1)).getTime()
|
|
18
18
|
if (typeof sasValue !== 'number')
|
|
19
19
|
sasValue = parseFloat(sasValue);
|
|
20
20
|
if (unit === 'sasdatetime') {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const ms1960 = sasValue * 1000;
|
|
22
|
+
let jsMs = msNegativeTenYears + ms1960;
|
|
23
|
+
let jsDate = new Date(jsMs);
|
|
24
|
+
let timezoneOffsetMs = jsDate.getTimezoneOffset() * 60 * 1000;
|
|
25
25
|
jsMs += timezoneOffsetMs;
|
|
26
26
|
jsDate = new Date(jsMs); // We create new Date object after the timezone correction
|
|
27
|
-
|
|
27
|
+
const jsDateUtcMs = Date.UTC(jsDate.getFullYear(), jsDate.getMonth(), jsDate.getDate(), jsDate.getHours(), jsDate.getMinutes(), jsDate.getSeconds());
|
|
28
28
|
return new Date(jsDateUtcMs);
|
|
29
29
|
}
|
|
30
30
|
return new Date(msNegativeTenYears + sasValue * msInDay);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertSasDateToJsDate.js","sourceRoot":"","sources":["../../src/conversion/convertSasDateToJsDate.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACI,
|
|
1
|
+
{"version":3,"file":"convertSasDateToJsDate.js","sourceRoot":"","sources":["../../src/conversion/convertSasDateToJsDate.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACI,MAAM,sBAAsB,GAAG,CACpC,QAAyB,EACzB,IAA+B,EAC/B,EAAE;IACF,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACnC,MAAM,kBAAkB,GAAG,CAAC,YAAY,CAAA,CAAC,qIAAqI;IAE9K,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IAEjE,IAAI,IAAI,KAAK,aAAa,EAAE;QAC1B,MAAM,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAA;QAE9B,IAAI,IAAI,GAAG,kBAAkB,GAAG,MAAM,CAAA;QACtC,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;QAE3B,IAAI,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QAC7D,IAAI,IAAI,gBAAgB,CAAA;QAExB,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,0DAA0D;QAElF,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAC1B,MAAM,CAAC,WAAW,EAAE,EACpB,MAAM,CAAC,QAAQ,EAAE,EACjB,MAAM,CAAC,OAAO,EAAE,EAChB,MAAM,CAAC,QAAQ,EAAE,EACjB,MAAM,CAAC,UAAU,EAAE,EACnB,MAAM,CAAC,UAAU,EAAE,CACpB,CAAA;QAED,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAA;KAC7B;IAED,OAAO,IAAI,IAAI,CAAC,kBAAkB,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;AAC1D,CAAC,CAAA;AAjCY,QAAA,sBAAsB,0BAiClC"}
|
package/error/errorModifier.js
CHANGED
|
@@ -1,18 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.prefixMessage = void 0;
|
|
15
|
-
|
|
4
|
+
const prefixMessage = (err, messagePrefix) => {
|
|
16
5
|
if (typeof err === 'object') {
|
|
17
6
|
if (err.hasOwnProperty('message')) {
|
|
18
7
|
err.message = messagePrefix + err.message;
|
|
@@ -25,7 +14,7 @@ var prefixMessage = function (err, messagePrefix) {
|
|
|
25
14
|
: messagePrefix;
|
|
26
15
|
}
|
|
27
16
|
if (typeof err.body === 'string') {
|
|
28
|
-
|
|
17
|
+
let body;
|
|
29
18
|
try {
|
|
30
19
|
body = JSON.parse(err.body);
|
|
31
20
|
}
|
|
@@ -41,7 +30,7 @@ var prefixMessage = function (err, messagePrefix) {
|
|
|
41
30
|
}
|
|
42
31
|
}
|
|
43
32
|
else
|
|
44
|
-
return
|
|
33
|
+
return Object.assign(Object.assign({}, err), { message: messagePrefix });
|
|
45
34
|
}
|
|
46
35
|
}
|
|
47
36
|
if (typeof err === 'string')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorModifier.js","sourceRoot":"","sources":["../../src/error/errorModifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errorModifier.js","sourceRoot":"","sources":["../../src/error/errorModifier.ts"],"names":[],"mappings":";;;AAEO,MAAM,aAAa,GAAG,CAAC,GAAmB,EAAE,aAAqB,EAAE,EAAE;IAC1E,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,IAAI,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;YACjC,GAAG,CAAC,OAAO,GAAG,aAAa,GAAG,GAAG,CAAC,OAAO,CAAA;SAC1C;aAAM;YACL,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;gBAC9B,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAChC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO;wBAC5B,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO;wBAClC,CAAC,CAAC,aAAa,CAAA;iBAClB;gBAED,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAChC,IAAI,IAAI,CAAA;oBAER,IAAI;wBACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;qBAC5B;oBAAC,OAAO,KAAK,EAAE;wBACd,GAAG,CAAC,OAAO,GAAG,aAAa,CAAA;wBAE3B,OAAO,GAAG,CAAA;qBACX;oBAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;wBACzB,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO;wBAC9B,CAAC,CAAC,aAAa,CAAA;oBAEjB,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;oBAEf,OAAO,GAAG,CAAA;iBACX;aACF;;gBAAM,uCAAY,GAAG,KAAE,OAAO,EAAE,aAAa,IAAE;SACjD;KACF;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,GAAG,GAAG,aAAa,GAAG,GAAG,CAAA;IAEtD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAtCY,QAAA,aAAa,iBAsCzB"}
|
package/error/serverTypeError.js
CHANGED
|
@@ -1,65 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
18
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
19
|
-
if (!m) return o;
|
|
20
|
-
var i = m.call(o), r, ar = [], e;
|
|
21
|
-
try {
|
|
22
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
23
|
-
}
|
|
24
|
-
catch (error) { e = { error: error }; }
|
|
25
|
-
finally {
|
|
26
|
-
try {
|
|
27
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
28
|
-
}
|
|
29
|
-
finally { if (e) throw e.error; }
|
|
30
|
-
}
|
|
31
|
-
return ar;
|
|
32
|
-
};
|
|
33
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
34
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
35
|
-
if (ar || !(i in from)) {
|
|
36
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
37
|
-
ar[i] = from[i];
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
41
|
-
};
|
|
42
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
3
|
exports.ServerTypeError = void 0;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var _this = this;
|
|
50
|
-
validOptions = __spreadArray([], __read(new Set(validOptions)), false);
|
|
51
|
-
var options = validOptions.length
|
|
4
|
+
const types_1 = require("../types");
|
|
5
|
+
class ServerTypeError extends Error {
|
|
6
|
+
constructor(validOptions = []) {
|
|
7
|
+
validOptions = [...new Set(validOptions)];
|
|
8
|
+
let options = validOptions.length
|
|
52
9
|
? validOptions.join(', ').trim()
|
|
53
10
|
: [types_1.ServerType.SasViya, types_1.ServerType.Sas9, types_1.ServerType.Sasjs]
|
|
54
11
|
.join(', ')
|
|
55
12
|
.trim();
|
|
56
13
|
options = options.replace(/,\s([^,]*)$/, ' and $1');
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
Object.setPrototypeOf(
|
|
60
|
-
return _this;
|
|
14
|
+
super(`Invalid server type: valid option${validOptions.length !== 1 ? 's' : ''} ${validOptions.length !== 1 ? 'are' : 'is'} ${options}`);
|
|
15
|
+
this.name = 'ServerTypeError';
|
|
16
|
+
Object.setPrototypeOf(this, ServerTypeError.prototype);
|
|
61
17
|
}
|
|
62
|
-
|
|
63
|
-
}(Error));
|
|
18
|
+
}
|
|
64
19
|
exports.ServerTypeError = ServerTypeError;
|
|
65
20
|
//# sourceMappingURL=serverTypeError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverTypeError.js","sourceRoot":"","sources":["../../src/error/serverTypeError.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serverTypeError.js","sourceRoot":"","sources":["../../src/error/serverTypeError.ts"],"names":[],"mappings":";;;AAAA,oCAAqC;AAErC,MAAa,eAAgB,SAAQ,KAAK;IACxC,YAAY,eAA6B,EAAE;QACzC,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAA;QAEzC,IAAI,OAAO,GAAG,YAAY,CAAC,MAAM;YAC/B,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;YAChC,CAAC,CAAC,CAAC,kBAAU,CAAC,OAAO,EAAE,kBAAU,CAAC,IAAI,EAAE,kBAAU,CAAC,KAAK,CAAC;iBACpD,IAAI,CAAC,IAAI,CAAC;iBACV,IAAI,EAAE,CAAA;QAEb,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;QAEnD,KAAK,CACH,oCACE,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACpC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,EAAE,CAC1D,CAAA;QAED,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;QAE7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACxD,CAAC;CACF;AAtBD,0CAsBC"}
|