@itentialopensource/adapter-cisco_defense_orchestrator 0.1.1 → 0.2.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.
Files changed (41) hide show
  1. package/CALLS.md +6 -0
  2. package/CHANGELOG.md +8 -1
  3. package/CONTRIBUTING.md +1 -160
  4. package/ENHANCE.md +2 -2
  5. package/README.md +31 -22
  6. package/adapter.js +159 -330
  7. package/adapterBase.js +538 -873
  8. package/changelogs/changelog.md +9 -0
  9. package/metadata.json +47 -0
  10. package/package.json +23 -26
  11. package/pronghorn.json +474 -142
  12. package/propertiesSchema.json +453 -40
  13. package/refs?service=git-upload-pack +0 -0
  14. package/report/adapter-openapi.json +145 -0
  15. package/report/adapter-openapi.yaml +370 -0
  16. package/report/adapterInfo.json +10 -0
  17. package/report/updateReport1691507581025.json +120 -0
  18. package/report/updateReport1692202577812.json +120 -0
  19. package/report/updateReport1694461807956.json +120 -0
  20. package/report/updateReport1698420950699.json +120 -0
  21. package/sampleProperties.json +63 -2
  22. package/test/integration/adapterTestBasicGet.js +1 -1
  23. package/test/integration/adapterTestConnectivity.js +91 -42
  24. package/test/integration/adapterTestIntegration.js +130 -2
  25. package/test/unit/adapterBaseTestUnit.js +388 -313
  26. package/test/unit/adapterTestUnit.js +306 -109
  27. package/utils/adapterInfo.js +1 -1
  28. package/utils/addAuth.js +1 -1
  29. package/utils/artifactize.js +1 -1
  30. package/utils/checkMigrate.js +1 -1
  31. package/utils/entitiesToDB.js +1 -0
  32. package/utils/findPath.js +1 -1
  33. package/utils/methodDocumentor.js +71 -23
  34. package/utils/modify.js +13 -15
  35. package/utils/packModificationScript.js +1 -1
  36. package/utils/taskMover.js +309 -0
  37. package/utils/tbScript.js +3 -10
  38. package/utils/tbUtils.js +2 -3
  39. package/utils/testRunner.js +1 -1
  40. package/utils/troubleshootingAdapter.js +1 -3
  41. package/workflows/README.md +0 -3
