dwh-fetch 1.3.3
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/README.md +114 -0
- package/dist/dwh-fetch.d.ts +1 -0
- package/dist/dwh-fetch.js +15 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +18 -0
- package/dist/lib/DwhErrorCodes.d.ts +93 -0
- package/dist/lib/DwhErrorCodes.js +103 -0
- package/dist/lib/backup/dwh-backup.d.ts +38 -0
- package/dist/lib/backup/dwh-backup.js +143 -0
- package/dist/lib/dwh-fetch.d.ts +149 -0
- package/dist/lib/dwh-fetch.js +606 -0
- package/dist/lib/fetch-indexed.d.ts +26 -0
- package/dist/lib/fetch-indexed.js +124 -0
- package/dist/lib/rsa.d.ts +2 -0
- package/dist/lib/rsa.js +902 -0
- package/dist/lib/update/dwh-update.d.ts +114 -0
- package/dist/lib/update/dwh-update.js +289 -0
- package/package.json +104 -0
- package/test-resources/backup/.gitkeep +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Typescript service for Digitronic Dwh interface
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Usage
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
yarn add dwh-fetch
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
**Start coding!**
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- fetch DigiWEB variables as strings, or integers or as arrays
|
|
15
|
+
- map results of DigiWeb variables to objects using the `@Expression` decorator
|
|
16
|
+
|
|
17
|
+
### Importing library
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import DwhFetch from 'dwh-fetch'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Examples
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
const dwh = new DwhFetch();
|
|
29
|
+
|
|
30
|
+
// fetch a simple variable to promise
|
|
31
|
+
dwh.fetchString('##000187').then(value => console.log(value));
|
|
32
|
+
|
|
33
|
+
(async () => {
|
|
34
|
+
// or with await ...
|
|
35
|
+
const value = await dwh.fetchString('##000187');
|
|
36
|
+
})();
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
const dwh = new DwhFetch();
|
|
41
|
+
|
|
42
|
+
(async () => {
|
|
43
|
+
|
|
44
|
+
// fetch as Number to convert the result to number before returning
|
|
45
|
+
const aNumber = await dwh.fetchNumber('##000187');
|
|
46
|
+
const isNumber = aNumber instanceof Number; // true
|
|
47
|
+
|
|
48
|
+
})();
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
const dwh = new DwhFetch();
|
|
53
|
+
|
|
54
|
+
(async () => {
|
|
55
|
+
|
|
56
|
+
// fetch as Number to convert the result to number before returning
|
|
57
|
+
const result = await dwh.fetch(['##A', '##B']);
|
|
58
|
+
console.log(result.accessRights); //current accessRights from the request
|
|
59
|
+
console.log(result.lines[0].success); //boolean indicates that request has been successful processed or not
|
|
60
|
+
console.log(result.lines[0].value); //value of ##A or errorCode if success is false
|
|
61
|
+
console.log(result.lines[1].success); //boolean indicates that request has been successful processed or not
|
|
62
|
+
console.log(result.lines[1].value); //value of ##B or errorCode if success is false
|
|
63
|
+
|
|
64
|
+
})();
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
It's also possible to map values to objects and convert the results directly
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
interface Test {
|
|
71
|
+
timer: number;
|
|
72
|
+
firmware: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const expressions: ExpressionDefinitions<Test> = {
|
|
76
|
+
timer: Expression.integer('##000187'),
|
|
77
|
+
firmware: Expression.string('#$000199')
|
|
78
|
+
};
|
|
79
|
+
(async () => {
|
|
80
|
+
const dwhFetch = new DwhFetch();
|
|
81
|
+
const values: Test = await fetchExpressions(dwhFetch, expressions);
|
|
82
|
+
console.log(values);
|
|
83
|
+
})();
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This is also possible with array like expressions and using G= requests
|
|
88
|
+
```typescript
|
|
89
|
+
import {
|
|
90
|
+
Expression,
|
|
91
|
+
ExpressionDefinitions,
|
|
92
|
+
fetchExpressions,
|
|
93
|
+
fetchIndexed
|
|
94
|
+
} from '../fetch-indexed';
|
|
95
|
+
import { DwhFetch } from '../dwh-fetch';
|
|
96
|
+
|
|
97
|
+
interface Test {
|
|
98
|
+
num: number;
|
|
99
|
+
str: string;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const expressions: ExpressionDefinitions<Test> = {
|
|
103
|
+
num: Expression.integer('##Module[##X].num'),
|
|
104
|
+
str: Expression.string('##Module[##X].str')
|
|
105
|
+
};
|
|
106
|
+
(async () => {
|
|
107
|
+
const dwhFetch = new DwhFetch();
|
|
108
|
+
const values: Test[] = await fetchIndexed(dwhFetch, '##Module.Count', expressions);
|
|
109
|
+
console.log(values);
|
|
110
|
+
})();
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './index';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
//this file is just here for compatibility with older versions
|
|
14
|
+
__exportStar(require("./index"), exports);
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHdoLWZldGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2R3aC1mZXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw4REFBOEQ7QUFDOUQsMENBQXdCIn0=
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./lib/backup/dwh-backup"), exports);
|
|
14
|
+
__exportStar(require("./lib/dwh-fetch"), exports);
|
|
15
|
+
__exportStar(require("./lib/DwhErrorCodes"), exports);
|
|
16
|
+
__exportStar(require("./lib/fetch-indexed"), exports);
|
|
17
|
+
__exportStar(require("./lib/update/dwh-update"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMERBQXdDO0FBQ3hDLGtEQUFnQztBQUNoQyxzREFBb0M7QUFDcEMsc0RBQW9DO0FBQ3BDLDBEQUF3QyJ9
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export declare enum DwhErrorCode {
|
|
2
|
+
ERRORDW_PERIOD_NOT_AVAILABLE = -121,
|
|
3
|
+
ERRORDW_HTTP_USED_BY_ANOTHER = -120,
|
|
4
|
+
ERRORDW_IO_FILE_WR = -110,
|
|
5
|
+
ERRORDW_COM_BRUTE_FORCE = -107,
|
|
6
|
+
ERRORDW_COM_USED_BY_ANOTHER = -106,
|
|
7
|
+
ERRORDW_COM_WR_SECURITY_IS_NOT_OK = -105,
|
|
8
|
+
ERRORDW_COM_RD_SECURITY_IS_NOT_OK = -104,
|
|
9
|
+
ERRORDW_COM_TCPIP_NOT_CONMNECTED = -103,
|
|
10
|
+
ERRORDW_COM_RS232_NOT_CONMNECTED = -102,
|
|
11
|
+
ERRORDW_COM_RK512_CELL_NOT_DEFINED = -101,
|
|
12
|
+
ERRORDW_COM_CHACHE_FULL = -100,
|
|
13
|
+
ERRORDW_EMU_MISSING_INCLUDEFILE = -95,
|
|
14
|
+
ERRORDW_EMU_INCLUDEFILE_TO_DEEP = -94,
|
|
15
|
+
ERRORDW_EMU_INTERNAL_LOOP_ERR = -93,
|
|
16
|
+
ERRORDW_EMU_BUFOVR_COMMENT_PRINT = -92,
|
|
17
|
+
ERRORDW_EMU_NO_GIF_FILENAME = -91,
|
|
18
|
+
ERRORDW_EMU_EOF = -90,
|
|
19
|
+
ERRORDW_EMU_STR_SWITCH_COMMENT_NOT_A_DIGICASE = -89,
|
|
20
|
+
ERRORDW_EMU_STR_SWITCH_COMMENT_TO_LARGE_CASENR = -88,
|
|
21
|
+
ERRORDW_EMU_STR_SWITCH_COMMENT_BUFOVR = -87,
|
|
22
|
+
ERRORDW_EMU_BUFOVR_COMMENT_FILL_BUF = -86,
|
|
23
|
+
ERRORDW_EMU_MISSING_PARENTHESIZE_CLOSE = -85,
|
|
24
|
+
ERRORDW_EMU_MISSING_PARENTHESIZE_OPEN = -84,
|
|
25
|
+
ERRORDW_EMU_ENDWHILE_WITHOUT_WHILE = -83,
|
|
26
|
+
ERRORDW_EMU_DEEPEST_STACKLEVEL_REACHED = -82,
|
|
27
|
+
ERRORDW_EMU_BUFOVR_ANKER_DOESNT_FIT = -81,
|
|
28
|
+
ERRORDW_EMU_STR_USED_WHERE_STR_IS_NOT_SUPPORTED = -80,
|
|
29
|
+
ERRORDW_EMU_HTML_ATTRIBUTE_OPENED_BUT_NOT_CLOSED = -79,
|
|
30
|
+
ERRORDW_EMU_EXPECTED_TOKEN_MISSING = -78,
|
|
31
|
+
ERRORDW_EMU_BUFOVR_FILL_BUF = -77,
|
|
32
|
+
ERRORDW_EMU_BUFOVR_REPL_STR = -76,
|
|
33
|
+
ERRORDW_EMU_BUFOVR_REPL_MEM = -75,
|
|
34
|
+
ERRORDW_EMU_NOT_ENDING_EXPR = -74,
|
|
35
|
+
ERRORDW_EMU_EXPR_ERR = -73,
|
|
36
|
+
ERRORDW_EMU_NON_VALID_FILE = -72,
|
|
37
|
+
ERRORDW_EMU_BUFOVR = -71,
|
|
38
|
+
ERRORDW_SMTP_TIMEOUT = -61,
|
|
39
|
+
ERRORDW_SMTP_MALLOC = -60,
|
|
40
|
+
ERRORDW_HTT_PARAMETER_DIA_LOOP_OVERFLOW = -59,
|
|
41
|
+
ERRORDW_HTT_PARAMETER_ACCESS_FORBIDDEN = -58,
|
|
42
|
+
ERRORDW_HTT_PARAMETER_BUFFER_OVERFLOW = -57,
|
|
43
|
+
ERRORDW_HTT_PARAMETER_DIA_X_NOT_FOUND = -55,
|
|
44
|
+
ERRORDW_HTT_PARAMETER_NOT_DECODEABLE = -54,
|
|
45
|
+
ERRORDW_HTT_PARAMETER_HEAP_OVERFLOW = -53,
|
|
46
|
+
ERRORDW_HTT_DWH_CONNECT_LOST = -52,
|
|
47
|
+
ERRORDW_HTT_NO_FREE_DWH_CONNECT = -51,
|
|
48
|
+
ERRORDW_HTT_PARAMETER_EQ_NOT_FOUND = -50,
|
|
49
|
+
ERRORDW_EXP_NO_EXPRESSION = -49,
|
|
50
|
+
ERRORDW_EXP_ARRAYINDEX_TO_BIG = -48,
|
|
51
|
+
ERRORDW_EXP_SYMBOL_ARRAY_ERROR = -47,
|
|
52
|
+
ERRORDW_EXP_VARIABLE_NOT_TRANSFERED_PUT = -46,
|
|
53
|
+
ERRORDW_EXP_VARIABLE_NOT_TRANSFERED_GET = -45,
|
|
54
|
+
ERRORDW_EXP_SQL_ACCESS_ERROR = -43,
|
|
55
|
+
ERRORDW_EXP_DIV_BY_ZERO = -42,
|
|
56
|
+
ERRORDW_EXP_STRINGDW_HAS_NO_LENGHT = -41,
|
|
57
|
+
ERRORDW_EXP_STRING_FORMAT_WOULD_BE_TO_LONG = -40,
|
|
58
|
+
ERRORDW_EXP_STRING_URL_WOULD_BE_TO_LONG = -39,
|
|
59
|
+
ERRORDW_EXP_ZUWEISUNG_NOT_FOUND = -38,
|
|
60
|
+
ERRORDW_EXP_MACRO_INDEX_END_EXPECTED = -37,
|
|
61
|
+
ERRORDW_EXP_MACRO_PARSE_BUFFER_OVERFLOW = -36,
|
|
62
|
+
ERRORDW_EXP_UNEXPECTED_CHAR_AFTER_EXP = -35,
|
|
63
|
+
ERRORDW_EXP_MALLOC_OVERFLOW = -34,
|
|
64
|
+
ERRORDW_EXP_DOPPELPUNKT_EXPECTET = -33,
|
|
65
|
+
ERRORDW_EXP_STRING_ADD_WOULD_BE_TO_LONG = -32,
|
|
66
|
+
ERRORDW_EXP_OPERAND_FOR_VALUE_UNDEFINED = -31,
|
|
67
|
+
ERRORDW_EXP_OPERAND_FOR_STRING_UNDEFINED = -30,
|
|
68
|
+
ERRORDW_EXP_UNIOPERATOR_NOT_FOR_STRING = -29,
|
|
69
|
+
ERRORDW_EXP_KONSTANT_STRING_TO_LONG = -28,
|
|
70
|
+
ERRORDW_EXP_BRACKET_END_EXPECTED = -27,
|
|
71
|
+
ERRORDW_EXP_FUNCTION_UNDEFINED = -26,
|
|
72
|
+
ERRORDW_EXP_VARIABLE_NOT_DEFINED = -25,
|
|
73
|
+
ERRORDW_EXP_VARIABLE_STARTS_NOT_ALNUM = -24,
|
|
74
|
+
ERRORDW_EXP_FUNCT_BRACKET_END_EXPECTED = -23,
|
|
75
|
+
ERRORDW_EXP_NESTED_TO_DEEP = -22,
|
|
76
|
+
ERRORDW_EXP_INPUT_IN_PUT = -21,
|
|
77
|
+
ERRORDW_EXP_S7SYNTAX_UNDEFINED_TYPE = -20,
|
|
78
|
+
ERRORDW_EXP_S7SYNTAX_DOT_DB_EXPECTET = -19,
|
|
79
|
+
ERRORDW_EXP_S7SYNTAX_DB_EXPECTET = -18,
|
|
80
|
+
ERRORDW_EXP_POINT_IN_IP_EXPECTED = -17,
|
|
81
|
+
ERRORDW_EXP_DIGIT_OR_INDEX_EXPECTED = -16,
|
|
82
|
+
ERRORDW_EXP_INDEX_BRACKET_END_EXPECTED = -15,
|
|
83
|
+
ERRORDW_EXP_INDEX_NO_STRING = -14,
|
|
84
|
+
ERRORDW_EXP_FUNCT_PARAMETER_BRACKET_END_EXPECTED = -13,
|
|
85
|
+
ERRORDW_EXP_DBINXINY_SYNTAX = -12,
|
|
86
|
+
ERRORDW_EXP_VARIABLE_START_SYNTAXERROR = -11,
|
|
87
|
+
ERRORDW_EXP_BRACKET_END_NOT_FOUND = -10,
|
|
88
|
+
ERRORDW_UNDEFINED = -1,
|
|
89
|
+
ERRORDW_OK = 0,
|
|
90
|
+
ERRORDW_OK2 = 1,
|
|
91
|
+
ERRORDW_OK3 = 2
|
|
92
|
+
}
|
|
93
|
+
export declare function getDwhErrorString(code: number): string;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDwhErrorString = exports.DwhErrorCode = void 0;
|
|
4
|
+
// noinspection JSUnusedGlobalSymbols
|
|
5
|
+
var DwhErrorCode;
|
|
6
|
+
(function (DwhErrorCode) {
|
|
7
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_PERIOD_NOT_AVAILABLE"] = -121] = "ERRORDW_PERIOD_NOT_AVAILABLE";
|
|
8
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTTP_USED_BY_ANOTHER"] = -120] = "ERRORDW_HTTP_USED_BY_ANOTHER";
|
|
9
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_IO_FILE_WR"] = -110] = "ERRORDW_IO_FILE_WR";
|
|
10
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_COM_BRUTE_FORCE"] = -107] = "ERRORDW_COM_BRUTE_FORCE";
|
|
11
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_COM_USED_BY_ANOTHER"] = -106] = "ERRORDW_COM_USED_BY_ANOTHER";
|
|
12
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_COM_WR_SECURITY_IS_NOT_OK"] = -105] = "ERRORDW_COM_WR_SECURITY_IS_NOT_OK";
|
|
13
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_COM_RD_SECURITY_IS_NOT_OK"] = -104] = "ERRORDW_COM_RD_SECURITY_IS_NOT_OK";
|
|
14
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_COM_TCPIP_NOT_CONMNECTED"] = -103] = "ERRORDW_COM_TCPIP_NOT_CONMNECTED";
|
|
15
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_COM_RS232_NOT_CONMNECTED"] = -102] = "ERRORDW_COM_RS232_NOT_CONMNECTED";
|
|
16
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_COM_RK512_CELL_NOT_DEFINED"] = -101] = "ERRORDW_COM_RK512_CELL_NOT_DEFINED";
|
|
17
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_COM_CHACHE_FULL"] = -100] = "ERRORDW_COM_CHACHE_FULL";
|
|
18
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_MISSING_INCLUDEFILE"] = -95] = "ERRORDW_EMU_MISSING_INCLUDEFILE";
|
|
19
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_INCLUDEFILE_TO_DEEP"] = -94] = "ERRORDW_EMU_INCLUDEFILE_TO_DEEP";
|
|
20
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_INTERNAL_LOOP_ERR"] = -93] = "ERRORDW_EMU_INTERNAL_LOOP_ERR";
|
|
21
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_BUFOVR_COMMENT_PRINT"] = -92] = "ERRORDW_EMU_BUFOVR_COMMENT_PRINT";
|
|
22
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_NO_GIF_FILENAME"] = -91] = "ERRORDW_EMU_NO_GIF_FILENAME";
|
|
23
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_EOF"] = -90] = "ERRORDW_EMU_EOF";
|
|
24
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_STR_SWITCH_COMMENT_NOT_A_DIGICASE"] = -89] = "ERRORDW_EMU_STR_SWITCH_COMMENT_NOT_A_DIGICASE";
|
|
25
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_STR_SWITCH_COMMENT_TO_LARGE_CASENR"] = -88] = "ERRORDW_EMU_STR_SWITCH_COMMENT_TO_LARGE_CASENR";
|
|
26
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_STR_SWITCH_COMMENT_BUFOVR"] = -87] = "ERRORDW_EMU_STR_SWITCH_COMMENT_BUFOVR";
|
|
27
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_BUFOVR_COMMENT_FILL_BUF"] = -86] = "ERRORDW_EMU_BUFOVR_COMMENT_FILL_BUF";
|
|
28
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_MISSING_PARENTHESIZE_CLOSE"] = -85] = "ERRORDW_EMU_MISSING_PARENTHESIZE_CLOSE";
|
|
29
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_MISSING_PARENTHESIZE_OPEN"] = -84] = "ERRORDW_EMU_MISSING_PARENTHESIZE_OPEN";
|
|
30
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_ENDWHILE_WITHOUT_WHILE"] = -83] = "ERRORDW_EMU_ENDWHILE_WITHOUT_WHILE";
|
|
31
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_DEEPEST_STACKLEVEL_REACHED"] = -82] = "ERRORDW_EMU_DEEPEST_STACKLEVEL_REACHED";
|
|
32
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_BUFOVR_ANKER_DOESNT_FIT"] = -81] = "ERRORDW_EMU_BUFOVR_ANKER_DOESNT_FIT";
|
|
33
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_STR_USED_WHERE_STR_IS_NOT_SUPPORTED"] = -80] = "ERRORDW_EMU_STR_USED_WHERE_STR_IS_NOT_SUPPORTED";
|
|
34
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_HTML_ATTRIBUTE_OPENED_BUT_NOT_CLOSED"] = -79] = "ERRORDW_EMU_HTML_ATTRIBUTE_OPENED_BUT_NOT_CLOSED";
|
|
35
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_EXPECTED_TOKEN_MISSING"] = -78] = "ERRORDW_EMU_EXPECTED_TOKEN_MISSING";
|
|
36
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_BUFOVR_FILL_BUF"] = -77] = "ERRORDW_EMU_BUFOVR_FILL_BUF";
|
|
37
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_BUFOVR_REPL_STR"] = -76] = "ERRORDW_EMU_BUFOVR_REPL_STR";
|
|
38
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_BUFOVR_REPL_MEM"] = -75] = "ERRORDW_EMU_BUFOVR_REPL_MEM";
|
|
39
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_NOT_ENDING_EXPR"] = -74] = "ERRORDW_EMU_NOT_ENDING_EXPR";
|
|
40
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_EXPR_ERR"] = -73] = "ERRORDW_EMU_EXPR_ERR";
|
|
41
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_NON_VALID_FILE"] = -72] = "ERRORDW_EMU_NON_VALID_FILE";
|
|
42
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EMU_BUFOVR"] = -71] = "ERRORDW_EMU_BUFOVR";
|
|
43
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_SMTP_TIMEOUT"] = -61] = "ERRORDW_SMTP_TIMEOUT";
|
|
44
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_SMTP_MALLOC"] = -60] = "ERRORDW_SMTP_MALLOC";
|
|
45
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_PARAMETER_DIA_LOOP_OVERFLOW"] = -59] = "ERRORDW_HTT_PARAMETER_DIA_LOOP_OVERFLOW";
|
|
46
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_PARAMETER_ACCESS_FORBIDDEN"] = -58] = "ERRORDW_HTT_PARAMETER_ACCESS_FORBIDDEN";
|
|
47
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_PARAMETER_BUFFER_OVERFLOW"] = -57] = "ERRORDW_HTT_PARAMETER_BUFFER_OVERFLOW";
|
|
48
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_PARAMETER_DIA_X_NOT_FOUND"] = -55] = "ERRORDW_HTT_PARAMETER_DIA_X_NOT_FOUND";
|
|
49
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_PARAMETER_NOT_DECODEABLE"] = -54] = "ERRORDW_HTT_PARAMETER_NOT_DECODEABLE";
|
|
50
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_PARAMETER_HEAP_OVERFLOW"] = -53] = "ERRORDW_HTT_PARAMETER_HEAP_OVERFLOW";
|
|
51
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_DWH_CONNECT_LOST"] = -52] = "ERRORDW_HTT_DWH_CONNECT_LOST";
|
|
52
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_NO_FREE_DWH_CONNECT"] = -51] = "ERRORDW_HTT_NO_FREE_DWH_CONNECT";
|
|
53
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_HTT_PARAMETER_EQ_NOT_FOUND"] = -50] = "ERRORDW_HTT_PARAMETER_EQ_NOT_FOUND";
|
|
54
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_NO_EXPRESSION"] = -49] = "ERRORDW_EXP_NO_EXPRESSION";
|
|
55
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_ARRAYINDEX_TO_BIG"] = -48] = "ERRORDW_EXP_ARRAYINDEX_TO_BIG";
|
|
56
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_SYMBOL_ARRAY_ERROR"] = -47] = "ERRORDW_EXP_SYMBOL_ARRAY_ERROR";
|
|
57
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_VARIABLE_NOT_TRANSFERED_PUT"] = -46] = "ERRORDW_EXP_VARIABLE_NOT_TRANSFERED_PUT";
|
|
58
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_VARIABLE_NOT_TRANSFERED_GET"] = -45] = "ERRORDW_EXP_VARIABLE_NOT_TRANSFERED_GET";
|
|
59
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_SQL_ACCESS_ERROR"] = -43] = "ERRORDW_EXP_SQL_ACCESS_ERROR";
|
|
60
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_DIV_BY_ZERO"] = -42] = "ERRORDW_EXP_DIV_BY_ZERO";
|
|
61
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_STRINGDW_HAS_NO_LENGHT"] = -41] = "ERRORDW_EXP_STRINGDW_HAS_NO_LENGHT";
|
|
62
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_STRING_FORMAT_WOULD_BE_TO_LONG"] = -40] = "ERRORDW_EXP_STRING_FORMAT_WOULD_BE_TO_LONG";
|
|
63
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_STRING_URL_WOULD_BE_TO_LONG"] = -39] = "ERRORDW_EXP_STRING_URL_WOULD_BE_TO_LONG";
|
|
64
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_ZUWEISUNG_NOT_FOUND"] = -38] = "ERRORDW_EXP_ZUWEISUNG_NOT_FOUND";
|
|
65
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_MACRO_INDEX_END_EXPECTED"] = -37] = "ERRORDW_EXP_MACRO_INDEX_END_EXPECTED";
|
|
66
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_MACRO_PARSE_BUFFER_OVERFLOW"] = -36] = "ERRORDW_EXP_MACRO_PARSE_BUFFER_OVERFLOW";
|
|
67
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_UNEXPECTED_CHAR_AFTER_EXP"] = -35] = "ERRORDW_EXP_UNEXPECTED_CHAR_AFTER_EXP";
|
|
68
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_MALLOC_OVERFLOW"] = -34] = "ERRORDW_EXP_MALLOC_OVERFLOW";
|
|
69
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_DOPPELPUNKT_EXPECTET"] = -33] = "ERRORDW_EXP_DOPPELPUNKT_EXPECTET";
|
|
70
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_STRING_ADD_WOULD_BE_TO_LONG"] = -32] = "ERRORDW_EXP_STRING_ADD_WOULD_BE_TO_LONG";
|
|
71
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_OPERAND_FOR_VALUE_UNDEFINED"] = -31] = "ERRORDW_EXP_OPERAND_FOR_VALUE_UNDEFINED";
|
|
72
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_OPERAND_FOR_STRING_UNDEFINED"] = -30] = "ERRORDW_EXP_OPERAND_FOR_STRING_UNDEFINED";
|
|
73
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_UNIOPERATOR_NOT_FOR_STRING"] = -29] = "ERRORDW_EXP_UNIOPERATOR_NOT_FOR_STRING";
|
|
74
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_KONSTANT_STRING_TO_LONG"] = -28] = "ERRORDW_EXP_KONSTANT_STRING_TO_LONG";
|
|
75
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_BRACKET_END_EXPECTED"] = -27] = "ERRORDW_EXP_BRACKET_END_EXPECTED";
|
|
76
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_FUNCTION_UNDEFINED"] = -26] = "ERRORDW_EXP_FUNCTION_UNDEFINED";
|
|
77
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_VARIABLE_NOT_DEFINED"] = -25] = "ERRORDW_EXP_VARIABLE_NOT_DEFINED";
|
|
78
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_VARIABLE_STARTS_NOT_ALNUM"] = -24] = "ERRORDW_EXP_VARIABLE_STARTS_NOT_ALNUM";
|
|
79
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_FUNCT_BRACKET_END_EXPECTED"] = -23] = "ERRORDW_EXP_FUNCT_BRACKET_END_EXPECTED";
|
|
80
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_NESTED_TO_DEEP"] = -22] = "ERRORDW_EXP_NESTED_TO_DEEP";
|
|
81
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_INPUT_IN_PUT"] = -21] = "ERRORDW_EXP_INPUT_IN_PUT";
|
|
82
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_S7SYNTAX_UNDEFINED_TYPE"] = -20] = "ERRORDW_EXP_S7SYNTAX_UNDEFINED_TYPE";
|
|
83
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_S7SYNTAX_DOT_DB_EXPECTET"] = -19] = "ERRORDW_EXP_S7SYNTAX_DOT_DB_EXPECTET";
|
|
84
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_S7SYNTAX_DB_EXPECTET"] = -18] = "ERRORDW_EXP_S7SYNTAX_DB_EXPECTET";
|
|
85
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_POINT_IN_IP_EXPECTED"] = -17] = "ERRORDW_EXP_POINT_IN_IP_EXPECTED";
|
|
86
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_DIGIT_OR_INDEX_EXPECTED"] = -16] = "ERRORDW_EXP_DIGIT_OR_INDEX_EXPECTED";
|
|
87
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_INDEX_BRACKET_END_EXPECTED"] = -15] = "ERRORDW_EXP_INDEX_BRACKET_END_EXPECTED";
|
|
88
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_INDEX_NO_STRING"] = -14] = "ERRORDW_EXP_INDEX_NO_STRING";
|
|
89
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_FUNCT_PARAMETER_BRACKET_END_EXPECTED"] = -13] = "ERRORDW_EXP_FUNCT_PARAMETER_BRACKET_END_EXPECTED";
|
|
90
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_DBINXINY_SYNTAX"] = -12] = "ERRORDW_EXP_DBINXINY_SYNTAX";
|
|
91
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_VARIABLE_START_SYNTAXERROR"] = -11] = "ERRORDW_EXP_VARIABLE_START_SYNTAXERROR";
|
|
92
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_EXP_BRACKET_END_NOT_FOUND"] = -10] = "ERRORDW_EXP_BRACKET_END_NOT_FOUND";
|
|
93
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_UNDEFINED"] = -1] = "ERRORDW_UNDEFINED";
|
|
94
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_OK"] = 0] = "ERRORDW_OK";
|
|
95
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_OK2"] = 1] = "ERRORDW_OK2";
|
|
96
|
+
DwhErrorCode[DwhErrorCode["ERRORDW_OK3"] = 2] = "ERRORDW_OK3";
|
|
97
|
+
})(DwhErrorCode = exports.DwhErrorCode || (exports.DwhErrorCode = {}));
|
|
98
|
+
function getDwhErrorString(code) {
|
|
99
|
+
const ret = DwhErrorCode[code];
|
|
100
|
+
return ret || DwhErrorCode[DwhErrorCode.ERRORDW_UNDEFINED];
|
|
101
|
+
}
|
|
102
|
+
exports.getDwhErrorString = getDwhErrorString;
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHdoRXJyb3JDb2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvRHdoRXJyb3JDb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxQ0FBcUM7QUFDckMsSUFBWSxZQWtHWDtBQWxHRCxXQUFZLFlBQVk7SUFDdEIsa0dBQW1DLENBQUE7SUFDbkMsa0dBQW1DLENBQUE7SUFFbkMsOEVBQXlCLENBQUE7SUFFekIsd0ZBQThCLENBQUE7SUFDOUIsZ0dBQWtDLENBQUE7SUFDbEMsNEdBQXdDLENBQUE7SUFDeEMsNEdBQXdDLENBQUE7SUFDeEMsMEdBQXVDLENBQUE7SUFDdkMsMEdBQXVDLENBQUE7SUFDdkMsOEdBQXlDLENBQUE7SUFDekMsd0ZBQThCLENBQUE7SUFFOUIsdUdBQXFDLENBQUE7SUFDckMsdUdBQXFDLENBQUE7SUFDckMsbUdBQW1DLENBQUE7SUFDbkMseUdBQXNDLENBQUE7SUFDdEMsK0ZBQWlDLENBQUE7SUFDakMsdUVBQXFCLENBQUE7SUFDckIsbUlBQW1ELENBQUE7SUFDbkQscUlBQW9ELENBQUE7SUFDcEQsbUhBQTJDLENBQUE7SUFDM0MsK0dBQXlDLENBQUE7SUFDekMscUhBQTRDLENBQUE7SUFDNUMsbUhBQTJDLENBQUE7SUFDM0MsNkdBQXdDLENBQUE7SUFDeEMscUhBQTRDLENBQUE7SUFDNUMsK0dBQXlDLENBQUE7SUFDekMsdUlBQXFELENBQUE7SUFDckQseUlBQXNELENBQUE7SUFDdEQsNkdBQXdDLENBQUE7SUFDeEMsK0ZBQWlDLENBQUE7SUFDakMsK0ZBQWlDLENBQUE7SUFDakMsK0ZBQWlDLENBQUE7SUFDakMsK0ZBQWlDLENBQUE7SUFDakMsaUZBQTBCLENBQUE7SUFDMUIsNkZBQWdDLENBQUE7SUFDaEMsNkVBQXdCLENBQUE7SUFFeEIsaUZBQTBCLENBQUE7SUFDMUIsK0VBQXlCLENBQUE7SUFFekIsdUhBQTZDLENBQUE7SUFDN0MscUhBQTRDLENBQUE7SUFDNUMsbUhBQTJDLENBQUE7SUFDM0MsbUhBQTJDLENBQUE7SUFDM0MsaUhBQTBDLENBQUE7SUFDMUMsK0dBQXlDLENBQUE7SUFDekMsaUdBQWtDLENBQUE7SUFDbEMsdUdBQXFDLENBQUE7SUFDckMsNkdBQXdDLENBQUE7SUFFeEMsMkZBQStCLENBQUE7SUFDL0IsbUdBQW1DLENBQUE7SUFDbkMscUdBQW9DLENBQUE7SUFDcEMsdUhBQTZDLENBQUE7SUFDN0MsdUhBQTZDLENBQUE7SUFDN0MsaUdBQWtDLENBQUE7SUFDbEMsdUZBQTZCLENBQUE7SUFDN0IsNkdBQXdDLENBQUE7SUFDeEMsNkhBQWdELENBQUE7SUFDaEQsdUhBQTZDLENBQUE7SUFDN0MsdUdBQXFDLENBQUE7SUFDckMsaUhBQTBDLENBQUE7SUFDMUMsdUhBQTZDLENBQUE7SUFDN0MsbUhBQTJDLENBQUE7SUFDM0MsK0ZBQWlDLENBQUE7SUFDakMseUdBQXNDLENBQUE7SUFDdEMsdUhBQTZDLENBQUE7SUFDN0MsdUhBQTZDLENBQUE7SUFDN0MseUhBQThDLENBQUE7SUFDOUMscUhBQTRDLENBQUE7SUFDNUMsK0dBQXlDLENBQUE7SUFDekMseUdBQXNDLENBQUE7SUFDdEMscUdBQW9DLENBQUE7SUFDcEMseUdBQXNDLENBQUE7SUFDdEMsbUhBQTJDLENBQUE7SUFDM0MscUhBQTRDLENBQUE7SUFDNUMsNkZBQWdDLENBQUE7SUFDaEMseUZBQThCLENBQUE7SUFDOUIsK0dBQXlDLENBQUE7SUFDekMsaUhBQTBDLENBQUE7SUFDMUMseUdBQXNDLENBQUE7SUFDdEMseUdBQXNDLENBQUE7SUFDdEMsK0dBQXlDLENBQUE7SUFDekMscUhBQTRDLENBQUE7SUFDNUMsK0ZBQWlDLENBQUE7SUFDakMseUlBQXNELENBQUE7SUFDdEQsK0ZBQWlDLENBQUE7SUFDakMscUhBQTRDLENBQUE7SUFDNUMsMkdBQXVDLENBQUE7SUFFdkMsMEVBQXNCLENBQUE7SUFDdEIsMkRBQWMsQ0FBQTtJQUNkLDZEQUFlLENBQUE7SUFDZiw2REFBZSxDQUFBO0FBQ2pCLENBQUMsRUFsR1csWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFrR3ZCO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsSUFBWTtJQUM1QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFIRCw4Q0FHQyJ9
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Logger } from 'tslog';
|
|
2
|
+
import { DwhFetch, FileInfo } from '../dwh-fetch';
|
|
3
|
+
export interface BackupOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Directory on the device to backup. Default is root directory '/'.
|
|
6
|
+
*/
|
|
7
|
+
src?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Handler will be executed before file download.
|
|
10
|
+
* Return true to download current file otherwise false.
|
|
11
|
+
* Default returns always true and all files will be downloaded.
|
|
12
|
+
*/
|
|
13
|
+
processHandler?: (fileInfo: FileInfo) => boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare class DwhBackup {
|
|
16
|
+
dwhFetch: DwhFetch;
|
|
17
|
+
private log;
|
|
18
|
+
/**
|
|
19
|
+
* DwhFetch Instance should be valid with authority token because it will be used to download files.
|
|
20
|
+
* @param dwhFetch
|
|
21
|
+
*/
|
|
22
|
+
constructor(dwhFetch: DwhFetch, log?: Logger);
|
|
23
|
+
/**
|
|
24
|
+
* Downloads all files or specific directory from device into dst directory.
|
|
25
|
+
* @param dst Destination directory to save files into.
|
|
26
|
+
* @returns true when backup was successful.
|
|
27
|
+
*/
|
|
28
|
+
backup(dst: string, opts?: BackupOptions): Promise<boolean>;
|
|
29
|
+
private logBackupResult;
|
|
30
|
+
/**
|
|
31
|
+
* Checks if directory exists.
|
|
32
|
+
* @param dst Destination directory to check.
|
|
33
|
+
* @returns true when directory exists.
|
|
34
|
+
*/
|
|
35
|
+
private backupDirectoryExists;
|
|
36
|
+
private backupRecursively;
|
|
37
|
+
downloadFile(dst: string, src: string): Promise<boolean>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.DwhBackup = void 0;
|
|
23
|
+
const fs = __importStar(require("fs"));
|
|
24
|
+
const path_1 = require("path");
|
|
25
|
+
const tslog_1 = require("tslog");
|
|
26
|
+
class DwhBackup {
|
|
27
|
+
/**
|
|
28
|
+
* DwhFetch Instance should be valid with authority token because it will be used to download files.
|
|
29
|
+
* @param dwhFetch
|
|
30
|
+
*/
|
|
31
|
+
constructor(dwhFetch, log = new tslog_1.Logger()) {
|
|
32
|
+
this.dwhFetch = dwhFetch;
|
|
33
|
+
this.log = log;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Downloads all files or specific directory from device into dst directory.
|
|
37
|
+
* @param dst Destination directory to save files into.
|
|
38
|
+
* @returns true when backup was successful.
|
|
39
|
+
*/
|
|
40
|
+
async backup(dst, opts) {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
this.log.info(`Backup started. Downloading files into ${dst}`);
|
|
43
|
+
if (!(await this.backupDirectoryExists(dst))) {
|
|
44
|
+
return this.logBackupResult(false);
|
|
45
|
+
}
|
|
46
|
+
const result = await this.backupRecursively(dst, {
|
|
47
|
+
src: (_a = opts === null || opts === void 0 ? void 0 : opts.src) !== null && _a !== void 0 ? _a : '/',
|
|
48
|
+
processHandler: (_b = opts === null || opts === void 0 ? void 0 : opts.processHandler) !== null && _b !== void 0 ? _b : (() => true),
|
|
49
|
+
});
|
|
50
|
+
return this.logBackupResult(result);
|
|
51
|
+
}
|
|
52
|
+
logBackupResult(result) {
|
|
53
|
+
if (result) {
|
|
54
|
+
this.log.info('Backup was successful');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.log.error('Backup failed');
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Checks if directory exists.
|
|
63
|
+
* @param dst Destination directory to check.
|
|
64
|
+
* @returns true when directory exists.
|
|
65
|
+
*/
|
|
66
|
+
async backupDirectoryExists(dst) {
|
|
67
|
+
try {
|
|
68
|
+
this.log.debug(`Checking directory if exists:`, dst);
|
|
69
|
+
const dstStat = await fs.promises.lstat(dst);
|
|
70
|
+
if (!dstStat.isDirectory()) {
|
|
71
|
+
this.log.error(`Destination ${dst} is not a directory`);
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
this.log.debug(`Destination is a directory`);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
this.log.error(`Directory check failed`, e);
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
async backupRecursively(dst, opts) {
|
|
83
|
+
if (!opts.src.endsWith('/')) {
|
|
84
|
+
opts.src += '/';
|
|
85
|
+
}
|
|
86
|
+
const fetchFilesPattern = opts.src + '*';
|
|
87
|
+
this.log.debug(`Fetching files:`, fetchFilesPattern);
|
|
88
|
+
const files = await this.dwhFetch.files(fetchFilesPattern);
|
|
89
|
+
this.log.debug(`Fetched:`, files.length);
|
|
90
|
+
for (const file of files) {
|
|
91
|
+
let result = true;
|
|
92
|
+
const newDstFile = path_1.join(dst, file.name);
|
|
93
|
+
const src = opts.src + file.name;
|
|
94
|
+
if (!opts.processHandler(file)) {
|
|
95
|
+
this.log.info(`Ignoring ${file.isDirectory ? 'directory' : 'file'} ${src}`);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (file.isDirectory) {
|
|
99
|
+
this.log.info(`Creating directory ${newDstFile}`);
|
|
100
|
+
await fs.promises.mkdir(newDstFile);
|
|
101
|
+
this.log.info(`Directory created`);
|
|
102
|
+
result = await this.backupRecursively(newDstFile, Object.assign(Object.assign({}, opts), { src }));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
result = await this.downloadFile(newDstFile, src);
|
|
106
|
+
}
|
|
107
|
+
if (!result) {
|
|
108
|
+
this.log.debug(`Canceling download on failure`);
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
this.log.debug(`Downloading all files successful`);
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
async downloadFile(dst, src) {
|
|
116
|
+
this.log.info(`Downloading file ${src}.`);
|
|
117
|
+
return new Promise((resolve) => {
|
|
118
|
+
try {
|
|
119
|
+
const downloadStream = this.dwhFetch.downloadFile(src);
|
|
120
|
+
void downloadStream.on('error', (e) => {
|
|
121
|
+
this.log.error(`Download file stream error event:`, e);
|
|
122
|
+
resolve(false);
|
|
123
|
+
});
|
|
124
|
+
const stream = fs.createWriteStream(dst);
|
|
125
|
+
downloadStream.pipe(stream);
|
|
126
|
+
stream.on('finish', () => {
|
|
127
|
+
this.log.info(`Download file succeeded`);
|
|
128
|
+
return resolve(true);
|
|
129
|
+
});
|
|
130
|
+
stream.on('error', () => {
|
|
131
|
+
this.log.info(`Download file failed`);
|
|
132
|
+
return resolve(false);
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
this.log.error(`Download file throw error:`, e);
|
|
137
|
+
resolve(false);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.DwhBackup = DwhBackup;
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHdoLWJhY2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvYmFja3VwL2R3aC1iYWNrdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwrQkFBNEI7QUFDNUIsaUNBQStCO0FBZ0IvQixNQUFhLFNBQVM7SUFDcEI7OztPQUdHO0lBQ0gsWUFBbUIsUUFBa0IsRUFBVSxNQUFNLElBQUksY0FBTSxFQUFFO1FBQTlDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFlO0lBQUcsQ0FBQztJQUNyRTs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXLEVBQUUsSUFBb0I7O1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDNUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9DLEdBQUcsUUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsR0FBRyxtQ0FBSSxHQUFHO1lBQ3JCLGNBQWMsUUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsY0FBYyxtQ0FBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztTQUNyRCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFlO1FBQ3JDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcs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
|