stimulsoft-data-adapter 2021.3.7 → 2021.4.4
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/FirebirdAdapter.js +147 -141
- package/MSSQLAdapter.js +248 -229
- package/MySQLAdapter.js +207 -201
- package/PostgreSQLAdapter.js +246 -240
- package/app.js +89 -82
- package/package.json +50 -50
package/app.js
CHANGED
|
@@ -1,82 +1,89 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
1
|
+
/*
|
|
2
|
+
Stimulsoft.Reports.JS
|
|
3
|
+
Version: 2021.4.4
|
|
4
|
+
Build date: 2021.11.18
|
|
5
|
+
License: https://www.stimulsoft.com/en/licensing/reports
|
|
6
|
+
*/
|
|
7
|
+
var http = require('http');
|
|
8
|
+
var MySQLAdapter = require('./MySQLAdapter');
|
|
9
|
+
var FirebirdAdapter = require('./FirebirdAdapter');
|
|
10
|
+
var MSSQLAdapter = require('./MSSQLAdapter');
|
|
11
|
+
var PostgreSQLAdapter = require('./PostgreSQLAdapter');
|
|
12
|
+
|
|
13
|
+
var connectionStringBuilder;
|
|
14
|
+
var response;
|
|
15
|
+
function accept(req, res) {
|
|
16
|
+
response = res;
|
|
17
|
+
response.setHeader("Access-Control-Allow-Origin", "*");
|
|
18
|
+
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
|
19
|
+
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
|
|
20
|
+
response.setHeader("Cache-Control", "no-cache");
|
|
21
|
+
|
|
22
|
+
var data = "";
|
|
23
|
+
req.on('data', function (buffer) {
|
|
24
|
+
data += buffer;
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
req.on('end', function () {
|
|
28
|
+
if (data.indexOf("{") != 0) {
|
|
29
|
+
data = Buffer.from(data.replace(/[A-Za-z]/g, function (c) {
|
|
30
|
+
return String.fromCharCode(c.charCodeAt(0) + (c.toUpperCase() <= "M" ? 13 : -13));
|
|
31
|
+
}), "base64").toString("ascii");
|
|
32
|
+
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
command = JSON.parse(data.toString());
|
|
36
|
+
|
|
37
|
+
command.queryString = applyQueryParameters(command.queryString, command.parameters, command.escapeQueryParameters);
|
|
38
|
+
|
|
39
|
+
if (command.database == "MySQL") MySQLAdapter.process(command, onProcess);
|
|
40
|
+
else if (command.database == "Firebird") FirebirdAdapter.process(command, onProcess);
|
|
41
|
+
else if (command.database == "MS SQL") MSSQLAdapter.process(command, onProcess);
|
|
42
|
+
else if (command.database == "PostgreSQL") PostgreSQLAdapter.process(command, onProcess);
|
|
43
|
+
else onResult({ success: false, notice: "Database '" + command.database + "' not supported!" });
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
var applyQueryParameters = function (baseSqlCommand, parameters, escapeQueryParameters) {
|
|
48
|
+
if (baseSqlCommand == null || baseSqlCommand.indexOf("@") < 0) return baseSqlCommand;
|
|
49
|
+
|
|
50
|
+
var result = "";
|
|
51
|
+
while (baseSqlCommand.indexOf("@") >= 0 && parameters != null && parameters.length > 0) {
|
|
52
|
+
result += baseSqlCommand.substring(0, baseSqlCommand.indexOf("@"));
|
|
53
|
+
baseSqlCommand = baseSqlCommand.substring(baseSqlCommand.indexOf("@") + 1);
|
|
54
|
+
|
|
55
|
+
var parameterName = "";
|
|
56
|
+
|
|
57
|
+
while (baseSqlCommand.length > 0) {
|
|
58
|
+
var char = baseSqlCommand.charAt(0);
|
|
59
|
+
if (char.length === 1 && char.match(/[a-zA-Z0-9_-]/i)) {
|
|
60
|
+
parameterName += char;
|
|
61
|
+
baseSqlCommand = baseSqlCommand.substring(1);
|
|
62
|
+
}
|
|
63
|
+
else break;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
var parameter = parameters.find(parameter => parameter.name.toLowerCase() == parameterName.toLowerCase());
|
|
67
|
+
if (parameter) {
|
|
68
|
+
if (parameter.typeGroup != "number") {
|
|
69
|
+
if (escapeQueryParameters)
|
|
70
|
+
result += "'" + parameter.value.toString().replace(/\\/gi, "\\\\").replace(/\'/gi, "\\\'").replace(/\"/gi, "\\\"") + "'";
|
|
71
|
+
else
|
|
72
|
+
result += "'" + parameter.value.toString() + "'";
|
|
73
|
+
}
|
|
74
|
+
else
|
|
75
|
+
result += parameter.value.toString();
|
|
76
|
+
}
|
|
77
|
+
else
|
|
78
|
+
result += "@" + parameterName;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return result + baseSqlCommand;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
var onProcess = function (result) {
|
|
85
|
+
result.handlerVersion = "2021.4.4";
|
|
86
|
+
response.end(JSON.stringify(result));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
http.createServer(accept).listen(9615);
|
package/package.json
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "stimulsoft-data-adapter",
|
|
3
|
-
"version": "2021.
|
|
4
|
-
"description": "Nodejs data adapter for Stimulsoft Reports.JS",
|
|
5
|
-
"main": "app.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"start": "node app.js"
|
|
8
|
-
},
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "https://github.com/stimulsoft/DataAdapters.JS/tree/main/NodejsDataAdapters"
|
|
12
|
-
},
|
|
13
|
-
"dependencies": {
|
|
14
|
-
"mssql": "^6.2.1",
|
|
15
|
-
"mysql": "^2.15.0",
|
|
16
|
-
"node-firebird": "^0.9.8",
|
|
17
|
-
"pg": "^8.3.3",
|
|
18
|
-
"tzdata": "^1.0.25"
|
|
19
|
-
},
|
|
20
|
-
"files": [
|
|
21
|
-
"package.json",
|
|
22
|
-
"README.md",
|
|
23
|
-
"app.js",
|
|
24
|
-
"FirebirdAdapter.js",
|
|
25
|
-
"MSSQLAdapter.js",
|
|
26
|
-
"MySQLAdapter.js",
|
|
27
|
-
"OracleAdapter.js",
|
|
28
|
-
"PostgreSQLAdapter.js"
|
|
29
|
-
],
|
|
30
|
-
"author": {
|
|
31
|
-
"name": "Stimulsoft",
|
|
32
|
-
"url": "http://www.stimulsoft.com"
|
|
33
|
-
},
|
|
34
|
-
"maintainers": [
|
|
35
|
-
{
|
|
36
|
-
"name": "Stimulsoft",
|
|
37
|
-
"email": "info@stimulsoft.com",
|
|
38
|
-
"url": "http://www.stimulsoft.com"
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
"contributors": [
|
|
42
|
-
{
|
|
43
|
-
"name": "Stimulsoft",
|
|
44
|
-
"email": "info@stimulsoft.com",
|
|
45
|
-
"url": "http://www.stimulsoft.com"
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
"license": "Closed Source",
|
|
49
|
-
"homepage": "https://github.com/stimulsoft/DataAdapters.JS/tree/main/NodejsDataAdapters"
|
|
50
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "stimulsoft-data-adapter",
|
|
3
|
+
"version": "2021.4.4",
|
|
4
|
+
"description": "Nodejs data adapter for Stimulsoft Reports.JS",
|
|
5
|
+
"main": "app.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"start": "node app.js"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/stimulsoft/DataAdapters.JS/tree/main/NodejsDataAdapters"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"mssql": "^6.2.1",
|
|
15
|
+
"mysql": "^2.15.0",
|
|
16
|
+
"node-firebird": "^0.9.8",
|
|
17
|
+
"pg": "^8.3.3",
|
|
18
|
+
"tzdata": "^1.0.25"
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"package.json",
|
|
22
|
+
"README.md",
|
|
23
|
+
"app.js",
|
|
24
|
+
"FirebirdAdapter.js",
|
|
25
|
+
"MSSQLAdapter.js",
|
|
26
|
+
"MySQLAdapter.js",
|
|
27
|
+
"OracleAdapter.js",
|
|
28
|
+
"PostgreSQLAdapter.js"
|
|
29
|
+
],
|
|
30
|
+
"author": {
|
|
31
|
+
"name": "Stimulsoft",
|
|
32
|
+
"url": "http://www.stimulsoft.com"
|
|
33
|
+
},
|
|
34
|
+
"maintainers": [
|
|
35
|
+
{
|
|
36
|
+
"name": "Stimulsoft",
|
|
37
|
+
"email": "info@stimulsoft.com",
|
|
38
|
+
"url": "http://www.stimulsoft.com"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"contributors": [
|
|
42
|
+
{
|
|
43
|
+
"name": "Stimulsoft",
|
|
44
|
+
"email": "info@stimulsoft.com",
|
|
45
|
+
"url": "http://www.stimulsoft.com"
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"license": "Closed Source",
|
|
49
|
+
"homepage": "https://github.com/stimulsoft/DataAdapters.JS/tree/main/NodejsDataAdapters"
|
|
50
|
+
}
|