@itentialopensource/adapter-winston_syslog 1.6.0 → 1.7.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/CHANGELOG.md +8 -0
- package/package.json +8 -8
- package/propertiesSchema.json +17 -16
- package/report/updateReport1770998612759.json +120 -0
- package/sampleProperties.json +2 -1
- package/test/unit/adapterTestUnit.js +2 -2
- package/utils/methodDocumentor.js +62 -37
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itentialopensource/adapter-winston_syslog",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "This adapter integrates with winston_syslog and sends logs to any syslog server.",
|
|
5
5
|
"main": "adapter.js",
|
|
6
6
|
"systemName": "winston_syslog",
|
|
7
|
-
"wizardVersion": "3.
|
|
8
|
-
"engineVersion": "1.
|
|
7
|
+
"wizardVersion": "3.12.1",
|
|
8
|
+
"engineVersion": "1.82.5",
|
|
9
9
|
"adapterType": "http",
|
|
10
10
|
"scripts": {
|
|
11
11
|
"preinstall": "node utils/setup.js",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
],
|
|
41
41
|
"license": "Apache-2.0",
|
|
42
42
|
"engines": {
|
|
43
|
-
"node": ">=
|
|
44
|
-
"npm": ">=
|
|
43
|
+
"node": ">= 18.18.0",
|
|
44
|
+
"npm": ">= 9.8.1"
|
|
45
45
|
},
|
|
46
46
|
"repository": {
|
|
47
47
|
"type": "git",
|
|
@@ -50,15 +50,15 @@
|
|
|
50
50
|
"author": "Itential",
|
|
51
51
|
"homepage": "https://gitlab.com/itentialopensource/adapters/adapter-winston_syslog#readme",
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@itentialopensource/adapter-utils": "6.1.
|
|
53
|
+
"@itentialopensource/adapter-utils": "6.1.14",
|
|
54
54
|
"acorn": "8.14.1",
|
|
55
55
|
"ajv": "8.17.1",
|
|
56
|
-
"axios": "1.
|
|
56
|
+
"axios": "1.13.5",
|
|
57
57
|
"commander": "11.1.0",
|
|
58
58
|
"fs-extra": "11.3.0",
|
|
59
59
|
"json-query": "2.2.2",
|
|
60
60
|
"json5": "2.2.2",
|
|
61
|
-
"mocha": "
|
|
61
|
+
"mocha": "11.3.0",
|
|
62
62
|
"mocha-param": "2.0.1",
|
|
63
63
|
"mongodb": "4.17.2",
|
|
64
64
|
"ping": "0.4.4",
|
package/propertiesSchema.json
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"boolean",
|
|
67
67
|
"string"
|
|
68
68
|
],
|
|
69
|
-
"description": "When true the metrics collected by the adapter will be stored in mongo or
|
|
69
|
+
"description": "When true the metrics collected by the adapter will be stored in mongo or in the adapter. If a full path is provided, metrics will be saved in the path provided.",
|
|
70
70
|
"default": false
|
|
71
71
|
},
|
|
72
72
|
"stub": {
|
|
@@ -497,7 +497,7 @@
|
|
|
497
497
|
"type": "integer",
|
|
498
498
|
"description": "How often the healthcheck should run (in milliseconds).",
|
|
499
499
|
"default": 300000,
|
|
500
|
-
"minimum":
|
|
500
|
+
"minimum": 30000,
|
|
501
501
|
"maximum": 3600000
|
|
502
502
|
},
|
|
503
503
|
"protocol": {
|
|
@@ -735,9 +735,10 @@
|
|
|
735
735
|
},
|
|
736
736
|
"keep_alive_interval": {
|
|
737
737
|
"type": "integer",
|
|
738
|
-
"description": "TCP keep-alive interval in
|
|
738
|
+
"description": "TCP keep-alive interval in milliseconds to prevent connection timeout during long-running requests. 0 = disabled (default). Minimum value when enabled is 30000ms (30 seconds). Values below 30000ms will be auto-corrected to 30000ms with a warning.",
|
|
739
739
|
"default": 0,
|
|
740
|
-
"minimum": 0
|
|
740
|
+
"minimum": 0,
|
|
741
|
+
"maximum": 3600000
|
|
741
742
|
}
|
|
742
743
|
},
|
|
743
744
|
"required": [
|
|
@@ -1144,7 +1145,7 @@
|
|
|
1144
1145
|
},
|
|
1145
1146
|
"requestFields": {
|
|
1146
1147
|
"type": "object",
|
|
1147
|
-
"description": "The json object with
|
|
1148
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1148
1149
|
"additionalProperties": {
|
|
1149
1150
|
"type": [
|
|
1150
1151
|
"string",
|
|
@@ -1287,7 +1288,7 @@
|
|
|
1287
1288
|
},
|
|
1288
1289
|
"requestFields": {
|
|
1289
1290
|
"type": "object",
|
|
1290
|
-
"description": "The json object with
|
|
1291
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1291
1292
|
"additionalProperties": {
|
|
1292
1293
|
"type": [
|
|
1293
1294
|
"string",
|
|
@@ -1398,7 +1399,7 @@
|
|
|
1398
1399
|
},
|
|
1399
1400
|
"requestFields": {
|
|
1400
1401
|
"type": "object",
|
|
1401
|
-
"description": "The json object with
|
|
1402
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1402
1403
|
"additionalProperties": {
|
|
1403
1404
|
"type": [
|
|
1404
1405
|
"string",
|
|
@@ -1494,7 +1495,7 @@
|
|
|
1494
1495
|
},
|
|
1495
1496
|
"requestFields": {
|
|
1496
1497
|
"type": "object",
|
|
1497
|
-
"description": "The json object with
|
|
1498
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1498
1499
|
"additionalProperties": {
|
|
1499
1500
|
"type": [
|
|
1500
1501
|
"string",
|
|
@@ -1579,7 +1580,7 @@
|
|
|
1579
1580
|
},
|
|
1580
1581
|
"requestFields": {
|
|
1581
1582
|
"type": "object",
|
|
1582
|
-
"description": "The json object with
|
|
1583
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1583
1584
|
"additionalProperties": {
|
|
1584
1585
|
"type": [
|
|
1585
1586
|
"string",
|
|
@@ -1667,12 +1668,12 @@
|
|
|
1667
1668
|
"properties": {
|
|
1668
1669
|
"path": {
|
|
1669
1670
|
"type": "string",
|
|
1670
|
-
"description": "The fully qualified path of the call to
|
|
1671
|
+
"description": "The fully qualified path of the call to populate the cache (e.g. /rest/api/devices)",
|
|
1671
1672
|
"default": ""
|
|
1672
1673
|
},
|
|
1673
1674
|
"method": {
|
|
1674
1675
|
"type": "string",
|
|
1675
|
-
"description": "The method of the call to
|
|
1676
|
+
"description": "The method of the call to populate the cache",
|
|
1676
1677
|
"default": "GET"
|
|
1677
1678
|
},
|
|
1678
1679
|
"pagination": {
|
|
@@ -1709,7 +1710,7 @@
|
|
|
1709
1710
|
},
|
|
1710
1711
|
"query": {
|
|
1711
1712
|
"type": "object",
|
|
1712
|
-
"description": "The json object with query parameters of the call to
|
|
1713
|
+
"description": "The json object with query parameters of the call to populate the cache",
|
|
1713
1714
|
"additionalProperties": {
|
|
1714
1715
|
"type": [
|
|
1715
1716
|
"string",
|
|
@@ -1719,7 +1720,7 @@
|
|
|
1719
1720
|
},
|
|
1720
1721
|
"body": {
|
|
1721
1722
|
"type": "object",
|
|
1722
|
-
"description": "The json object with body of the call to
|
|
1723
|
+
"description": "The json object with body of the call to populate the cache",
|
|
1723
1724
|
"additionalProperties": {
|
|
1724
1725
|
"type": [
|
|
1725
1726
|
"string",
|
|
@@ -1729,7 +1730,7 @@
|
|
|
1729
1730
|
},
|
|
1730
1731
|
"headers": {
|
|
1731
1732
|
"type": "object",
|
|
1732
|
-
"description": "The json object with headers of the call to
|
|
1733
|
+
"description": "The json object with headers of the call to populate the cache",
|
|
1733
1734
|
"additionalProperties": {
|
|
1734
1735
|
"type": [
|
|
1735
1736
|
"string",
|
|
@@ -1748,7 +1749,7 @@
|
|
|
1748
1749
|
},
|
|
1749
1750
|
"requestFields": {
|
|
1750
1751
|
"type": "object",
|
|
1751
|
-
"description": "The json object with
|
|
1752
|
+
"description": "The json object with request fields of the call to populate the cache",
|
|
1752
1753
|
"additionalProperties": {
|
|
1753
1754
|
"type": [
|
|
1754
1755
|
"string",
|
|
@@ -1764,7 +1765,7 @@
|
|
|
1764
1765
|
},
|
|
1765
1766
|
"responseFields": {
|
|
1766
1767
|
"type": "object",
|
|
1767
|
-
"description": "The json object with response fields of the call to
|
|
1768
|
+
"description": "The json object with response fields of the call to populate the cache",
|
|
1768
1769
|
"additionalProperties": {
|
|
1769
1770
|
"type": [
|
|
1770
1771
|
"string",
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"errors": [],
|
|
3
|
+
"statistics": [
|
|
4
|
+
{
|
|
5
|
+
"owner": "errorJson",
|
|
6
|
+
"description": "New adapter errors available for use",
|
|
7
|
+
"value": 0
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"owner": "errorJson",
|
|
11
|
+
"description": "Adapter errors no longer available for use",
|
|
12
|
+
"value": 0
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"owner": "errorJson",
|
|
16
|
+
"description": "Adapter errors that have been updated (e.g. recommendation changes)",
|
|
17
|
+
"value": 31
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"owner": "packageJson",
|
|
21
|
+
"description": "Number of production dependencies",
|
|
22
|
+
"value": 15
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"owner": "packageJson",
|
|
26
|
+
"description": "Number of development dependencies",
|
|
27
|
+
"value": 6
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"owner": "packageJson",
|
|
31
|
+
"description": "Number of npm scripts",
|
|
32
|
+
"value": 17
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"owner": "packageJson",
|
|
36
|
+
"description": "Runtime Library dependency",
|
|
37
|
+
"value": "6.1.14"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"owner": "propertiesSchemaJson",
|
|
41
|
+
"description": "Adapter properties defined in the propertiesSchema file",
|
|
42
|
+
"value": 86
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"owner": "markdown",
|
|
46
|
+
"description": "Number of lines in the README.md",
|
|
47
|
+
"value": 345
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"owner": "markdown",
|
|
51
|
+
"description": "Number of lines in the SUMMARY.md",
|
|
52
|
+
"value": 9
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"owner": "markdown",
|
|
56
|
+
"description": "Number of lines in the PROPERTIES.md",
|
|
57
|
+
"value": 682
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"owner": "markdown",
|
|
61
|
+
"description": "Number of lines in the TROUBLESHOOT.md",
|
|
62
|
+
"value": 57
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"owner": "markdown",
|
|
66
|
+
"description": "Number of lines in the ENHANCE.md",
|
|
67
|
+
"value": 70
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"owner": "markdown",
|
|
71
|
+
"description": "Number of lines in the BROKER.md",
|
|
72
|
+
"value": 70
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"owner": "unitTestJS",
|
|
76
|
+
"description": "Number of lines of code in unit tests",
|
|
77
|
+
"value": 1536
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"owner": "unitTestJS",
|
|
81
|
+
"description": "Number of unit tests",
|
|
82
|
+
"value": 72
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"owner": "integrationTestJS",
|
|
86
|
+
"description": "Number of lines of code in integration tests",
|
|
87
|
+
"value": 463
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"owner": "integrationTestJS",
|
|
91
|
+
"description": "Number of integration tests",
|
|
92
|
+
"value": 10
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"owner": "staticFile",
|
|
96
|
+
"description": "Number of lines of code in adapterBase.js",
|
|
97
|
+
"value": 1527
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"owner": "staticFile",
|
|
101
|
+
"description": "Number of static files added",
|
|
102
|
+
"value": 37
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"owner": "Overall",
|
|
106
|
+
"description": "Total lines of Code",
|
|
107
|
+
"value": 3526
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"owner": "Overall",
|
|
111
|
+
"description": "Total Tests",
|
|
112
|
+
"value": 82
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"owner": "Overall",
|
|
116
|
+
"description": "Total Files",
|
|
117
|
+
"value": 6
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
}
|
package/sampleProperties.json
CHANGED
|
@@ -280,10 +280,10 @@ describe('[unit] WinstonSyslog Adapter Test', () => {
|
|
|
280
280
|
assert.notEqual(null, packageDotJson.dependencies);
|
|
281
281
|
assert.notEqual('', packageDotJson.dependencies);
|
|
282
282
|
assert.equal('8.17.1', packageDotJson.dependencies.ajv);
|
|
283
|
-
assert.equal('1.
|
|
283
|
+
assert.equal('1.13.5', packageDotJson.dependencies.axios);
|
|
284
284
|
assert.equal('11.1.0', packageDotJson.dependencies.commander);
|
|
285
285
|
assert.equal('11.3.0', packageDotJson.dependencies['fs-extra']);
|
|
286
|
-
assert.equal('
|
|
286
|
+
assert.equal('11.3.0', packageDotJson.dependencies.mocha);
|
|
287
287
|
assert.equal('2.0.1', packageDotJson.dependencies['mocha-param']);
|
|
288
288
|
assert.equal('0.4.4', packageDotJson.dependencies.ping);
|
|
289
289
|
assert.equal('1.4.10', packageDotJson.dependencies['readline-sync']);
|
|
@@ -19,17 +19,14 @@ function createObjectForFunction(
|
|
|
19
19
|
workflow
|
|
20
20
|
) {
|
|
21
21
|
const funcObject = {};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
funcObject.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
funcObject.description = description;
|
|
31
|
-
funcObject.workflow = workflow;
|
|
32
|
-
}
|
|
22
|
+
funcObject.method_signature = `${funcName}(${funcArgs.join(', ')})`;
|
|
23
|
+
funcObject.path = entityPath !== undefined ? entityPath : '';
|
|
24
|
+
if (description === undefined) {
|
|
25
|
+
funcObject.description = '';
|
|
26
|
+
funcObject.workflow = 'No';
|
|
27
|
+
} else {
|
|
28
|
+
funcObject.description = description;
|
|
29
|
+
funcObject.workflow = workflow;
|
|
33
30
|
}
|
|
34
31
|
return funcObject;
|
|
35
32
|
}
|
|
@@ -77,7 +74,8 @@ function readFileUsingLib(filename, descriptionObj, workflowObj, functionList) {
|
|
|
77
74
|
// parsing the file to get the function and class declarations.
|
|
78
75
|
const aFileFuncArgs = acorn.parse(aFile, { ecmaVersion: 2020 });
|
|
79
76
|
|
|
80
|
-
|
|
77
|
+
// Track all method names that can be called (identifyRequest + any proxy methods)
|
|
78
|
+
const allowedCallNames = new Set(['identifyRequest']);
|
|
81
79
|
// Looping through all the declarations parsed:
|
|
82
80
|
aFileFuncArgs.body.forEach((e) => {
|
|
83
81
|
// Getting only the class declaration as it has our required functions.
|
|
@@ -103,9 +101,10 @@ function readFileUsingLib(filename, descriptionObj, workflowObj, functionList) {
|
|
|
103
101
|
method.value.body.body.forEach((statement) => {
|
|
104
102
|
recurseCallExpressions(statement, callList);
|
|
105
103
|
});
|
|
104
|
+
// Find calls to identifyRequest OR any discovered proxy methods
|
|
106
105
|
const requests = [];
|
|
107
106
|
for (let i = 0; i < callList.length; i += 1) {
|
|
108
|
-
if (callList[i].callee.property && callList[i].callee.property.name
|
|
107
|
+
if (callList[i].callee.property && allowedCallNames.has(callList[i].callee.property.name)) {
|
|
109
108
|
requests.push(callList[i]);
|
|
110
109
|
}
|
|
111
110
|
}
|
|
@@ -114,34 +113,60 @@ function readFileUsingLib(filename, descriptionObj, workflowObj, functionList) {
|
|
|
114
113
|
if (expr.arguments.length < 2) {
|
|
115
114
|
throw new Error(`Bad inputs in method ${funcName}`);
|
|
116
115
|
}
|
|
117
|
-
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
116
|
+
|
|
117
|
+
const arg0Type = expr.arguments[0].type;
|
|
118
|
+
const arg1Type = expr.arguments[1].type;
|
|
119
|
+
|
|
120
|
+
let entityPath;
|
|
121
|
+
|
|
122
|
+
if (arg0Type === 'Literal' && arg1Type === 'Literal') {
|
|
123
|
+
const entity = expr.arguments[0].value;
|
|
124
|
+
const actionName = expr.arguments[1].value;
|
|
125
|
+
entityPath = getPathFromEntity(entity, actionName);
|
|
126
|
+
} else {
|
|
127
|
+
// Non-standard format: anything that's not both literals
|
|
128
|
+
// Special handling for proxy methods (both args are identifiers matching first 2 params)
|
|
129
|
+
if (arg0Type === 'Identifier' && arg1Type === 'Identifier') {
|
|
130
|
+
const param1 = method.value.params[0];
|
|
131
|
+
const param2 = method.value.params[1];
|
|
132
|
+
const arg0Name = expr.arguments[0].name;
|
|
133
|
+
const arg1Name = expr.arguments[1].name;
|
|
134
|
+
|
|
135
|
+
// Check if this is a valid proxy method
|
|
136
|
+
const isValidProxy = param1 && param2
|
|
137
|
+
&& param1.type === 'Identifier' && param2.type === 'Identifier'
|
|
138
|
+
&& param1.name === arg0Name && param2.name === arg1Name;
|
|
139
|
+
|
|
140
|
+
// Only process valid proxy methods
|
|
141
|
+
if (isValidProxy) {
|
|
142
|
+
const calledMethod = expr.callee.property.name;
|
|
143
|
+
|
|
144
|
+
// Skip nested proxies (proxies calling other proxies)
|
|
145
|
+
if (calledMethod !== 'identifyRequest') {
|
|
146
|
+
console.log(`Skipping nested proxy method: ${funcName} (calls ${calledMethod})`);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// First-level proxy: calls identifyRequest directly
|
|
151
|
+
// Add this proxy to the set so other methods can call it
|
|
152
|
+
allowedCallNames.add(funcName);
|
|
153
|
+
}
|
|
128
154
|
}
|
|
129
|
-
|
|
155
|
+
|
|
156
|
+
// All non-standard formats get documented without path
|
|
157
|
+
entityPath = undefined;
|
|
130
158
|
}
|
|
131
|
-
const entityPath = getPathFromEntity(entity, actionName);
|
|
132
159
|
|
|
133
160
|
// Creating and storing the object for the method.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
);
|
|
144
|
-
}
|
|
161
|
+
functionList.push(
|
|
162
|
+
createObjectForFunction(
|
|
163
|
+
funcName,
|
|
164
|
+
funcArgs,
|
|
165
|
+
entityPath,
|
|
166
|
+
descriptionObj[funcName],
|
|
167
|
+
workflowObj[funcName]
|
|
168
|
+
)
|
|
169
|
+
);
|
|
145
170
|
}
|
|
146
171
|
});
|
|
147
172
|
}
|