cassproject 5.0.5 → 5.0.7

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/README.md CHANGED
@@ -50,6 +50,17 @@ Development unit tests presume you have a CaSS Repository running on `localhost:
50
50
 
51
51
  # Changelog
52
52
 
53
+ ## 5.0.7
54
+ * Security updates
55
+ * Assertions with the same registration will no longer propagate to the same inferred assertions.
56
+ * CTDL-ASN fixes
57
+
58
+ ## 5.0.6
59
+ * Fixed bug using success in precache with L2 caching.
60
+
61
+ ## 5.0.5
62
+ * Added implies relation.
63
+
53
64
  ## 5.0.4
54
65
  * Updates to CEASN CSV Import validation
55
66
  * Security updates.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cassproject",
3
- "version": "5.0.5",
3
+ "version": "5.0.7",
4
4
  "description": "Competency and Skills Service",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -10,17 +10,23 @@
10
10
  "multitest": "concurrently --kill-others-on-fail \"npm run test15\" \"npm run test14\" \"npm run test13\" \"npm run test12\"",
11
11
  "testCassTest": "npm run testkill && docker run -d --platform linux/amd64 --network cass-net --name cass-test -p80:80 -e CASS_LOOPBACK cass-test && wait-on http://localhost/api/ping && npm run testNode18 && npm run testNode18Fips && npm run testNode16 && npm run testNode15 && npm run testNode14 && npm run testNode13 && npm run testNode12 && npm run testCypressEdge && npm run testCypress && npm run testkill",
12
12
  "testDevHttps": "npm run testkill && docker run -d --platform linux/amd64 --network cass-net --name cass-test -p443:80 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:dev && wait-on https://localhost/api/ping && npm run testNode18HttpsFips && npm run testNode18Https && npm run testNode16Https && npm run testNode15Https && npm run testNode14Https && npm run testNode13Https && npm run testNode12Https && npm run testCypressEdgeHttps && npm run testCypressHttps",
13
- "test16HttpsFips": "export CASS_LOOPBACK=https://cass-testsf16/api/|| set CASS_LOOPBACK=https://cass-testsf16/api/&& npm run testkillsf16 && docker run -d --platform linux/amd64 --network cass-net --name cass-testsf16 -p450:443 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:1.6.7 && wait-on https://localhost:450/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode24HttpsForceFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode22HttpsForceFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode20HttpsForceFips\" \"npm run testNode18Https\" && npm run testkillsf16",
14
- "test16Https11Fips": "export CASS_LOOPBACK=https://cass-testsf1116/api/|| set CASS_LOOPBACK=https://cass-testsf1116/api/&& npm run testkillsf1116 && docker run -d --platform linux/amd64 --network cass-net --name cass-testsf1116 -p449:443 -e CASS_LOOPBACK -e HTTPS=true -e HTTP2=false cassproject/cass:1.6.7 && wait-on https://localhost:449/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode24HttpsForceFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode22HttpsForceFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode20HttpsForceFips\" \"npm run testNode18Https\" && npm run testkillsf1116",
15
- "test16Https": "export CASS_LOOPBACK=https://cass-tests16/api/|| set CASS_LOOPBACK=https://cass-tests16/api/&& npm run testkills16 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests16 -p448:443 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:1.6.7 && wait-on https://localhost:448/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode18Https\" && npm run testkills16",
16
- "test16Https11": "export CASS_LOOPBACK=https://cass-tests1116/api/|| set CASS_LOOPBACK=https://cass-tests1116/api/&& npm run testkills1116 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests1116 -p451:443 -e CASS_LOOPBACK -e HTTPS=true -e HTTP2=false cassproject/cass:1.6.7 && wait-on https://localhost:451/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode18Https\" && npm run testkills1116",
17
- "test16Fips": "export CASS_LOOPBACK=http://cass-testf16/api/|| set CASS_LOOPBACK=http://cass-testf16/api/&& npm run testkillf16 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-testf16 -p83:80 cassproject/cass:1.6.7 && wait-on http://localhost:83/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode24\" \"npm run testNode24Fips\" \"npm run testNode24ForceFips\" \"npm run testNode22\" \"npm run testNode22Fips\" \"npm run testNode22ForceFips\" \"npm run testNode20\" \"npm run testNode20Fips\" \"npm run testNode20ForceFips\" \"npm run testNode18\" && npm run testkillf16",
18
- "test16": "export CASS_LOOPBACK=http://cass-test16/api/|| set CASS_LOOPBACK=http://cass-test16/api/&& npm run testkill16 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-test16 -p82:80 cassproject/cass:1.6.7 && wait-on http://localhost:82/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode24\" \"npm run testNode24Fips\" \"npm run testNode22\" \"npm run testNode22Fips\" \"npm run testNode20\" \"npm run testNode20Fips\" \"npm run testNode18\" && npm run testkill16",
13
+ "test16HttpsFips": "export CASS_LOOPBACK=https://cass-testsf16/api/|| set CASS_LOOPBACK=https://cass-testsf16/api/&& npm run testkillsf16 && docker run -d --platform linux/amd64 --network cass-net --name cass-testsf16 -p450:443 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:1.6.8 && wait-on https://localhost:450/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode24HttpsForceFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode22HttpsForceFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode20HttpsForceFips\" \"npm run testNode18Https\" && npm run testkillsf16",
14
+ "test16Https11Fips": "export CASS_LOOPBACK=https://cass-testsf1116/api/|| set CASS_LOOPBACK=https://cass-testsf1116/api/&& npm run testkillsf1116 && docker run -d --platform linux/amd64 --network cass-net --name cass-testsf1116 -p449:443 -e CASS_LOOPBACK -e HTTPS=true -e HTTP2=false cassproject/cass:1.6.8 && wait-on https://localhost:449/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode24HttpsForceFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode22HttpsForceFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode20HttpsForceFips\" \"npm run testNode18Https\" && npm run testkillsf1116",
15
+ "test16Https": "export CASS_LOOPBACK=https://cass-tests16/api/|| set CASS_LOOPBACK=https://cass-tests16/api/&& npm run testkills16 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests16 -p448:443 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:1.6.8 && wait-on https://localhost:448/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode18Https\" && npm run testkills16",
16
+ "test16HttpsNoFips": "export CASS_LOOPBACK=https://cass-tests16/api/|| set CASS_LOOPBACK=https://cass-tests16/api/&& npm run testkills16 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests16 -p448:443 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:1.6.8 && wait-on https://localhost:448/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode22Https\" \"npm run testNode20Https\" \"npm run testNode18Https\" && npm run testkills16",
17
+ "test16Https11": "export CASS_LOOPBACK=https://cass-tests1116/api/|| set CASS_LOOPBACK=https://cass-tests1116/api/&& npm run testkills1116 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests1116 -p451:443 -e CASS_LOOPBACK -e HTTPS=true -e HTTP2=false cassproject/cass:1.6.8 && wait-on https://localhost:451/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode18Https\" && npm run testkills1116",
18
+ "test16Https11NoFips": "export CASS_LOOPBACK=https://cass-tests1116/api/|| set CASS_LOOPBACK=https://cass-tests1116/api/&& npm run testkills1116 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests1116 -p451:443 -e CASS_LOOPBACK -e HTTPS=true -e HTTP2=false cassproject/cass:1.6.8 && wait-on https://localhost:451/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode22Https\" \"npm run testNode20Https\" \"npm run testNode18Https\" && npm run testkills1116",
19
+ "test16Fips": "export CASS_LOOPBACK=http://cass-testf16/api/|| set CASS_LOOPBACK=http://cass-testf16/api/&& npm run testkillf16 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-testf16 -p83:80 cassproject/cass:1.6.8 && wait-on http://localhost:83/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode24\" \"npm run testNode24Fips\" \"npm run testNode24ForceFips\" \"npm run testNode22\" \"npm run testNode22Fips\" \"npm run testNode22ForceFips\" \"npm run testNode20\" \"npm run testNode20Fips\" \"npm run testNode20ForceFips\" \"npm run testNode18\" && npm run testkillf16",
20
+ "test16": "export CASS_LOOPBACK=http://cass-test16/api/|| set CASS_LOOPBACK=http://cass-test16/api/&& npm run testkill16 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-test16 -p82:80 cassproject/cass:1.6.8 && wait-on http://localhost:82/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode24\" \"npm run testNode24Fips\" \"npm run testNode22\" \"npm run testNode22Fips\" \"npm run testNode20\" \"npm run testNode20Fips\" \"npm run testNode18\" && npm run testkill16",
21
+ "test16NoFips": "export CASS_LOOPBACK=http://cass-test16/api/|| set CASS_LOOPBACK=http://cass-test16/api/&& npm run testkill16 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-test16 -p82:80 cassproject/cass:1.6.8 && wait-on http://localhost:82/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode24\" \"npm run testNode22\" \"npm run testNode20\" \"npm run testNode18\" && npm run testkill16",
19
22
  "test15HttpsFips": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=https://cass-testsf15/api/|| set CASS_LOOPBACK=https://cass-testsf15/api/&& npm run testkillsf15 && docker run -d --platform linux/amd64 --network cass-net --name cass-testsf15 -p446:443 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:1.5.75 && wait-on https://localhost:446/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode22HttpsForceFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode20HttpsForceFips\" \"npm run testNode18Https\" && npm run testkillsf15",
20
23
  "test15Https11Fips": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=https://cass-testsf1115/api/|| set CASS_LOOPBACK=https://cass-testsf1115/api/&& npm run testkillsf1115 && docker run -d --platform linux/amd64 --network cass-net --name cass-testsf1115 -p447:443 -e CASS_LOOPBACK -e HTTPS=true -e HTTP2=false cassproject/cass:1.5.75 && wait-on https://localhost:447/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode24HttpsForceFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode22HttpsForceFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode20HttpsForceFips\" \"npm run testNode18Https\" && npm run testkillsf1115",
21
24
  "test15Https": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=https://cass-tests15/api/|| set CASS_LOOPBACK=https://cass-tests15/api/&& npm run testkills15 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests15 -p444:443 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:1.5.75 && wait-on https://localhost:444/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode18Https\" && npm run testkills15",
25
+ "test15HttpsNoFips": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=https://cass-tests15/api/|| set CASS_LOOPBACK=https://cass-tests15/api/&& npm run testkills15 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests15 -p444:443 -e CASS_LOOPBACK -e HTTPS=true cassproject/cass:1.5.75 && wait-on https://localhost:444/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode22Https\" \"npm run testNode20Https\" \"npm run testNode18Https\" && npm run testkills15",
22
26
  "test15Https11": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=https://cass-tests1115/api/|| set CASS_LOOPBACK=https://cass-tests1115/api/&& npm run testkills1115 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests1115 -p443:443 -e CASS_LOOPBACK -e HTTPS=true -e HTTP2=false cassproject/cass:1.5.75 && wait-on https://localhost/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode24HttpsFips\" \"npm run testNode22Https\" \"npm run testNode22HttpsFips\" \"npm run testNode20Https\" \"npm run testNode20HttpsFips\" \"npm run testNode18Https\" && npm run testkills1115",
27
+ "test15Https11NoFips": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=https://cass-tests1115/api/|| set CASS_LOOPBACK=https://cass-tests1115/api/&& npm run testkills1115 && docker run -d --platform linux/amd64 --network cass-net --name cass-tests1115 -p443:443 -e CASS_LOOPBACK -e HTTPS=true -e HTTP2=false cassproject/cass:1.5.75 && wait-on https://localhost/api/ping && concurrently --kill-others-on-fail \"npm run testCypressHttps\" \"npm run testNode24Https\" \"npm run testNode22Https\" \"npm run testNode20Https\" \"npm run testNode18Https\" && npm run testkills1115",
23
28
  "test15Fips": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=http://cass-testf15/api/|| set CASS_LOOPBACK=http://cass-testf15/api/&& npm run testkillf15 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-testf15 -p81:80 cassproject/cass:1.5.75 && wait-on http://localhost:81/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode24\" \"npm run testNode24Fips\" \"npm run testNode24ForceFips\" \"npm run testNode22\" \"npm run testNode22Fips\" \"npm run testNode22ForceFips\" \"npm run testNode20\" \"npm run testNode20Fips\" \"npm run testNode20ForceFips\" \"npm run testNode18\" && npm run testkillf15",
29
+ "test15NoFips": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=http://cass-test15/api/|| set CASS_LOOPBACK=http://cass-test15/api/&& npm run testkill15 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-test15 -p80:80 cassproject/cass:1.5.75 && wait-on http://localhost/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode24\" \"npm run testNode22\" \"npm run testNode20\" \"npm run testNode18\" && npm run testkill15",
24
30
  "test15": "export TESTLEVEL=15|| set TESTLEVEL=15&& export CASS_LOOPBACK=http://cass-test15/api/|| set CASS_LOOPBACK=http://cass-test15/api/&& npm run testkill15 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-test15 -p80:80 cassproject/cass:1.5.75 && wait-on http://localhost/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode24\" \"npm run testNode24Fips\" \"npm run testNode22\" \"npm run testNode22Fips\" \"npm run testNode20\" \"npm run testNode20Fips\" \"npm run testNode18\" && npm run testkill15",
25
31
  "test14": "npm run testkill14 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-test14 -p80:80 cassproject/cass:1.4.4 && wait-on http://localhost/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode16\" && npm run testkill14",
26
32
  "test13": "npm run testkill13 && docker run -d --platform linux/amd64 --network cass-net -e CASS_LOOPBACK --name cass-test13 -p80:80 cassproject/cass:1.3.18 && wait-on http://localhost/api/ping && concurrently --kill-others-on-fail \"npm run testCypress\" \"npm run testNode16\" && npm run testkill13",
@@ -106,7 +112,6 @@
106
112
  "docs": "npm install yuidocjs yuidoc-ember-cli-theme && yuidoc -c yuidoc.json -o docs -e .js src && npm remove yuidocjs yuidoc-ember-cli-theme",
107
113
  "doclint": "npm install yuidocjs yuidoc-ember-cli-theme && yuidoc --lint -c yuidoc.json -o docs -e .js src",
108
114
  "cypress:install": "cypress install",
109
- "cypress:run": "cypress run --headless",
110
115
  "browserify:cypress:open": "cypress open --config-file cypressBrowserify.config.js",
111
116
  "browserify:cypress:open:https": "cypress open -e CASS_LOOPBACK=https://localhost/api/ --config-file cypressBrowserify.config.js",
112
117
  "vite:cypress:open": "cypress open --config-file cypressVite.config.js",
@@ -153,7 +158,7 @@
153
158
  "base64-arraybuffer": "^1.0.2",
154
159
  "forge": "^2.3.0",
155
160
  "jsonld": "^8.3.3",
156
- "node-forge": "^1.3.1",
161
+ "node-forge": "^1.3.3",
157
162
  "papaparse": "^5.5.3",
158
163
  "pem-jwk": "^2.0.0",
159
164
  "promise-worker": "^2.0.1",
@@ -183,24 +188,24 @@
183
188
  "homepage": "https://github.com/cassproject/cass-npm#readme",
184
189
  "devDependencies": {
185
190
  "@cypress/browserify-preprocessor": "^3.0.2",
186
- "@cypress/vite-dev-server": "^5.2.1",
187
- "@cypress/webpack-preprocessor": "^6.0.4",
191
+ "@cypress/vite-dev-server": "^7.0.1",
192
+ "@cypress/webpack-preprocessor": "^7.0.2",
188
193
  "chai": "4.5.0",
189
194
  "concurrently": "^9.2.1",
190
195
  "convert-hrtime": "^5.0.0",
191
- "cypress": "^15.6.0",
196
+ "cypress": "^15.7.1",
192
197
  "cypress-fail-fast": "^7.1.1",
193
198
  "eslint": "^9.39.1",
194
- "fake-indexeddb": "^6.2.4",
195
- "mocha": "^10.8.2",
199
+ "fake-indexeddb": "^6.2.5",
200
+ "mocha": "^11.7.5",
196
201
  "node-polyfill-webpack-plugin": "^4.1.0",
197
- "nodemon": "^3.1.10",
202
+ "nodemon": "^3.1.11",
198
203
  "nyc": "^17.1.0",
199
- "sinon": "^19.0.5",
204
+ "sinon": "^21.0.0",
200
205
  "url-polyfill": "^1.1.14",
201
- "wait-on": "^8.0.5",
202
- "webpack": "^5.102.1",
203
- "webpack-cli": "^5.1.4"
206
+ "wait-on": "^9.0.3",
207
+ "webpack": "^5.103.0",
208
+ "webpack-cli": "^6.0.1"
204
209
  },
205
210
  "packageManager": "npm@11.3.0+sha512.96eb611483f49c55f7fa74df61b588de9e213f80a256728e6798ddc67176c7b07e4a1cfc7de8922422cbce02543714367037536955221fa451b0c4fefaf20c66"
206
211
  }
@@ -209,12 +209,18 @@ module.exports = class EcFrameworkGraph extends EcDirectedGraph {
209
209
  }
210
210
  visited.push(competency);
211
211
  if (negative) {
212
- for (let assertion of assertions)
212
+ let msc = this.getMetaStateCompetency(competency);
213
+ for (let assertion of assertions) {
214
+ if (visited.length > 1 && assertion.registration && msc.positiveAssertion?.some(a => a.registration == assertion.registration))
215
+ continue;
216
+ if (visited.length > 1 && assertion.registration && msc.negativeAssertion?.some(a => a.registration == assertion.registration))
217
+ continue;
213
218
  this.addToMetaStateArray(
214
- this.getMetaStateCompetency(competency),
219
+ msc,
215
220
  "negativeAssertion",
216
221
  assertion
217
222
  );
223
+ }
218
224
  await Promise.all(
219
225
  this.getOutEdges(competency).map(async (alignment) =>
220
226
  await this.getCompetency(alignment.target).then(async (t) =>
@@ -243,12 +249,18 @@ module.exports = class EcFrameworkGraph extends EcDirectedGraph {
243
249
  )
244
250
  );
245
251
  } else {
246
- for (let assertion of assertions)
252
+ let msc = this.getMetaStateCompetency(competency);
253
+ for (let assertion of assertions) {
254
+ if (visited.length > 1 && assertion.registration && msc.positiveAssertion?.some(a => a.registration == assertion.registration))
255
+ continue;
256
+ if (visited.length > 1 && assertion.registration && msc.negativeAssertion?.some(a => a.registration == assertion.registration))
257
+ continue;
247
258
  this.addToMetaStateArray(
248
- this.getMetaStateCompetency(competency),
259
+ msc,
249
260
  "positiveAssertion",
250
261
  assertion
251
262
  );
263
+ }
252
264
  await Promise.all(
253
265
  this.getInEdges(competency).map(async (alignment) =>
254
266
  await this.getCompetency(alignment.source).then(async (t) =>
@@ -267,20 +279,20 @@ module.exports = class EcFrameworkGraph extends EcDirectedGraph {
267
279
  await this.getCompetency(alignment.target).then(
268
280
  alignment.relationType == Relation.IMPLIES
269
281
  ? async (t) =>
270
- await this.processAssertionBooleanOutward(
271
- alignment,
272
- t,
273
- assertions,
274
- negative,
275
- visited
276
- ) : async (s) =>
277
- await this.processAssertionBooleanInward(
278
- alignment,
279
- s,
280
- assertions,
281
- negative,
282
- visited
283
- )
282
+ await this.processAssertionBooleanOutward(
283
+ alignment,
284
+ t,
285
+ assertions,
286
+ negative,
287
+ visited
288
+ ) : async (s) =>
289
+ await this.processAssertionBooleanInward(
290
+ alignment,
291
+ s,
292
+ assertions,
293
+ negative,
294
+ visited
295
+ )
284
296
  )
285
297
  )
286
298
  )
@@ -317,11 +329,12 @@ module.exports = class EcFrameworkGraph extends EcDirectedGraph {
317
329
  visited
318
330
  );
319
331
  }
320
- addToMetaStateArray(metaState, key, value) {
321
- if (metaState == null) return;
322
- if (metaState[key] == null) metaState[key] = [];
323
- EcArray.setAdd(metaState[key], value);
324
- }
332
+ addToMetaStateArray(metaState, key, value) {
333
+ if (metaState == null) return;
334
+ if (metaState[key] == null) metaState[key] = [];
335
+ if (metaState[key].some(e => e.shortId() == value.shortId())) return;
336
+ metaState[key].push(value);
337
+ }
325
338
  /**
326
339
  * Fetches the Meta Competency (additional state information used to compute profiles or other data) for a competency.
327
340
  *
@@ -158,15 +158,19 @@ module.exports = class CTDLASNCSVConceptImport {
158
158
  for (let each = 0; each < tabularData.length; each++) {
159
159
  let pretranslatedE = tabularData[each];
160
160
  // Skip extra lines if found in file
161
- if (!pretranslatedE || !pretranslatedE["@type"]) {
161
+ if (!pretranslatedE) {
162
162
  continue;
163
163
  }
164
164
  if (!pretranslatedE["@id"]) {
165
165
  failure(`Row ${each + 2}: is missing an @id`);
166
166
  return;
167
167
  }
168
+ if (!pretranslatedE["@type"]) {
169
+ failure(`Row ${each + 2}: is missing a @type`);
170
+ return;
171
+ }
168
172
  if (!pretranslatedE["@id"].startsWith('http') && !pretranslatedE["@id"].startsWith('ce-')) {
169
- failure(`row ${i + 2}: @id must be a valid URI or start with 'ce-'`)
173
+ failure(`row ${each + 2}: @id must be a valid URI or start with 'ce-'`)
170
174
  return;
171
175
  }
172
176
  if (
@@ -404,6 +408,36 @@ module.exports = class CTDLASNCSVConceptImport {
404
408
  }
405
409
  }
406
410
  }
411
+ if (e["skos:inScheme"] != null) {
412
+ let scheme = e["skos:inScheme"];
413
+ console.log('scheme', scheme);
414
+ for (
415
+ let i = 0;
416
+ i < schemeArray.length;
417
+ i++
418
+ ) {
419
+ let schemeObj = schemeArray[i];
420
+ if (scheme == schemeObj["id"]) {
421
+ if (
422
+ schemeObj[
423
+ "skos:hasTopConcept"
424
+ ] == null
425
+ ) {
426
+ let hasTopConcept = [];
427
+ schemeObj[
428
+ "skos:hasTopConcept"
429
+ ] = hasTopConcept;
430
+ }
431
+ let conceptId = f.shortId();
432
+ EcArray.setAdd(
433
+ schemeObj[
434
+ "skos:hasTopConcept"
435
+ ],
436
+ conceptId
437
+ );
438
+ }
439
+ }
440
+ }
407
441
  f[
408
442
  "schema:dateModified"
409
443
  ] = new Date().toISOString();
@@ -468,13 +502,17 @@ module.exports = class CTDLASNCSVConceptImport {
468
502
  for (let each = 0; each < tabularData.length; each++) {
469
503
  let pretranslatedE = tabularData[each];
470
504
  // Skip extra lines if found in file
471
- if (!pretranslatedE || !pretranslatedE["@type"]) {
505
+ if (!pretranslatedE) {
472
506
  continue;
473
507
  }
474
508
  if (!pretranslatedE["@id"]) {
475
509
  failure(`Row ${each + 2}: is missing an @id`);
476
510
  return;
477
511
  }
512
+ if (!pretranslatedE["@type"]) {
513
+ failure(`Row ${each + 2}: is missing a @type`);
514
+ return;
515
+ }
478
516
  if (
479
517
  pretranslatedE["@type"].toLowerCase().startsWith('sample') || pretranslatedE["@type"].toLowerCase().startsWith('instruction')
480
518
  ) {
@@ -671,6 +709,35 @@ module.exports = class CTDLASNCSVConceptImport {
671
709
  }
672
710
  }
673
711
  }
712
+ if (e["skos:inScheme"] != null) {
713
+ let scheme = e["skos:inScheme"];
714
+ for (
715
+ let i = 0;
716
+ i < schemeArray.length;
717
+ i++
718
+ ) {
719
+ let schemeObj = schemeArray[i];
720
+ if (scheme == schemeObj["id"]) {
721
+ if (
722
+ schemeObj[
723
+ "skos:hasTopConcept"
724
+ ] == null
725
+ ) {
726
+ let hasTopConcept = [];
727
+ schemeObj[
728
+ "skos:hasTopConcept"
729
+ ] = hasTopConcept;
730
+ }
731
+ let conceptId = f.shortId();
732
+ EcArray.setAdd(
733
+ schemeObj[
734
+ "skos:hasTopConcept"
735
+ ],
736
+ conceptId
737
+ );
738
+ }
739
+ }
740
+ }
674
741
  f[
675
742
  "schema:dateModified"
676
743
  ] = new Date().toISOString();
@@ -191,7 +191,7 @@ module.exports = class CTDLASNCSVImport {
191
191
  }
192
192
  let pretranslatedE = tabularData[i];
193
193
  // Skip extra lines if found in file
194
- if (!pretranslatedE || !pretranslatedE["@type"]) {
194
+ if (!pretranslatedE) {
195
195
  continue;
196
196
  }
197
197
  if (pretranslatedE["@type"].toLowerCase() &&
@@ -215,6 +215,10 @@ module.exports = class CTDLASNCSVImport {
215
215
  failure(`Row ${i + 2}: is missing an @id`)
216
216
  return;
217
217
  }
218
+ if (!pretranslatedE["@type"]) {
219
+ failure(`Row ${i + 2}: is missing a @type`);
220
+ return;
221
+ }
218
222
  if (!pretranslatedE["@id"].startsWith('http') && !pretranslatedE["@id"].startsWith('ce-')) {
219
223
  failure(`row ${i + 2}: @id must be a valid URI or start with 'ce-'`)
220
224
  return;
@@ -741,9 +745,21 @@ module.exports = class CTDLASNCSVImport {
741
745
  for (let i = 0; i < tabularData.length; i++) {
742
746
  let pretranslatedE = tabularData[i];
743
747
  // Skip extra lines if found in file
744
- if (!pretranslatedE || !pretranslatedE["@type"]) {
748
+ if (!pretranslatedE) {
745
749
  continue;
746
750
  }
751
+ if (!pretranslatedE["@id"]) {
752
+ failure(`Row ${i + 2}: is missing an @id`);
753
+ return;
754
+ }
755
+ if (!pretranslatedE["@id"].startsWith('http') && !pretranslatedE["@id"].startsWith('ce-')) {
756
+ failure(`row ${i + 2}: @id must be a valid URI or start with 'ce-'`)
757
+ return;
758
+ }
759
+ if (!pretranslatedE["@type"]) {
760
+ failure(`Row ${i + 2}: is missing a @type`);
761
+ return;
762
+ }
747
763
  if (
748
764
  pretranslatedE["@type"].toLowerCase().startsWith('sample') || pretranslatedE["@type"].toLowerCase().startsWith('instruction')
749
765
  ) {
@@ -1134,10 +1150,10 @@ module.exports = class CTDLASNCSVImport {
1134
1150
  } else if (translator["type"] == "ceasn:Competency") {
1135
1151
  context = "https://schema.cassproject.org/0.4/";
1136
1152
  type = "Competency";
1137
- } else if (translator["type"] == "skos:ConceptScheme") {
1153
+ } else if (translator["type"] == "skos:ConceptScheme" || translator["type"] == "ceasn:ConceptScheme") {
1138
1154
  context = "https://schema.cassproject.org/0.4/skos/";
1139
1155
  type = "ConceptScheme";
1140
- } else if (translator["type"] == "ceasn:Concept") {
1156
+ } else if (translator["type"] == "ceasn:Concept" || translator["type"] === 'skos:Concept') {
1141
1157
  context = "https://schema.cassproject.org/0.4/skos/";
1142
1158
  type = "Concept";
1143
1159
  }
@@ -1205,7 +1205,7 @@ module.exports = class EcRepository {
1205
1205
  EcRepository.cacheBacking[cached.id] = cached;
1206
1206
  }
1207
1207
  }
1208
- let objResults = await me.precache.call(me, results, success, failure, eim, true, versionedUrls);
1208
+ let objResults = await me.precache.call(me, results, null, null, eim, true, versionedUrls);
1209
1209
  if (objResults.length == results.length)
1210
1210
  return objResults;
1211
1211
  //Second attempt, in case the indexed object URL doesn't match the permanent URL.
@@ -1215,7 +1215,7 @@ module.exports = class EcRepository {
1215
1215
  .map(u => EcRemoteLinkedData.trimVersionFromUrl(u)); //NOSONAR - Nesting functions to perform filters is normal.
1216
1216
  if (missingUris.length > 0)
1217
1217
  objResults.push(...await me.precache.call(me, missingUris, null, null, eim, true));
1218
- return objResults;
1218
+ return cassPromisify(objResults, success, failure);
1219
1219
  }
1220
1220
  for (let i = 0; i < results.length; i++) {
1221
1221
  let d = new EcRemoteLinkedData(null, null);
@@ -1,3 +1,17 @@
1
+ const InverseSeverity = {
2
+ 0: 'EMERGENCY',
3
+ 1: 'ALERT ',
4
+ 2: 'CRITICAL ',
5
+ 3: 'ERROR ',
6
+ 4: 'WARNING ',
7
+ 5: 'NOTICE ',
8
+ 6: 'INFO ',
9
+ 7: 'DEBUG ',
10
+ 8: 'DEBUG ',
11
+ 9: 'NETWORK ',
12
+ 10: 'DATA '
13
+ };
14
+
1
15
  if (!global.auditLogger) { // Running client-side
2
16
  global.auditLogger = {
3
17
  report: function(system, severity, message, ...data) {
@@ -11,9 +25,39 @@ if (!global.auditLogger) { // Running client-side
11
25
  console.trace("Could not log error message.");
12
26
  }
13
27
  },
14
- LogCategory: {},
28
+ SyslogFacility: {
29
+ USER: 1, // user
30
+ DAEMON: 3, // daemon - anything that runs in the background like jobs
31
+ AUTH: 4, // auth - anything that deals with authentication or authorization
32
+ FTP: 11, // ftp - transferring files in and out of the server
33
+ NETWORK: 16, // local0 - network traffic related like HTTP POST, GET, and DELETE
34
+ STORAGE: 17, // local1 - things like DBs
35
+ STANDARD: 18, // local2 - anything that doesn't fit into other categories most likely goes here
36
+ SECURITY: 23
37
+ },
38
+ LogCategory: {
39
+ SYSTEM: 'sys',
40
+ AUTH: 'auth',
41
+ MESSAGE: 'msg',
42
+ FILE_SYSTEM: 'fs',
43
+ NETWORK: 'net',
44
+ STORAGE: 'sto',
45
+ ADAPTER: 'ada',
46
+ PROFILE: 'pro',
47
+ SECURITY: 'sec'
48
+ },
15
49
  Severity: {
16
- ERROR: 'error'
50
+ EMERGENCY: 0, // system isn't working
51
+ ALERT: 1, // system needs attention
52
+ CRITICAL: 2, // code path has failed
53
+ ERROR: 3, // code path has failed, but can recover
54
+ WARNING: 4, // unusual conditions
55
+ NOTICE: 5, // normal but unlikely
56
+ INFO: 6, // normal
57
+ DEBUG: 7, // extra information
58
+ SERVICE: 8,
59
+ NETWORK: 9, // traffic information
60
+ DATA: 10, // data information
17
61
  }
18
62
  }
19
63
  }
@@ -6,11 +6,11 @@ schema.MediaObject = require("./MediaObject.js");
6
6
  case of a single file published after Zip compression, the convention of appending '+zip' to the [[encodingFormat]] can be used. Geospatial, AR/VR, artistic/animation, gaming, engineering and scientific content can all be represented using [[3DModel]].
7
7
  *
8
8
  * @author schema.org
9
- * @class 3DModel
9
+ * @class ThreeDModel
10
10
  * @module org.schema
11
11
  * @extends MediaObject
12
12
  */
13
- module.exports = class 3DModel extends schema.MediaObject {
13
+ module.exports = class ThreeDModel extends schema.MediaObject {
14
14
  /**
15
15
  * Constructor, automatically sets @context and @type.
16
16
  *
@@ -612,12 +612,20 @@ describe("EcFrameworkGraph", () => {
612
612
  let result = [];
613
613
  if (fg.getMetaStateCompetency(c)["positiveAssertion"] != null)
614
614
  result.push(fg.getMetaStateCompetency(c)["positiveAssertion"].length);
615
+ else
616
+ result.push(0);
615
617
  if (fg.getMetaStateCompetency(c2)["positiveAssertion"] != null)
616
618
  result.push(fg.getMetaStateCompetency(c2)["positiveAssertion"].length);
619
+ else
620
+ result.push(0);
617
621
  if (fg.getMetaStateCompetency(c)["negativeAssertion"] != null)
618
622
  result.push(fg.getMetaStateCompetency(c)["negativeAssertion"].length);
623
+ else
624
+ result.push(0);
619
625
  if (fg.getMetaStateCompetency(c2)["negativeAssertion"] != null)
620
626
  result.push(fg.getMetaStateCompetency(c2)["negativeAssertion"].length);
627
+ else
628
+ result.push(0);
621
629
  return result;
622
630
  }).catch((err) => {
623
631
  assert.fail(err);