Binary file
@@ -0,0 +1,145 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "title": "Cisco Defense Orchestrator API",
5
+ "description": "defaultDescription",
6
+ "contact": {},
7
+ "version": "1.0"
8
+ },
9
+ "servers": [
10
+ {
11
+ "url": "https://edge.eu.cdo.cisco.com",
12
+ "variables": {}
13
+ }
14
+ ],
15
+ "paths": {
16
+ "/api/public": {
17
+ "post": {
18
+ "summary": "Post request",
19
+ "description": "Used for all calls",
20
+ "operationId": "PostRequest",
21
+ "parameters": [],
22
+ "requestBody": {
23
+ "description": "",
24
+ "content": {
25
+ "application/json": {
26
+ "schema": {
27
+ "allOf": [
28
+ {
29
+ "$ref": "#/components/schemas/ApiPublicRequest"
30
+ },
31
+ {
32
+ "example": {
33
+ "operationName": null,
34
+ "variables": {},
35
+ "query": "mutation {\n createChangeRequest(input: {name: \"<Enter a name>\", description: \"<Enter an optional description>\"}) {\n uid\n description\n name\n createdDate\n lastUpdatedDate\n }\n updateChangeRequest(input: {uid: \"<Enter uid of existing change request to update>\", description: \"<Enter new description to give change request>\"}) {\n uid\n description\n name\n createdDate\n lastUpdatedDate\n }\n deleteChangeRequest(uid: \"<Enter uid of existing change request to delete>\")\n clearActiveChangeRequest\n setActiveChangeRequest(name: \"<Enter name of change request to set as active>\")\n}\n"
36
+ }
37
+ }
38
+ ]
39
+ },
40
+ "examples": {
41
+ "0": {
42
+ "value": {
43
+ "operationName": null,
44
+ "variables": {},
45
+ "query": "mutation {\n createChangeRequest(input: {name: \"<Enter a name>\", description: \"<Enter an optional description>\"}) {\n uid\n description\n name\n createdDate\n lastUpdatedDate\n }\n updateChangeRequest(input: {uid: \"<Enter uid of existing change request to update>\", description: \"<Enter new description to give change request>\"}) {\n uid\n description\n name\n createdDate\n lastUpdatedDate\n }\n deleteChangeRequest(uid: \"<Enter uid of existing change request to delete>\")\n clearActiveChangeRequest\n setActiveChangeRequest(name: \"<Enter name of change request to set as active>\")\n}\n"
46
+ }
47
+ },
48
+ "1": {
49
+ "value": {
50
+ "operationName": null,
51
+ "variables": {},
52
+ "query": "{\n activeChangeRequest\n changeRequests(limit: 5, sortField: CREATED_DATE, sortOrder: ASC) {\n metadata {\n count\n }\n items {\n uid\n name\n description\n createdDate\n lastUpdatedDate\n }\n }\n}\n"
53
+ }
54
+ },
55
+ "2": {
56
+ "value": {
57
+ "operationName": null,
58
+ "variables": {},
59
+ "query": "mutation {\n updateTenantSettings(input: {enableChangeRequestTracking: true, autoAcceptDeviceChanges: true, allowDeploymentScheduling: true, preventCiscoSupportFromViewingTenant: false}) {\n uid\n enableChangeRequestTracking\n lastUpdatedDate\n preventCiscoSupportFromViewingTenant\n autoDetectRuleSets\n autoAcceptDeviceChanges\n allowDeploymentScheduling\n }\n}\n"
60
+ }
61
+ },
62
+ "3": {
63
+ "value": {
64
+ "operationName": null,
65
+ "variables": {},
66
+ "query": "{\n tenantSettings {\n uid\n enableChangeRequestTracking\n lastUpdatedDate\n preventCiscoSupportFromViewingTenant\n autoDetectRuleSets\n autoAcceptDeviceChanges\n allowDeploymentScheduling\n }\n}\n"
67
+ }
68
+ },
69
+ "4": {
70
+ "value": {
71
+ "operationName": null,
72
+ "variables": {},
73
+ "query": "mutation {\n updateNetworkObject(baseInput: {uid: \"<Enter the uid of the Object you want to update>\"}, ipAddressRangeInput: {start: \"6.9.6.9\", end: \"9.6.9.7\"}) {\n name\n uid\n objectType\n description\n details {\n ... on NetworkDetailsIpEq {\n value\n }\n ... on NetworkDetailsIpRange {\n start\n end\n }\n }\n }\n createNetworkObject(baseInput: {name: \"I <3 CDO\", deviceType: FTD}, ipAddressEqInput: {value: \"1.1.1.1\"}) {\n name\n uid\n objectType\n details {\n ... on NetworkDetailsIpEq {\n value\n }\n ... on NetworkDetailsIpRange {\n start\n end\n }\n }\n }\n}\n"
74
+ }
75
+ },
76
+ "5": {
77
+ "value": {
78
+ "operationName": null,
79
+ "variables": {},
80
+ "query": "mutation {\n updateNetworkGroup(baseInput: {uid: \"<Enter uid of existing Object to update>\", name: \"<Enter a name>\", description: \"<Enter a description>\"}, networkGroupInput: {ipAddresses: [{value: \"6.9.6.9\"}, {value: \"7.0.0.0\"}], objectReferences: [{uid: \"<Enter the uid of another network group (or object) here>\", name: \"<Enter the name of that Object here>\", type: NETWORK_GROUP}]}) {\n name\n uid\n description\n details {\n ... on NetworkDetailsIpEq {\n value\n }\n ... on NetworkDetailsIpRange {\n start\n end\n }\n ... on NetworkGroupDetails {\n items {\n ... on NetworkDetailsBase {\n wildcardMask\n }\n ... on NetworkDetailsIpEq {\n value\n }\n ... on ObjectReferenceDetails {\n name\n uid\n type\n }\n }\n }\n }\n }\n}\n"
81
+ }
82
+ },
83
+ "6": {
84
+ "value": {
85
+ "operationName": null,
86
+ "variables": {},
87
+ "query": "mutation {\n createNetworkGroup(baseInput: {name: \"some-device-name\", deviceType: ASA}, networkGroupInput: {ipAddresses: [{value: \"6.9.6.9\"}, {value: \"7.9.7.9\"}], objectReferences: [{uid: \"<Enter the uid of another network group (or object) here>\", name: \"<Enter the name of that Object here>\", type: NETWORK_GROUP}]}) {\n name\n uid\n details {\n ... on NetworkDetailsIpEq {\n value\n }\n ... on NetworkDetailsIpRange {\n start\n end\n }\n ... on NetworkGroupDetails {\n items {\n ... on ObjectReferenceDetails {\n name\n uid\n }\n ... on NetworkDetailsIpEq {\n value\n }\n }\n }\n }\n }\n}\n"
88
+ }
89
+ },
90
+ "7": {
91
+ "value": {
92
+ "operationName": null,
93
+ "variables": {},
94
+ "query": "{\n changelog(sortField: LAST_UPDATED, sortOrder: ASC, changeStatus: [COMPLETED], dateRange: {start: 1593017544000}) {\n metadata {\n count\n }\n items {\n uid\n deviceName\n lastUpdated\n lastUser\n lastDescription\n changeStatus\n deviceUid\n events {\n class\n action\n user\n objectReference {\n uid\n type\n namespace\n }\n details {\n class\n description\n diff\n }\n eventDate\n changeType\n }\n }\n }\n}\n"
95
+ }
96
+ },
97
+ "8": {
98
+ "value": {
99
+ "operationName": null,
100
+ "variables": {},
101
+ "query": "{\n devices(limit: 50, sortField: NAME, deviceType: [FIREPOWER, ASA, FTD]) {\n metadata {\n count\n }\n items {\n softwareVersion\n name\n uid\n isModel\n conflictDetectionState\n ipv4\n deviceType\n serial\n configurationStatus\n interfaces\n connectivityState\n highAvailability\n specificDevice {\n namespace\n ... on FtdSpecificDevice {\n uid\n }\n ... on AsaSpecificDevice {\n uid\n type\n vpnId\n }\n ... on MerakiSpecificDevice {\n uid\n type\n }\n ... on AwsSpecificDevice {\n vpcId\n region\n }\n }\n }\n }\n}\n"
102
+ }
103
+ },
104
+ "9": {
105
+ "value": {
106
+ "operationName": null,
107
+ "variables": {},
108
+ "query": "{\n objects(limit: 100, objectType: [NETWORK_GROUP, NETWORK_OBJECT], offset: 0, sortOrder: DESC, sortField: OBJECT_TYPE) {\n metadata {\n count\n }\n items {\n name\n uid\n objectType\n description\n details {\n ... on NetworkDetailsBase {\n wildcardMask\n }\n ... on NetworkDetailsIpEq {\n value\n }\n ... on NetworkDetailsIpRange {\n start\n end\n }\n ... on NetworkGroupDetails {\n items {\n ... on ObjectReferenceDetails {\n uid\n name\n type\n }\n ... on NetworkDetailsIpEq {\n value\n }\n }\n }\n }\n }\n }\n}\n"
109
+ }
110
+ }
111
+ }
112
+ }
113
+ },
114
+ "required": false
115
+ },
116
+ "responses": {
117
+ "200": {
118
+ "description": "",
119
+ "headers": {},
120
+ "content": {}
121
+ }
122
+ },
123
+ "deprecated": false
124
+ }
125
+ }
126
+ },
127
+ "components": {
128
+ "schemas": {
129
+ "ApiPublicRequest": {
130
+ "title": "ApiPublicRequest",
131
+ "type": "object",
132
+ "properties": {
133
+ "variables": {
134
+ "type": "object"
135
+ },
136
+ "query": {
137
+ "type": "string"
138
+ },
139
+ "operationName": {}
140
+ }
141
+ }
142
+ }
143
+ },
144
+ "tags": []
145
+ }
@@ -0,0 +1,370 @@
1
+ openapi: 3.0.0
2
+ info:
3
+ title: Cisco Defense Orchestrator API
4
+ description: defaultDescription
5
+ contact: {}
6
+ version: '1.0'
7
+ servers:
8
+ - url: https://edge.eu.cdo.cisco.com
9
+ variables: {}
10
+ paths:
11
+ /api/public:
12
+ post:
13
+ summary: PostRequest
14
+ description: Used for all calls
15
+ operationId: PostRequest
16
+ parameters: []
17
+ requestBody:
18
+ description: ''
19
+ content:
20
+ application/json:
21
+ schema:
22
+ allOf:
23
+ - $ref: '#/components/schemas/ApiPublicRequest'
24
+ - example:
25
+ operationName: null
26
+ variables: {}
27
+ query: >
28
+ mutation {
29
+ createChangeRequest(input: {name: "<Enter a name>", description: "<Enter an optional description>"}) {
30
+ uid
31
+ description
32
+ name
33
+ createdDate
34
+ lastUpdatedDate
35
+ }
36
+ updateChangeRequest(input: {uid: "<Enter uid of existing change request to update>", description: "<Enter new description to give change request>"}) {
37
+ uid
38
+ description
39
+ name
40
+ createdDate
41
+ lastUpdatedDate
42
+ }
43
+ deleteChangeRequest(uid: "<Enter uid of existing change request to delete>")
44
+ clearActiveChangeRequest
45
+ setActiveChangeRequest(name: "<Enter name of change request to set as active>")
46
+ }
47
+ examples:
48
+ '0':
49
+ value:
50
+ operationName: null
51
+ variables: {}
52
+ query: >
53
+ mutation {
54
+ createChangeRequest(input: {name: "<Enter a name>", description: "<Enter an optional description>"}) {
55
+ uid
56
+ description
57
+ name
58
+ createdDate
59
+ lastUpdatedDate
60
+ }
61
+ updateChangeRequest(input: {uid: "<Enter uid of existing change request to update>", description: "<Enter new description to give change request>"}) {
62
+ uid
63
+ description
64
+ name
65
+ createdDate
66
+ lastUpdatedDate
67
+ }
68
+ deleteChangeRequest(uid: "<Enter uid of existing change request to delete>")
69
+ clearActiveChangeRequest
70
+ setActiveChangeRequest(name: "<Enter name of change request to set as active>")
71
+ }
72
+ '1':
73
+ value:
74
+ operationName: null
75
+ variables: {}
76
+ query: >
77
+ {
78
+ activeChangeRequest
79
+ changeRequests(limit: 5, sortField: CREATED_DATE, sortOrder: ASC) {
80
+ metadata {
81
+ count
82
+ }
83
+ items {
84
+ uid
85
+ name
86
+ description
87
+ createdDate
88
+ lastUpdatedDate
89
+ }
90
+ }
91
+ }
92
+ '2':
93
+ value:
94
+ operationName: null
95
+ variables: {}
96
+ query: >
97
+ mutation {
98
+ updateTenantSettings(input: {enableChangeRequestTracking: true, autoAcceptDeviceChanges: true, allowDeploymentScheduling: true, preventCiscoSupportFromViewingTenant: false}) {
99
+ uid
100
+ enableChangeRequestTracking
101
+ lastUpdatedDate
102
+ preventCiscoSupportFromViewingTenant
103
+ autoDetectRuleSets
104
+ autoAcceptDeviceChanges
105
+ allowDeploymentScheduling
106
+ }
107
+ }
108
+ '3':
109
+ value:
110
+ operationName: null
111
+ variables: {}
112
+ query: >
113
+ {
114
+ tenantSettings {
115
+ uid
116
+ enableChangeRequestTracking
117
+ lastUpdatedDate
118
+ preventCiscoSupportFromViewingTenant
119
+ autoDetectRuleSets
120
+ autoAcceptDeviceChanges
121
+ allowDeploymentScheduling
122
+ }
123
+ }
124
+ '4':
125
+ value:
126
+ operationName: null
127
+ variables: {}
128
+ query: >
129
+ mutation {
130
+ updateNetworkObject(baseInput: {uid: "<Enter the uid of the Object you want to update>"}, ipAddressRangeInput: {start: "6.9.6.9", end: "9.6.9.7"}) {
131
+ name
132
+ uid
133
+ objectType
134
+ description
135
+ details {
136
+ ... on NetworkDetailsIpEq {
137
+ value
138
+ }
139
+ ... on NetworkDetailsIpRange {
140
+ start
141
+ end
142
+ }
143
+ }
144
+ }
145
+ createNetworkObject(baseInput: {name: "I <3 CDO", deviceType: FTD}, ipAddressEqInput: {value: "1.1.1.1"}) {
146
+ name
147
+ uid
148
+ objectType
149
+ details {
150
+ ... on NetworkDetailsIpEq {
151
+ value
152
+ }
153
+ ... on NetworkDetailsIpRange {
154
+ start
155
+ end
156
+ }
157
+ }
158
+ }
159
+ }
160
+ '5':
161
+ value:
162
+ operationName: null
163
+ variables: {}
164
+ query: >
165
+ mutation {
166
+ updateNetworkGroup(baseInput: {uid: "<Enter uid of existing Object to update>", name: "<Enter a name>", description: "<Enter a description>"}, networkGroupInput: {ipAddresses: [{value: "6.9.6.9"}, {value: "7.0.0.0"}], objectReferences: [{uid: "<Enter the uid of another network group (or object) here>", name: "<Enter the name of that Object here>", type: NETWORK_GROUP}]}) {
167
+ name
168
+ uid
169
+ description
170
+ details {
171
+ ... on NetworkDetailsIpEq {
172
+ value
173
+ }
174
+ ... on NetworkDetailsIpRange {
175
+ start
176
+ end
177
+ }
178
+ ... on NetworkGroupDetails {
179
+ items {
180
+ ... on NetworkDetailsBase {
181
+ wildcardMask
182
+ }
183
+ ... on NetworkDetailsIpEq {
184
+ value
185
+ }
186
+ ... on ObjectReferenceDetails {
187
+ name
188
+ uid
189
+ type
190
+ }
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+ '6':
197
+ value:
198
+ operationName: null
199
+ variables: {}
200
+ query: >
201
+ mutation {
202
+ createNetworkGroup(baseInput: {name: "some-device-name", deviceType: ASA}, networkGroupInput: {ipAddresses: [{value: "6.9.6.9"}, {value: "7.9.7.9"}], objectReferences: [{uid: "<Enter the uid of another network group (or object) here>", name: "<Enter the name of that Object here>", type: NETWORK_GROUP}]}) {
203
+ name
204
+ uid
205
+ details {
206
+ ... on NetworkDetailsIpEq {
207
+ value
208
+ }
209
+ ... on NetworkDetailsIpRange {
210
+ start
211
+ end
212
+ }
213
+ ... on NetworkGroupDetails {
214
+ items {
215
+ ... on ObjectReferenceDetails {
216
+ name
217
+ uid
218
+ }
219
+ ... on NetworkDetailsIpEq {
220
+ value
221
+ }
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+ '7':
228
+ value:
229
+ operationName: null
230
+ variables: {}
231
+ query: >
232
+ {
233
+ changelog(sortField: LAST_UPDATED, sortOrder: ASC, changeStatus: [COMPLETED], dateRange: {start: 1593017544000}) {
234
+ metadata {
235
+ count
236
+ }
237
+ items {
238
+ uid
239
+ deviceName
240
+ lastUpdated
241
+ lastUser
242
+ lastDescription
243
+ changeStatus
244
+ deviceUid
245
+ events {
246
+ class
247
+ action
248
+ user
249
+ objectReference {
250
+ uid
251
+ type
252
+ namespace
253
+ }
254
+ details {
255
+ class
256
+ description
257
+ diff
258
+ }
259
+ eventDate
260
+ changeType
261
+ }
262
+ }
263
+ }
264
+ }
265
+ '8':
266
+ value:
267
+ operationName: null
268
+ variables: {}
269
+ query: >
270
+ {
271
+ devices(limit: 50, sortField: NAME, deviceType: [FIREPOWER, ASA, FTD]) {
272
+ metadata {
273
+ count
274
+ }
275
+ items {
276
+ softwareVersion
277
+ name
278
+ uid
279
+ isModel
280
+ conflictDetectionState
281
+ ipv4
282
+ deviceType
283
+ serial
284
+ configurationStatus
285
+ interfaces
286
+ connectivityState
287
+ highAvailability
288
+ specificDevice {
289
+ namespace
290
+ ... on FtdSpecificDevice {
291
+ uid
292
+ }
293
+ ... on AsaSpecificDevice {
294
+ uid
295
+ type
296
+ vpnId
297
+ }
298
+ ... on MerakiSpecificDevice {
299
+ uid
300
+ type
301
+ }
302
+ ... on AwsSpecificDevice {
303
+ vpcId
304
+ region
305
+ }
306
+ }
307
+ }
308
+ }
309
+ }
310
+ '9':
311
+ value:
312
+ operationName: null
313
+ variables: {}
314
+ query: >
315
+ {
316
+ objects(limit: 100, objectType: [NETWORK_GROUP, NETWORK_OBJECT], offset: 0, sortOrder: DESC, sortField: OBJECT_TYPE) {
317
+ metadata {
318
+ count
319
+ }
320
+ items {
321
+ name
322
+ uid
323
+ objectType
324
+ description
325
+ details {
326
+ ... on NetworkDetailsBase {
327
+ wildcardMask
328
+ }
329
+ ... on NetworkDetailsIpEq {
330
+ value
331
+ }
332
+ ... on NetworkDetailsIpRange {
333
+ start
334
+ end
335
+ }
336
+ ... on NetworkGroupDetails {
337
+ items {
338
+ ... on ObjectReferenceDetails {
339
+ uid
340
+ name
341
+ type
342
+ }
343
+ ... on NetworkDetailsIpEq {
344
+ value
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+ }
351
+ }
352
+ required: false
353
+ responses:
354
+ '200':
355
+ description: ''
356
+ headers: {}
357
+ content: {}
358
+ deprecated: false
359
+ components:
360
+ schemas:
361
+ ApiPublicRequest:
362
+ title: ApiPublicRequest
363
+ type: object
364
+ properties:
365
+ variables:
366
+ type: object
367
+ query:
368
+ type: string
369
+ operationName: {}
370
+ tags: []
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": "0.1.1",
3
+ "configLines": 2889,
4
+ "scriptLines": 1783,
5
+ "codeLines": 2205,
6
+ "testLines": 3278,
7
+ "testCases": 149,
8
+ "totalCodeLines": 7266,
9
+ "wfTasks": 26
10
+ }
@@ -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": 17
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": 22
33
+ },
34
+ {
35
+ "owner": "packageJson",
36
+ "description": "Runtime Library dependency",
37
+ "value": "^5.1.0"
38
+ },
39
+ {
40
+ "owner": "propertiesSchemaJson",
41
+ "description": "Adapter properties defined in the propertiesSchema file",
42
+ "value": 76
43
+ },
44
+ {
45
+ "owner": "markdown",
46
+ "description": "Number of lines in the README.md",
47
+ "value": 343
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": 642
58
+ },
59
+ {
60
+ "owner": "markdown",
61
+ "description": "Number of lines in the TROUBLESHOOT.md",
62
+ "value": 48
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": 1515
78
+ },
79
+ {
80
+ "owner": "unitTestJS",
81
+ "description": "Number of unit tests",
82
+ "value": 69
83
+ },
84
+ {
85
+ "owner": "integrationTestJS",
86
+ "description": "Number of lines of code in integration tests",
87
+ "value": 505
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": 1350
98
+ },
99
+ {
100
+ "owner": "staticFile",
101
+ "description": "Number of static files added",
102
+ "value": 36
103
+ },
104
+ {
105
+ "owner": "Overall",
106
+ "description": "Total lines of Code",
107
+ "value": 3370
108
+ },
109
+ {
110
+ "owner": "Overall",
111
+ "description": "Total Tests",
112
+ "value": 79
113
+ },
114
+ {
115
+ "owner": "Overall",
116
+ "description": "Total Files",
117
+ "value": 6
118
+ }
119
+ ]
120
+ }