@itentialopensource/adapter-gcp_compute 1.13.1 → 1.15.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/PROPERTIES.md +6 -1
- package/TAB2.md +2 -1
- package/package.json +8 -8
- package/propertiesSchema.json +22 -15
- package/report/updateReport1766088859334.json +120 -0
- package/report/updateReport1771000087696.json +120 -0
- package/sampleProperties.json +3 -2
- package/test/unit/adapterTestUnit.js +2 -2
- package/utils/methodDocumentor.js +62 -37
package/CHANGELOG.md
CHANGED
package/PROPERTIES.md
CHANGED
|
@@ -54,7 +54,8 @@ This section defines **all** the properties that are available for the adapter,
|
|
|
54
54
|
"healthcheck_on_timeout": false,
|
|
55
55
|
"return_raw": false,
|
|
56
56
|
"archiving": false,
|
|
57
|
-
"return_request": false
|
|
57
|
+
"return_request": false,
|
|
58
|
+
"keep_alive_interval": 0
|
|
58
59
|
},
|
|
59
60
|
"ssl": {
|
|
60
61
|
"ecdhCurve": "",
|
|
@@ -403,6 +404,10 @@ The request section defines properties to help handle requests.
|
|
|
403
404
|
<td style="padding:15px">return_request</td>
|
|
404
405
|
<td style="padding:15px">Optional flag. Default is false. Will return the actual request that is made including headers. This should only be used during debugging issues as there could be credentials in the actual request.</td>
|
|
405
406
|
</tr>
|
|
407
|
+
<tr>
|
|
408
|
+
<td style="padding:15px">keep_alive_interval</td>
|
|
409
|
+
<td style="padding:15px">Optional. TCP keep-alive interval in seconds for long-lived connections. Set to 0 to disable keep-alive (default). When enabled, minimum value is 30 seconds.</td>
|
|
410
|
+
</tr>
|
|
406
411
|
</table>
|
|
407
412
|
<br>
|
|
408
413
|
|
package/TAB2.md
CHANGED
|
@@ -163,7 +163,8 @@ Sample Properties can be used to help you configure the adapter in the Itential
|
|
|
163
163
|
"healthcheck_on_timeout": true,
|
|
164
164
|
"return_raw": false,
|
|
165
165
|
"archiving": false,
|
|
166
|
-
"return_request": false
|
|
166
|
+
"return_request": false,
|
|
167
|
+
"keep_alive_interval": 0
|
|
167
168
|
},
|
|
168
169
|
"proxy": {
|
|
169
170
|
"enabled": false,
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itentialopensource/adapter-gcp_compute",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "This adapter integrates with system described as: computeEngineApi.",
|
|
5
5
|
"main": "adapter.js",
|
|
6
6
|
"systemName": "Google Cloud Platform Compute",
|
|
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-gcp_compute#readme",
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@itentialopensource/adapter-utils": "6.
|
|
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
|
"gtoken": "7.1.0",
|
|
60
60
|
"json-query": "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": {
|
|
@@ -506,7 +506,7 @@
|
|
|
506
506
|
"type": "integer",
|
|
507
507
|
"description": "How often the healthcheck should run (in milliseconds).",
|
|
508
508
|
"default": 300000,
|
|
509
|
-
"minimum":
|
|
509
|
+
"minimum": 30000,
|
|
510
510
|
"maximum": 3600000
|
|
511
511
|
},
|
|
512
512
|
"protocol": {
|
|
@@ -741,6 +741,13 @@
|
|
|
741
741
|
"type": "boolean",
|
|
742
742
|
"description": "This property turns on returning the response information - need to be carefull in case credentials are in the path",
|
|
743
743
|
"default": false
|
|
744
|
+
},
|
|
745
|
+
"keep_alive_interval": {
|
|
746
|
+
"type": "integer",
|
|
747
|
+
"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.",
|
|
748
|
+
"default": 0,
|
|
749
|
+
"minimum": 0,
|
|
750
|
+
"maximum": 3600000
|
|
744
751
|
}
|
|
745
752
|
},
|
|
746
753
|
"required": [
|
|
@@ -1152,7 +1159,7 @@
|
|
|
1152
1159
|
},
|
|
1153
1160
|
"requestFields": {
|
|
1154
1161
|
"type": "object",
|
|
1155
|
-
"description": "The json object with
|
|
1162
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1156
1163
|
"additionalProperties": {
|
|
1157
1164
|
"type": [
|
|
1158
1165
|
"string",
|
|
@@ -1295,7 +1302,7 @@
|
|
|
1295
1302
|
},
|
|
1296
1303
|
"requestFields": {
|
|
1297
1304
|
"type": "object",
|
|
1298
|
-
"description": "The json object with
|
|
1305
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1299
1306
|
"additionalProperties": {
|
|
1300
1307
|
"type": [
|
|
1301
1308
|
"string",
|
|
@@ -1406,7 +1413,7 @@
|
|
|
1406
1413
|
},
|
|
1407
1414
|
"requestFields": {
|
|
1408
1415
|
"type": "object",
|
|
1409
|
-
"description": "The json object with
|
|
1416
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1410
1417
|
"additionalProperties": {
|
|
1411
1418
|
"type": [
|
|
1412
1419
|
"string",
|
|
@@ -1502,7 +1509,7 @@
|
|
|
1502
1509
|
},
|
|
1503
1510
|
"requestFields": {
|
|
1504
1511
|
"type": "object",
|
|
1505
|
-
"description": "The json object with
|
|
1512
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1506
1513
|
"additionalProperties": {
|
|
1507
1514
|
"type": [
|
|
1508
1515
|
"string",
|
|
@@ -1587,7 +1594,7 @@
|
|
|
1587
1594
|
},
|
|
1588
1595
|
"requestFields": {
|
|
1589
1596
|
"type": "object",
|
|
1590
|
-
"description": "The json object with
|
|
1597
|
+
"description": "The json object with request fields of the call to getDevice",
|
|
1591
1598
|
"additionalProperties": {
|
|
1592
1599
|
"type": [
|
|
1593
1600
|
"string",
|
|
@@ -1670,12 +1677,12 @@
|
|
|
1670
1677
|
"properties": {
|
|
1671
1678
|
"path": {
|
|
1672
1679
|
"type": "string",
|
|
1673
|
-
"description": "The fully qualified path of the call to
|
|
1680
|
+
"description": "The fully qualified path of the call to populate the cache (e.g. /rest/api/devices)",
|
|
1674
1681
|
"default": ""
|
|
1675
1682
|
},
|
|
1676
1683
|
"method": {
|
|
1677
1684
|
"type": "string",
|
|
1678
|
-
"description": "The method of the call to
|
|
1685
|
+
"description": "The method of the call to populate the cache",
|
|
1679
1686
|
"default": "GET"
|
|
1680
1687
|
},
|
|
1681
1688
|
"pagination": {
|
|
@@ -1712,7 +1719,7 @@
|
|
|
1712
1719
|
},
|
|
1713
1720
|
"query": {
|
|
1714
1721
|
"type": "object",
|
|
1715
|
-
"description": "The json object with query parameters of the call to
|
|
1722
|
+
"description": "The json object with query parameters of the call to populate the cache",
|
|
1716
1723
|
"additionalProperties": {
|
|
1717
1724
|
"type": [
|
|
1718
1725
|
"string",
|
|
@@ -1722,7 +1729,7 @@
|
|
|
1722
1729
|
},
|
|
1723
1730
|
"body": {
|
|
1724
1731
|
"type": "object",
|
|
1725
|
-
"description": "The json object with body of the call to
|
|
1732
|
+
"description": "The json object with body of the call to populate the cache",
|
|
1726
1733
|
"additionalProperties": {
|
|
1727
1734
|
"type": [
|
|
1728
1735
|
"string",
|
|
@@ -1732,7 +1739,7 @@
|
|
|
1732
1739
|
},
|
|
1733
1740
|
"headers": {
|
|
1734
1741
|
"type": "object",
|
|
1735
|
-
"description": "The json object with headers of the call to
|
|
1742
|
+
"description": "The json object with headers of the call to populate the cache",
|
|
1736
1743
|
"additionalProperties": {
|
|
1737
1744
|
"type": [
|
|
1738
1745
|
"string",
|
|
@@ -1751,7 +1758,7 @@
|
|
|
1751
1758
|
},
|
|
1752
1759
|
"requestFields": {
|
|
1753
1760
|
"type": "object",
|
|
1754
|
-
"description": "The json object with
|
|
1761
|
+
"description": "The json object with request fields of the call to populate the cache",
|
|
1755
1762
|
"additionalProperties": {
|
|
1756
1763
|
"type": [
|
|
1757
1764
|
"string",
|
|
@@ -1767,7 +1774,7 @@
|
|
|
1767
1774
|
},
|
|
1768
1775
|
"responseFields": {
|
|
1769
1776
|
"type": "object",
|
|
1770
|
-
"description": "The json object with response fields of the call to
|
|
1777
|
+
"description": "The json object with response fields of the call to populate the cache",
|
|
1771
1778
|
"additionalProperties": {
|
|
1772
1779
|
"type": [
|
|
1773
1780
|
"string",
|
|
@@ -1808,4 +1815,4 @@
|
|
|
1808
1815
|
}
|
|
1809
1816
|
}
|
|
1810
1817
|
}
|
|
1811
|
-
}
|
|
1818
|
+
}
|
|
@@ -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.7"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"owner": "propertiesSchemaJson",
|
|
41
|
+
"description": "Adapter properties defined in the propertiesSchema file",
|
|
42
|
+
"value": 84
|
|
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": 29141
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"owner": "unitTestJS",
|
|
81
|
+
"description": "Number of unit tests",
|
|
82
|
+
"value": 1865
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"owner": "integrationTestJS",
|
|
86
|
+
"description": "Number of lines of code in integration tests",
|
|
87
|
+
"value": 31273
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"owner": "integrationTestJS",
|
|
91
|
+
"description": "Number of integration tests",
|
|
92
|
+
"value": 567
|
|
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": 61941
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"owner": "Overall",
|
|
111
|
+
"description": "Total Tests",
|
|
112
|
+
"value": 2432
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"owner": "Overall",
|
|
116
|
+
"description": "Total Files",
|
|
117
|
+
"value": 6
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
}
|
|
@@ -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": 84
|
|
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": 29141
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"owner": "unitTestJS",
|
|
81
|
+
"description": "Number of unit tests",
|
|
82
|
+
"value": 1865
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"owner": "integrationTestJS",
|
|
86
|
+
"description": "Number of lines of code in integration tests",
|
|
87
|
+
"value": 31273
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"owner": "integrationTestJS",
|
|
91
|
+
"description": "Number of integration tests",
|
|
92
|
+
"value": 567
|
|
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": 61941
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"owner": "Overall",
|
|
111
|
+
"description": "Total Tests",
|
|
112
|
+
"value": 2432
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"owner": "Overall",
|
|
116
|
+
"description": "Total Files",
|
|
117
|
+
"value": 6
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
}
|
package/sampleProperties.json
CHANGED
|
@@ -92,7 +92,8 @@
|
|
|
92
92
|
"healthcheck_on_timeout": true,
|
|
93
93
|
"return_raw": false,
|
|
94
94
|
"archiving": false,
|
|
95
|
-
"return_request": false
|
|
95
|
+
"return_request": false,
|
|
96
|
+
"keep_alive_interval": 0
|
|
96
97
|
},
|
|
97
98
|
"proxy": {
|
|
98
99
|
"enabled": false,
|
|
@@ -283,4 +284,4 @@
|
|
|
283
284
|
"brokers": [],
|
|
284
285
|
"logLevel": "none",
|
|
285
286
|
"timeout": 120000
|
|
286
|
-
}
|
|
287
|
+
}
|
|
@@ -280,10 +280,10 @@ describe('[unit] GcpCompute 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
|
}
|