From 893bff48175aca6724edbcdcb8237b77f2916d27 Mon Sep 17 00:00:00 2001 From: Mile Divovic Date: Mon, 30 Oct 2023 14:36:11 -0700 Subject: [PATCH 1/8] swap out axios for fetch --- package.json | 2 +- src/main/server.js | 3 - src/main/server/adapter/asn/asn.test.js | 10 +- src/main/server/adapter/case/case.test.js | 12 +- src/main/server/adapter/ceasn/ceasn.test.js | 16 +-- src/main/server/profile/worker.js | 5 - src/main/server/shims/levr.js | 135 +++++++++++++++++--- src/main/server/skyId.test.js | 1 - src/main/server/skyRepo.test.js | 2 - 9 files changed, 136 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index 77c93b4f7..40060fa1d 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "dependencies": { "@xmldom/xmldom": "^0.8.10", "busboy": "^1.6.0", - "cassproject": "^1.5.37", + "cassproject": "^1.5.39", "check-disk-space": "^3.4.0", "cors": "^2.8.5", "cron": "^2.4.4", diff --git a/src/main/server.js b/src/main/server.js index b845b4a57..9ebed44cb 100644 --- a/src/main/server.js +++ b/src/main/server.js @@ -24,9 +24,6 @@ const spdy = require('spdy'); const baseUrl = global.baseUrl = process.env.CASS_BASE || ''; const envHttp2 = process.env.HTTP2 != null ? process.env.HTTP2.trim() == 'true' : true; let app = global.app = express(); -if (!envHttp2) { - global.axios = require('axios'); // Pre-empt http2 use. -} global.auditLogger = require('./server/shims/auditLogger.js'); require('cassproject'); const fs = require('fs'); diff --git a/src/main/server/adapter/asn/asn.test.js b/src/main/server/adapter/asn/asn.test.js index e596a141e..de672378a 100644 --- a/src/main/server/adapter/asn/asn.test.js +++ b/src/main/server/adapter/asn/asn.test.js @@ -1,5 +1,3 @@ -let axios = require("axios"); -let FormData = require("form-data"); let chai = require("chai"); let hrtime = function() { @@ -21,17 +19,17 @@ describe("ASN Adapter", function() { before(async ()=>{ try{ - await axios.get("http://localhost/api/data/70d27b782c062d1280b240890141dcf6"); + await fetch("http://localhost/api/data/70d27b782c062d1280b240890141dcf6"); } catch(err){ - let onet = (await axios.get("https://www.onetcenter.org/ctdlasn/graph/ce-07c25f74-9119-11e8-b852-782bcb5df6ac",{httpsAgent: new require("https").Agent({ rejectUnauthorized: false })})).data; + let onet = await (await fetch("https://www.onetcenter.org/ctdlasn/graph/ce-07c25f74-9119-11e8-b852-782bcb5df6ac")).json(); const formData = new FormData(); formData.append('data',JSON.stringify(onet)); - await axios.post("http://localhost/api/ctdlasn",formData,{headers:formData.getHeaders()}); + await fetch("http://localhost/api/ctdlasn",{method: 'POST', body: formData}); } }); it('conversion to ASN', async () => { - await axios.get("http://localhost/api/asn/70d27b782c062d1280b240890141dcf6") + await fetch("http://localhost/api/asn/70d27b782c062d1280b240890141dcf6") }).timeout(30000); }); \ No newline at end of file diff --git a/src/main/server/adapter/case/case.test.js b/src/main/server/adapter/case/case.test.js index c54e92183..5080b7929 100644 --- a/src/main/server/adapter/case/case.test.js +++ b/src/main/server/adapter/case/case.test.js @@ -1,5 +1,3 @@ -let axios = require("axios"); -let FormData = require("form-data"); let chai = require("chai"); let hrtime = function() { @@ -21,21 +19,21 @@ describe("CASE Adapter", function() { before(async ()=>{ try{ - await axios.get("http://localhost/api/data/70d27b782c062d1280b240890141dcf6"); + await fetch("http://localhost/api/data/70d27b782c062d1280b240890141dcf6"); } catch(err){ - let onet = (await axios.get("https://www.onetcenter.org/ctdlasn/graph/ce-07c25f74-9119-11e8-b852-782bcb5df6ac")).data; + let onet = await (await fetch("https://www.onetcenter.org/ctdlasn/graph/ce-07c25f74-9119-11e8-b852-782bcb5df6ac")).json(); const formData = new FormData(); formData.append('data',JSON.stringify(onet)); - await axios.post("http://localhost/api/ctdlasn",formData,{headers:formData.getHeaders()}); + await fetch("http://localhost/api/ctdlasn",{method: 'POST', body: formData}); } }); it('conversion to CASE', async () => { - await axios.get("http://localhost/api/ims/case/v1p0/CFPackages/70d27b782c062d1280b240890141dcf6") + await fetch("http://localhost/api/ims/case/v1p0/CFPackages/70d27b782c062d1280b240890141dcf6") }).timeout(10000); it('ACT Collective Problem Solving import', async()=>{ - await axios.get("http://localhost/api/ims/case/harvest?caseEndpoint=https://opensalt.net&dId=f0e7396a-7edd-11e9-86d4-23cb22a51e7e") + await fetch("http://localhost/api/ims/case/harvest?caseEndpoint=https://opensalt.net&dId=f0e7396a-7edd-11e9-86d4-23cb22a51e7e") }).timeout(30000); }); \ No newline at end of file diff --git a/src/main/server/adapter/ceasn/ceasn.test.js b/src/main/server/adapter/ceasn/ceasn.test.js index da5b9b02e..ad936d967 100644 --- a/src/main/server/adapter/ceasn/ceasn.test.js +++ b/src/main/server/adapter/ceasn/ceasn.test.js @@ -1,5 +1,3 @@ -let axios = require("axios"); -let FormData = require("form-data"); let chai = require("chai"); const EcCrypto = require("cassproject/src/com/eduworks/ec/crypto/EcCrypto"); const EcRepository = require("cassproject/src/org/cassproject/ebac/repository/EcRepository"); @@ -27,27 +25,29 @@ describe("CEASN Adapter", function() { before(async ()=>{ try{ - await axios.get("http://localhost/api/data/70d27b782c062d1280b240890141dcf6"); + await fetch("http://localhost/api/data/70d27b782c062d1280b240890141dcf6"); } catch(err){ - let onet = (await axios.get("https://www.onetcenter.org/ctdlasn/graph/ce-07c25f74-9119-11e8-b852-782bcb5df6ac",{httpsAgent: new require("https").Agent({ rejectUnauthorized: false })})).data; + console.log('doing things'); + let onet = await (await fetch("https://www.onetcenter.org/ctdlasn/graph/ce-07c25f74-9119-11e8-b852-782bcb5df6ac")).json(); + console.log('onet', onet); const formData = new FormData(); formData.append('data',JSON.stringify(onet)); - await axios.post("http://localhost/api/ctdlasn",formData,{headers:formData.getHeaders()}); + await fetch("http://localhost/api/ctdlasn",{method: 'POST', body: formData}); } }); it('conversion to CEASN', async () => { - await axios.get("http://localhost/api/ceasn/70d27b782c062d1280b240890141dcf6") + await fetch("http://localhost/api/ceasn/70d27b782c062d1280b240890141dcf6") }).timeout(30000); it('conversion from CEASN', async () => { let repo = new EcRepository(); repo.selectedServer = "http://localhost/api/"; - let onet = (await axios.get("https://www.onetcenter.org/ctdlasn/graph/ce-07c264d7-9119-11e8-b852-782bcb5df6ac",{httpsAgent: new require("https").Agent({ rejectUnauthorized: false })})).data; + let onet = await (await fetch("https://www.onetcenter.org/ctdlasn/graph/ce-07c264d7-9119-11e8-b852-782bcb5df6ac")).json(); const formData = new FormData(); formData.append('data',JSON.stringify(onet)); - await axios.post("http://localhost/api/ctdlasn",formData,{headers:formData.getHeaders()}); + await fetch("http://localhost/api/ctdlasn",{method: 'POST', body: formData}); let framework = await EcRepository.get("https://www.onetcenter.org/ctdlasn/resources/ce-07c264d7-9119-11e8-b852-782bcb5df6ac"); assert(framework != null, "Framework saved to CaSS."); }).timeout(30000); diff --git a/src/main/server/profile/worker.js b/src/main/server/profile/worker.js index 5e1a29e2b..80f20cedd 100644 --- a/src/main/server/profile/worker.js +++ b/src/main/server/profile/worker.js @@ -39,12 +39,7 @@ const https = require('https'); -const envHttp2 = process.env.HTTP2 != null ? process.env.HTTP2.trim() == 'true' : true; let app; -if (!envHttp2) -{ - global.axios = require("axios"); //Pre-empt http2 use. -} require("cassproject"); const hashModuleRoot = require("node-object-hash"); diff --git a/src/main/server/shims/levr.js b/src/main/server/shims/levr.js index 783c3625e..3e66ed833 100644 --- a/src/main/server/shims/levr.js +++ b/src/main/server/shims/levr.js @@ -2,6 +2,7 @@ const fs = require('fs'); const os = require('os'); const busboy = require('busboy'); const getStream = require('get-stream'); +const dns = require('dns').promises; // LEVR shims if (global.fileLoad === undefined) { @@ -267,15 +268,39 @@ if (global.httpGet === undefined) { global.httpGet = async function(url, flag, headers) { let failCounter = 0; while (failCounter++ < 1000) { + let ip = ''; try { - const response = await axios.get(url, {headers: headers}); + ip = (await dns.lookup(new URL(url).hostname)).address; + } catch (error) { + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.ERROR, "DNSLookup", url, error); + } + try { + const response = await fetch(url, {headers: headers}); + if (!response.ok) { + throw { + data: await response.text(), + response: { status: response.status, statusText: response.statusText } + }; + } + let result = null; + if (contentType && contentType.indexOf("application/json") !== -1) { + result = await response.json(); + } else { + result = await response.text(); + try{ + result = JSON.parse(result); + } + catch(ex) { + // Text is not json + } + } if (skyrepoDebug) { - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpGetSuccess', 'get success: ' + JSON.stringify(response.data)); + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpGetSuccess', 'get success: ' + JSON.stringify(result)); } - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpGetSuccess', response.request.socket.remoteAddress, url); - return response.data; + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpGetSuccess', ip, url); + return result; } catch (error) { - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpGetError', error && error.response ? error.response.request.socket.remoteAddress : '', url, error); + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpGetError', ip, url, error); let resp = null; if (error != null) { if (error.data != null) { @@ -312,15 +337,39 @@ if (global.debug === undefined) { if (global.httpDelete === undefined) { global.httpDelete = async function(url, headers) { + let ip = ''; try { - const response = await axios.delete(url, {headers: headers}); + ip = (await dns.lookup(new URL(url).hostname)).address; + } catch (error) { + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.ERROR, "DNSLookup", url, error); + } + try { + const response = await fetch(url, {headers: headers, method: 'DELETE'}); + if (!response.ok) { + throw { + data: await response.text(), + response: { status: response.status, statusText: response.statusText } + }; + } + let result = null; + if (contentType && contentType.indexOf("application/json") !== -1) { + result = await response.json(); + } else { + result = await response.text(); + try{ + result = JSON.parse(result); + } + catch(ex) { + // Text is not json + } + } if (skyrepoDebug) { global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpDeleteSuccess', 'delete success: ' + JSON.stringify(response.data)); } - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpDeleteSuccess', response.request.socket.remoteAddress, url); - return response.data; + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpDeleteSuccess', ip, url); + return result; } catch (error) { - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpDeleteError', error && error.response ? error.response.request.socket.remoteAddress : '', url, error); + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpDeleteError', ip, url, error); let resp = null; if (error != null) { if (error.data != null) { @@ -342,20 +391,46 @@ if (global.httpDelete === undefined) { if (global.httpPut === undefined) { global.httpPut = async function(data, url, contentType, headers) { + let ip = ''; try { - const response = await axios.put(url, data, { + ip = (await dns.lookup(new URL(url).hostname)).address; + } catch (error) { + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.ERROR, "DNSLookup", url, error); + } + try { + const response = await fetch(url, { + method: 'PUT', headers: { 'Content-Type': contentType, ...headers, }, + body: data }); + if (!response.ok) { + throw { + data: await response.text(), + response: { status: response.status, statusText: response.statusText } + }; + } + let result = null; + if (contentType && contentType.indexOf("application/json") !== -1) { + result = await response.json(); + } else { + result = await response.text(); + try{ + result = JSON.parse(result); + } + catch(ex) { + // Text is not json + } + } if (skyrepoDebug) { global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPutSuccess', 'put success: ' + JSON.stringify(response.data)); } - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPutSuccess', response.request.socket.remoteAddress, url); - return response.data; + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPutSuccess', ip, url); + return result; } catch (error) { - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPutError', error && error.response ? error.response.request.socket.remoteAddress: '', url, error); + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPutError', ip, url, error); let resp = null; if (error != null) { if (error.data != null) { @@ -379,20 +454,46 @@ if (global.httpPost === undefined) { global.httpPost = async function(data, url, contentType, multipart, something, something2, simple, headers) { let failCounter = 0; while (failCounter++ < 1000) { + let ip = ''; try { - const response = await axios.post(url, data, { + ip = (await dns.lookup(new URL(url).hostname)).address; + } catch (error) { + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.ERROR, "DNSLookup", url, error); + } + try { + const response = await fetch(url, { + method: 'POST', headers: { 'Content-Type': contentType, ...headers, }, + body: data }); + if (!response.ok) { + throw { + data: await response.text(), + response: { status: response.status, statusText: response.statusText } + }; + } + let result = null; + if (contentType && contentType.indexOf("application/json") !== -1) { + result = await response.json(); + } else { + result = await response.text(); + try{ + result = JSON.parse(result); + } + catch(ex) { + // Text is not json + } + } if (skyrepoDebug) { global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPostSuccess', 'post success: ' + JSON.stringify(response.data)); } - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPostSuccess', response.request.socket.remoteAddress, url); - return response.data; + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPostSuccess', ip, url); + return result; } catch (error) { - global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPostError', error && error.response ? error.response.request.socket.remoteAddress : '', url, error); + global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPostError', ip, url, error); let resp = null; if (error != null) { if (error.data != null) { diff --git a/src/main/server/skyId.test.js b/src/main/server/skyId.test.js index f66c4c15d..c351d9d57 100644 --- a/src/main/server/skyId.test.js +++ b/src/main/server/skyId.test.js @@ -1,4 +1,3 @@ -global.axios = require('axios'); let chai = require('chai'); const EcAes = require('cassproject/src/com/eduworks/ec/crypto/EcAes'); const EcRemoteIdentityManager = require('cassproject/src/org/cassproject/ebac/identity/remote/EcRemoteIdentityManager'); diff --git a/src/main/server/skyRepo.test.js b/src/main/server/skyRepo.test.js index fdd3ba61f..d6de088c1 100644 --- a/src/main/server/skyRepo.test.js +++ b/src/main/server/skyRepo.test.js @@ -1,5 +1,3 @@ -const axios = require('axios'); -const FormData = require('form-data'); const chai = require('chai'); require('cassproject'); From 72bb5d2e93efb71f6bc23308abdc7221c7a5383e Mon Sep 17 00:00:00 2001 From: Mile Divovic Date: Mon, 30 Oct 2023 17:32:24 -0700 Subject: [PATCH 2/8] WIP: fixing levr.js fetch refactor --- src/main/server/shims/levr.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/server/shims/levr.js b/src/main/server/shims/levr.js index 3e66ed833..4b0b2f0dd 100644 --- a/src/main/server/shims/levr.js +++ b/src/main/server/shims/levr.js @@ -283,6 +283,7 @@ if (global.httpGet === undefined) { }; } let result = null; + const contentType = response.headers.get("content-type"); if (contentType && contentType.indexOf("application/json") !== -1) { result = await response.json(); } else { @@ -352,6 +353,7 @@ if (global.httpDelete === undefined) { }; } let result = null; + const contentType = response.headers.get("content-type"); if (contentType && contentType.indexOf("application/json") !== -1) { result = await response.json(); } else { @@ -404,7 +406,7 @@ if (global.httpPut === undefined) { 'Content-Type': contentType, ...headers, }, - body: data + body: contentType === 'application/json' ? JSON.stringify(data) : data }); if (!response.ok) { throw { @@ -413,7 +415,8 @@ if (global.httpPut === undefined) { }; } let result = null; - if (contentType && contentType.indexOf("application/json") !== -1) { + const _contentType = response.headers.get("content-type"); + if (_contentType && _contentType.indexOf("application/json") !== -1) { result = await response.json(); } else { result = await response.text(); @@ -467,7 +470,7 @@ if (global.httpPost === undefined) { 'Content-Type': contentType, ...headers, }, - body: data + body: contentType === 'application/json' ? JSON.stringify(data) : data }); if (!response.ok) { throw { @@ -476,7 +479,8 @@ if (global.httpPost === undefined) { }; } let result = null; - if (contentType && contentType.indexOf("application/json") !== -1) { + const _contentType = response.headers.get("content-type"); + if (_contentType && _contentType.indexOf("application/json") !== -1) { result = await response.json(); } else { result = await response.text(); From 5ac11d57e796399bb3038c9658a21d68134f0504 Mon Sep 17 00:00:00 2001 From: Mile Divovic Date: Tue, 31 Oct 2023 11:18:07 -0700 Subject: [PATCH 3/8] update levr.js to throw with the response data on error --- src/main/server/shims/levr.js | 49 ++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/src/main/server/shims/levr.js b/src/main/server/shims/levr.js index a574bd79e..5d46d78ff 100644 --- a/src/main/server/shims/levr.js +++ b/src/main/server/shims/levr.js @@ -276,12 +276,6 @@ if (global.httpGet === undefined) { } try { const response = await fetch(url, {headers: headers}); - if (!response.ok) { - throw { - data: await response.text(), - response: { status: response.status, statusText: response.statusText } - }; - } let result = null; const contentType = response.headers.get("content-type"); if (contentType && contentType.indexOf("application/json") !== -1) { @@ -295,6 +289,12 @@ if (global.httpGet === undefined) { // Text is not json } } + if (!response.ok) { + throw { + data: result, + response: { status: response.status, statusText: response.statusText } + }; + } if (skyrepoDebug) { global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpGetSuccess', 'get success: ' + JSON.stringify(result)); } @@ -346,12 +346,6 @@ if (global.httpDelete === undefined) { } try { const response = await fetch(url, {headers: headers, method: 'DELETE'}); - if (!response.ok) { - throw { - data: await response.text(), - response: { status: response.status, statusText: response.statusText } - }; - } let result = null; const contentType = response.headers.get("content-type"); if (contentType && contentType.indexOf("application/json") !== -1) { @@ -365,6 +359,12 @@ if (global.httpDelete === undefined) { // Text is not json } } + if (!response.ok) { + throw { + data: result, + response: { status: response.status, statusText: response.statusText } + }; + } if (skyrepoDebug) { global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpDeleteSuccess', 'delete success: ' + JSON.stringify(response.data)); } @@ -408,12 +408,6 @@ if (global.httpPut === undefined) { }, body: contentType === 'application/json' ? JSON.stringify(data) : data }); - if (!response.ok) { - throw { - data: await response.text(), - response: { status: response.status, statusText: response.statusText } - }; - } let result = null; const _contentType = response.headers.get("content-type"); if (_contentType && _contentType.indexOf("application/json") !== -1) { @@ -427,6 +421,12 @@ if (global.httpPut === undefined) { // Text is not json } } + if (!response.ok) { + throw { + data: result, + response: { status: response.status, statusText: response.statusText } + }; + } if (skyrepoDebug) { global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPutSuccess', 'put success: ' + JSON.stringify(response.data)); } @@ -472,12 +472,7 @@ if (global.httpPost === undefined) { }, body: contentType === 'application/json' ? JSON.stringify(data) : data }); - if (!response.ok) { - throw { - data: await response.text(), - response: { status: response.status, statusText: response.statusText } - }; - } + let result = null; const _contentType = response.headers.get("content-type"); if (_contentType && _contentType.indexOf("application/json") !== -1) { @@ -491,6 +486,12 @@ if (global.httpPost === undefined) { // Text is not json } } + if (!response.ok) { + throw { + data: result, + response: { status: response.status, statusText: response.statusText } + }; + } if (skyrepoDebug) { global.auditLogger.report(global.auditLogger.LogCategory.NETWORK, global.auditLogger.Severity.NETWORK, 'CassHttpPostSuccess', 'post success: ' + JSON.stringify(response.data)); } From 1039627c5d257e277ea11494081168deb5bbc393 Mon Sep 17 00:00:00 2001 From: Mile Divovic Date: Tue, 31 Oct 2023 14:12:17 -0700 Subject: [PATCH 4/8] bump cassproject to 1.5.40 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ec288fa60..235fb2cbd 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "dependencies": { "@xmldom/xmldom": "^0.8.10", "busboy": "^1.6.0", - "cassproject": "^1.5.39", + "cassproject": "^1.5.40", "check-disk-space": "^3.4.0", "cors": "^2.8.5", "cron": "^2.4.4", From 277fd0c497e4b97e202e8f7575276f2759de2cc6 Mon Sep 17 00:00:00 2001 From: Fritz Ray Date: Tue, 31 Oct 2023 15:57:46 -0700 Subject: [PATCH 5/8] Release 1.5.40 --- README.md | 2 +- coverage/lcov-report/index.html | 110 +- coverage/lcov.info | 2913 ++++++++++++++++--------------- package-lock.json | 160 +- package.json | 2 +- src/main/swagger.json | 2 +- 6 files changed, 1600 insertions(+), 1589 deletions(-) diff --git a/README.md b/README.md index 65362fafb..f69028c11 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # CaSS Competency and Skills Service -- Competency Management -Release Candidate: 1.5.38 [![Build Status](https://travis-ci.org/cassproject/CASS.svg?branch=1.5)](https://travis-ci.org/cassproject/CASS) +Release Candidate: 1.5.40 [![Build Status](https://travis-ci.org/cassproject/CASS.svg?branch=1.5)](https://travis-ci.org/cassproject/CASS) Supported: 1.4 [![Build Status](https://travis-ci.org/cassproject/CASS.svg?branch=1.4)](https://travis-ci.org/cassproject/CASS) Supported: 1.3 [![Build Status](https://travis-ci.org/cassproject/CASS.svg?branch=1.3)](https://travis-ci.org/cassproject/CASS) Supported: 1.2 [![Build Status](https://travis-ci.org/cassproject/CASS.svg?branch=1.2)](https://travis-ci.org/cassproject/CASS) diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html index bff73a193..f3153f9ef 100644 --- a/coverage/lcov-report/index.html +++ b/coverage/lcov-report/index.html @@ -23,30 +23,30 @@

All files

- 35.2% + 34.94% Statements - 2431/6905 + 2427/6946
- 27.43% + 27.76% Branches - 1114/4061 + 1134/4085
- 34.92% + 34.12% Functions - 176/504 + 172/504
- 35.68% + 35.43% Lines - 2370/6642 + 2368/6683
@@ -80,62 +80,62 @@

All files

main - +
- 61.76% - 84/136 - 43.54% - 27/62 + 61.94% + 83/134 + 43.33% + 26/60 29.41% 5/17 - 62.68% - 84/134 + 62.87% + 83/132 main/server - -
+ +
- 56.01% - 1141/2037 - 49.3% - 529/1073 - 67.74% - 84/124 - 55.71% - 1102/1978 + 57.17% + 1163/2034 + 51.07% + 548/1073 + 69.35% + 86/124 + 56.91% + 1124/1975 main/server/adapter/asn - +
- 19.43% - 89/458 + 19.51% + 89/456 16.06% 53/330 17.64% 3/17 - 19.28% - 86/446 + 19.36% + 86/444 main/server/adapter/case - -
+ +
- 68.82% - 340/494 - 54.66% - 123/225 - 39.21% - 20/51 - 69.93% - 335/479 + 54.87% + 270/492 + 44.44% + 100/225 + 27.45% + 14/51 + 55.97% + 267/477 @@ -230,17 +230,17 @@

All files

main/server/profile - +
- 4.59% - 23/501 + 4.61% + 23/498 0.45% - 1/222 + 1/218 2.85% 1/35 - 4.94% - 23/465 + 4.97% + 23/462 @@ -260,17 +260,17 @@

All files

main/server/shims - -
+ +
- 37.09% - 296/798 - 20.35% - 114/560 + 40.07% + 341/851 + 23.55% + 139/590 39.44% 43/109 - 38.55% - 293/760 + 41.57% + 338/813 @@ -281,7 +281,7 @@

All files