@uncefact/untp-utils 0.2.0 → 0.4.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/README.md +40 -12
- package/artefacts/context/untp/0.6.0/dcc.json +1241 -0
- package/artefacts/context/untp/0.6.0/dfr.json +619 -0
- package/artefacts/context/untp/0.6.0/dia.json +162 -0
- package/artefacts/context/untp/0.6.0/dpp.json +1078 -0
- package/artefacts/context/untp/0.6.0/dte.json +1285 -0
- package/artefacts/context/untp/0.6.1/dcc.json +1388 -0
- package/artefacts/context/untp/0.6.1/dfr.json +690 -0
- package/artefacts/context/untp/0.6.1/dia.json +196 -0
- package/artefacts/context/untp/0.6.1/dpp.json +1164 -0
- package/artefacts/context/untp/0.6.1/dte.json +1340 -0
- package/artefacts/context/untp/0.7.0/untp.json +3493 -0
- package/artefacts/context/vcdm/2/credentials.json +301 -0
- package/artefacts/manifest.json +214 -0
- package/artefacts/schema/untp/0.6.0/dcc.json +1131 -0
- package/artefacts/schema/untp/0.6.0/dfr.json +1028 -0
- package/artefacts/schema/untp/0.6.0/dia.json +236 -0
- package/artefacts/schema/untp/0.6.0/dpp.json +1219 -0
- package/artefacts/schema/untp/0.6.0/dte.json +845 -0
- package/artefacts/schema/untp/0.6.1/dcc.json +1196 -0
- package/artefacts/schema/untp/0.6.1/dfr.json +1037 -0
- package/artefacts/schema/untp/0.6.1/dia.json +236 -0
- package/artefacts/schema/untp/0.6.1/dpp.json +1229 -0
- package/artefacts/schema/untp/0.6.1/dte.json +845 -0
- package/artefacts/schema/untp/0.7.0/cvc.json +701 -0
- package/artefacts/schema/untp/0.7.0/dcc.json +1133 -0
- package/artefacts/schema/untp/0.7.0/dfr.json +1245 -0
- package/artefacts/schema/untp/0.7.0/dia.json +443 -0
- package/artefacts/schema/untp/0.7.0/dpp.json +1300 -0
- package/artefacts/schema/untp/0.7.0/dte.json +1226 -0
- package/artefacts/schema/untp/0.7.0/linkset.json +119 -0
- package/artefacts/schema/vcdm/2/verifiable-credential.json +318 -0
- package/build/artefacts/detect-version-from-context.d.ts +7 -2
- package/build/artefacts/detect-version-from-context.js +17 -6
- package/build/artefacts/detect-version-from-context.js.map +1 -1
- package/build/artefacts/detect-version-from-context.test.js +59 -0
- package/build/artefacts/detect-version-from-context.test.js.map +1 -1
- package/build/artefacts/urls.d.ts +8 -1
- package/build/artefacts/urls.js +17 -5
- package/build/artefacts/urls.js.map +1 -1
- package/build/artefacts/urls.test.js +63 -1
- package/build/artefacts/urls.test.js.map +1 -1
- package/build/bundle/artefacts/context/untp/0.6.0/dcc.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dcc.js +1244 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dcc.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dfr.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dfr.js +622 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dfr.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dia.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dia.js +165 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dia.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dpp.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dpp.js +1081 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dpp.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dte.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dte.js +1288 -0
- package/build/bundle/artefacts/context/untp/0.6.0/dte.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dcc.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dcc.js +1391 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dcc.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dfr.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dfr.js +693 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dfr.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dia.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dia.js +199 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dia.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dpp.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dpp.js +1167 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dpp.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dte.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dte.js +1343 -0
- package/build/bundle/artefacts/context/untp/0.6.1/dte.js.map +1 -0
- package/build/bundle/artefacts/context/untp/0.7.0/untp.d.ts +2 -0
- package/build/bundle/artefacts/context/untp/0.7.0/untp.js +3496 -0
- package/build/bundle/artefacts/context/untp/0.7.0/untp.js.map +1 -0
- package/build/bundle/artefacts/context/vcdm/2/credentials.d.ts +2 -0
- package/build/bundle/artefacts/context/vcdm/2/credentials.js +304 -0
- package/build/bundle/artefacts/context/vcdm/2/credentials.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dcc.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dcc.js +1134 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dcc.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dfr.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dfr.js +1031 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dfr.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dia.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dia.js +239 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dia.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dpp.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dpp.js +1222 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dpp.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dte.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dte.js +848 -0
- package/build/bundle/artefacts/schema/untp/0.6.0/dte.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dcc.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dcc.js +1199 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dcc.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dfr.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dfr.js +1040 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dfr.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dia.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dia.js +239 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dia.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dpp.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dpp.js +1232 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dpp.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dte.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dte.js +848 -0
- package/build/bundle/artefacts/schema/untp/0.6.1/dte.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/cvc.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/cvc.js +704 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/cvc.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dcc.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dcc.js +1136 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dcc.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dfr.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dfr.js +1248 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dfr.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dia.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dia.js +446 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dia.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dpp.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dpp.js +1303 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dpp.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dte.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dte.js +1229 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/dte.js.map +1 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/linkset.d.ts +2 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/linkset.js +122 -0
- package/build/bundle/artefacts/schema/untp/0.7.0/linkset.js.map +1 -0
- package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.d.ts +2 -0
- package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.js +321 -0
- package/build/bundle/artefacts/schema/vcdm/2/verifiable-credential.js.map +1 -0
- package/build/bundle/fallback.d.ts +41 -0
- package/build/bundle/fallback.js +62 -0
- package/build/bundle/fallback.js.map +1 -0
- package/build/bundle/fallback.test.d.ts +1 -0
- package/build/bundle/fallback.test.js +124 -0
- package/build/bundle/fallback.test.js.map +1 -0
- package/build/bundle/index.d.ts +4 -0
- package/build/bundle/index.js +77 -0
- package/build/bundle/index.js.map +1 -0
- package/build/bundle/lookup.d.ts +14 -0
- package/build/bundle/lookup.js +40 -0
- package/build/bundle/lookup.js.map +1 -0
- package/build/bundle/lookup.test.d.ts +1 -0
- package/build/bundle/lookup.test.js +70 -0
- package/build/bundle/lookup.test.js.map +1 -0
- package/build/bundle/public.d.ts +29 -0
- package/build/bundle/public.js +60 -0
- package/build/bundle/public.js.map +1 -0
- package/build/bundle/public.test.d.ts +1 -0
- package/build/bundle/public.test.js +41 -0
- package/build/bundle/public.test.js.map +1 -0
- package/build/bundle/refresh-classify.test.d.ts +1 -0
- package/build/bundle/refresh-classify.test.js +20 -0
- package/build/bundle/refresh-classify.test.js.map +1 -0
- package/build/bundle/refresh-main.test.d.ts +1 -0
- package/build/bundle/refresh-main.test.js +98 -0
- package/build/bundle/refresh-main.test.js.map +1 -0
- package/build/common/as-date-time.d.ts +13 -0
- package/build/common/as-date-time.js +44 -0
- package/build/common/as-date-time.js.map +1 -0
- package/build/common/as-date-time.test.d.ts +1 -0
- package/build/common/as-date-time.test.js +42 -0
- package/build/common/as-date-time.test.js.map +1 -0
- package/build/common/as-non-empty-string.d.ts +11 -4
- package/build/common/as-non-empty-string.js +15 -5
- package/build/common/as-non-empty-string.js.map +1 -1
- package/build/common/as-non-empty-string.test.js +7 -2
- package/build/common/as-non-empty-string.test.js.map +1 -1
- package/build/common/canonical-json.d.ts +10 -0
- package/build/common/canonical-json.js +29 -0
- package/build/common/canonical-json.js.map +1 -0
- package/build/common/canonical-json.test.d.ts +1 -0
- package/build/common/canonical-json.test.js +20 -0
- package/build/common/canonical-json.test.js.map +1 -0
- package/build/common/index.d.ts +5 -0
- package/build/common/index.js +6 -0
- package/build/common/index.js.map +1 -0
- package/build/common/validity-window.d.ts +45 -0
- package/build/common/validity-window.js +68 -0
- package/build/common/validity-window.js.map +1 -0
- package/build/common/validity-window.test.d.ts +1 -0
- package/build/common/validity-window.test.js +67 -0
- package/build/common/validity-window.test.js.map +1 -0
- package/build/conformity-vocabulary/codes.d.ts +4 -0
- package/build/conformity-vocabulary/codes.js +4 -0
- package/build/conformity-vocabulary/codes.js.map +1 -1
- package/build/conformity-vocabulary/parse-conformity-scheme.test.js +150 -0
- package/build/conformity-vocabulary/parse-conformity-scheme.test.js.map +1 -1
- package/build/conformity-vocabulary/parsers/v0-7-0.parser.js +225 -0
- package/build/conformity-vocabulary/parsers/v0-7-0.parser.js.map +1 -1
- package/build/conformity-vocabulary/types.d.ts +69 -15
- package/build/conformity-vocabulary/validate-conformity-claim.d.ts +17 -11
- package/build/conformity-vocabulary/validate-conformity-claim.js +118 -13
- package/build/conformity-vocabulary/validate-conformity-claim.js.map +1 -1
- package/build/conformity-vocabulary/validate-conformity-claim.test.js +265 -0
- package/build/conformity-vocabulary/validate-conformity-claim.test.js.map +1 -1
- package/build/loaders/index.d.ts +2 -0
- package/build/loaders/index.js +1 -0
- package/build/loaders/index.js.map +1 -1
- package/build/loaders/jsonld-document-loader.d.ts +7 -5
- package/build/loaders/jsonld-document-loader.js +11 -2
- package/build/loaders/jsonld-document-loader.js.map +1 -1
- package/build/loaders/jsonld-document-loader.test.js +41 -1
- package/build/loaders/jsonld-document-loader.test.js.map +1 -1
- package/build/loaders/schema-loader.d.ts +13 -3
- package/build/loaders/schema-loader.js +24 -8
- package/build/loaders/schema-loader.js.map +1 -1
- package/build/loaders/schema-loader.test.js +56 -1
- package/build/loaders/schema-loader.test.js.map +1 -1
- package/build/node/errors.d.ts +9 -3
- package/build/node/errors.js +9 -3
- package/build/node/errors.js.map +1 -1
- package/build/node/index.d.ts +1 -1
- package/build/node/index.js +1 -1
- package/build/node/index.js.map +1 -1
- package/build/node/is-private-ip.d.ts +8 -4
- package/build/node/is-private-ip.fail-closed.test.d.ts +1 -0
- package/build/node/is-private-ip.fail-closed.test.js +36 -0
- package/build/node/is-private-ip.fail-closed.test.js.map +1 -0
- package/build/node/is-private-ip.js +77 -12
- package/build/node/is-private-ip.js.map +1 -1
- package/build/node/is-private-ip.test.js +28 -0
- package/build/node/is-private-ip.test.js.map +1 -1
- package/build/node/validate-public-url.d.ts +43 -11
- package/build/node/validate-public-url.js +68 -34
- package/build/node/validate-public-url.js.map +1 -1
- package/build/node/validate-public-url.test.js +161 -14
- package/build/node/validate-public-url.test.js.map +1 -1
- package/build/resolvers/errors.d.ts +36 -6
- package/build/resolvers/errors.js +41 -7
- package/build/resolvers/errors.js.map +1 -1
- package/build/resolvers/resolve-document-if-changed.test.js +7 -0
- package/build/resolvers/resolve-document-if-changed.test.js.map +1 -1
- package/build/resolvers/resolve-document.d.ts +29 -9
- package/build/resolvers/resolve-document.integration.test.d.ts +1 -0
- package/build/resolvers/resolve-document.integration.test.js +108 -0
- package/build/resolvers/resolve-document.integration.test.js.map +1 -0
- package/build/resolvers/resolve-document.js +129 -49
- package/build/resolvers/resolve-document.js.map +1 -1
- package/build/resolvers/resolve-document.test.js +462 -12
- package/build/resolvers/resolve-document.test.js.map +1 -1
- package/build/resolvers/resolve-json-document.d.ts +11 -8
- package/build/resolvers/resolve-json-document.js +7 -6
- package/build/resolvers/resolve-json-document.js.map +1 -1
- package/build/resolvers/resolve-json-document.test.js +21 -4
- package/build/resolvers/resolve-json-document.test.js.map +1 -1
- package/build/validation/describe-jsonld-failure.d.ts +48 -8
- package/build/validation/describe-jsonld-failure.js +94 -27
- package/build/validation/describe-jsonld-failure.js.map +1 -1
- package/build/validation/describe-jsonld-failure.test.js +98 -13
- package/build/validation/describe-jsonld-failure.test.js.map +1 -1
- package/build/validation/index.d.ts +3 -2
- package/build/validation/index.js +2 -2
- package/build/validation/index.js.map +1 -1
- package/build/validation/validate-jsonld.d.ts +29 -3
- package/build/validation/validate-jsonld.js +49 -22
- package/build/validation/validate-jsonld.js.map +1 -1
- package/build/validation/validate-jsonld.test.js +62 -5
- package/build/validation/validate-jsonld.test.js.map +1 -1
- package/package.json +23 -3
|
@@ -40,6 +40,26 @@ function scheme() {
|
|
|
40
40
|
],
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
|
+
function scoringFramework(codes) {
|
|
44
|
+
return { name: 'Test framework', scores: codes.map((code) => ({ code })) };
|
|
45
|
+
}
|
|
46
|
+
function scoredScheme(options = {}) {
|
|
47
|
+
const base = scheme();
|
|
48
|
+
const profile = base.profiles[0];
|
|
49
|
+
return {
|
|
50
|
+
...base,
|
|
51
|
+
...(options.schemeCodes && { scoringFramework: scoringFramework(options.schemeCodes) }),
|
|
52
|
+
profiles: [
|
|
53
|
+
{
|
|
54
|
+
...profile,
|
|
55
|
+
...(options.profileCodes && { criterionScoringFrameworks: [scoringFramework(options.profileCodes)] }),
|
|
56
|
+
criteria: profile.criteria.map((criterion, index) => index === 0 && options.criterionCodes
|
|
57
|
+
? { ...criterion, requiredPerformance: options.criterionCodes.map((code) => ({ score: { code } })) }
|
|
58
|
+
: criterion),
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
43
63
|
describe('validateConformityClaim', () => {
|
|
44
64
|
it('returns an empty array when the claim matches the scheme exactly', () => {
|
|
45
65
|
const claim = {
|
|
@@ -232,6 +252,251 @@ describe('validateConformityClaim', () => {
|
|
|
232
252
|
expect(warnings[0].code).toBe(ConformityWarningCode.SchemeNotFound);
|
|
233
253
|
});
|
|
234
254
|
});
|
|
255
|
+
describe('score membership', () => {
|
|
256
|
+
it('warns when the profile score is not in the scheme framework', () => {
|
|
257
|
+
const claim = {
|
|
258
|
+
scheme: SCHEME_URI,
|
|
259
|
+
profile: PROFILE_URI,
|
|
260
|
+
profileScore: { code: 'PROFILE-UNKNOWN' },
|
|
261
|
+
criteria: [],
|
|
262
|
+
};
|
|
263
|
+
const [warning] = validateConformityClaim(claim, scoredScheme({ schemeCodes: ['A', 'B'] }));
|
|
264
|
+
expect(warning).toEqual(expect.objectContaining({
|
|
265
|
+
code: ConformityWarningCode.AttestationScoreNotInFramework,
|
|
266
|
+
received: 'PROFILE-UNKNOWN',
|
|
267
|
+
expected: ['A', 'B'],
|
|
268
|
+
pointer: '/profileScore/code',
|
|
269
|
+
}));
|
|
270
|
+
});
|
|
271
|
+
it('accepts a profile score code published by the scheme framework', () => {
|
|
272
|
+
const claim = {
|
|
273
|
+
scheme: SCHEME_URI,
|
|
274
|
+
profile: PROFILE_URI,
|
|
275
|
+
profileScore: { code: 'A' },
|
|
276
|
+
criteria: [],
|
|
277
|
+
};
|
|
278
|
+
const warnings = validateConformityClaim(claim, scoredScheme({ schemeCodes: ['A'] }));
|
|
279
|
+
expect(warnings).not.toEqual(expect.arrayContaining([
|
|
280
|
+
expect.objectContaining({
|
|
281
|
+
code: ConformityWarningCode.AttestationScoreNotInFramework,
|
|
282
|
+
}),
|
|
283
|
+
]));
|
|
284
|
+
});
|
|
285
|
+
it('warns on a performance score outside the ordered union of published frameworks', () => {
|
|
286
|
+
const claim = {
|
|
287
|
+
scheme: SCHEME_URI,
|
|
288
|
+
profile: PROFILE_URI,
|
|
289
|
+
criteria: [{ criterion: CRITERION_A }],
|
|
290
|
+
assessments: [
|
|
291
|
+
{
|
|
292
|
+
criteria: [CRITERION_A],
|
|
293
|
+
conformityTopics: [],
|
|
294
|
+
assessedScores: [{ code: 'X' }, { code: 'UNKNOWN' }],
|
|
295
|
+
},
|
|
296
|
+
],
|
|
297
|
+
};
|
|
298
|
+
const warnings = validateConformityClaim(claim, scoredScheme({ schemeCodes: ['A', 'B'], profileCodes: ['X', 'Y'], criterionCodes: ['R'] })).filter((warning) => warning.code === ConformityWarningCode.AssessmentScoreNotInFramework);
|
|
299
|
+
expect(warnings).toHaveLength(1);
|
|
300
|
+
expect(warnings[0]).toEqual(expect.objectContaining({
|
|
301
|
+
received: 'UNKNOWN',
|
|
302
|
+
expected: ['A', 'B', 'X', 'Y', 'R'],
|
|
303
|
+
message: 'Assessment score code is not published by the scheme, profile or referenced-criterion frameworks that apply to profile https://example.com/scheme/full/1.0.0.',
|
|
304
|
+
pointer: '/assessments/0/assessedScores/1/code',
|
|
305
|
+
}));
|
|
306
|
+
});
|
|
307
|
+
it('accepts a performance code from any applicable framework, including the referenced criterion', () => {
|
|
308
|
+
const claim = {
|
|
309
|
+
scheme: SCHEME_URI,
|
|
310
|
+
profile: PROFILE_URI,
|
|
311
|
+
criteria: [{ criterion: CRITERION_A }],
|
|
312
|
+
assessments: [{ criteria: [CRITERION_A], conformityTopics: [], assessedScores: [{ code: 'R' }] }],
|
|
313
|
+
};
|
|
314
|
+
expect(validateConformityClaim(claim, scoredScheme({ schemeCodes: ['A'], profileCodes: ['B'], criterionCodes: ['R'] })).filter((warning) => warning.code === ConformityWarningCode.AssessmentScoreNotInFramework)).toEqual([]);
|
|
315
|
+
});
|
|
316
|
+
it('does not use an unreferenced criterion framework for an assessment score', () => {
|
|
317
|
+
const claim = {
|
|
318
|
+
scheme: SCHEME_URI,
|
|
319
|
+
profile: PROFILE_URI,
|
|
320
|
+
criteria: [{ criterion: CRITERION_B }],
|
|
321
|
+
assessments: [{ criteria: [CRITERION_B], conformityTopics: [], assessedScores: [{ code: 'R' }] }],
|
|
322
|
+
};
|
|
323
|
+
const warnings = validateConformityClaim(claim, scoredScheme({ schemeCodes: ['Q'], criterionCodes: ['R'] })).filter((warning) => warning.code === ConformityWarningCode.AssessmentScoreNotInFramework);
|
|
324
|
+
expect(warnings).toEqual([
|
|
325
|
+
expect.objectContaining({
|
|
326
|
+
received: 'R',
|
|
327
|
+
expected: ['Q'],
|
|
328
|
+
pointer: '/assessments/0/assessedScores/0/code',
|
|
329
|
+
}),
|
|
330
|
+
]);
|
|
331
|
+
});
|
|
332
|
+
it('checks the profile score without a profile and says performance scores were not checked', () => {
|
|
333
|
+
const claim = {
|
|
334
|
+
scheme: SCHEME_URI,
|
|
335
|
+
profileScore: { code: 'UNKNOWN' },
|
|
336
|
+
criteria: [],
|
|
337
|
+
assessments: [{ criteria: [], conformityTopics: [], assessedScores: [{ code: 'UNKNOWN' }] }],
|
|
338
|
+
};
|
|
339
|
+
const warnings = validateConformityClaim(claim, scoredScheme({ schemeCodes: ['A'], profileCodes: ['B'] }));
|
|
340
|
+
expect(warnings.map((warning) => warning.code)).toEqual([
|
|
341
|
+
ConformityWarningCode.AttestationScoreNotInFramework,
|
|
342
|
+
ConformityWarningCode.ProfileNotSpecified,
|
|
343
|
+
]);
|
|
344
|
+
expect(warnings[1].message).toContain('performance scores were not checked');
|
|
345
|
+
expect(warnings.some((warning) => warning.code === ConformityWarningCode.AssessmentScoreNotInFramework)).toBe(false);
|
|
346
|
+
});
|
|
347
|
+
it('skips score checks when all published lists are empty', () => {
|
|
348
|
+
const claim = {
|
|
349
|
+
scheme: SCHEME_URI,
|
|
350
|
+
profile: PROFILE_URI,
|
|
351
|
+
profileScore: { code: 'A' },
|
|
352
|
+
criteria: [{ criterion: CRITERION_A }],
|
|
353
|
+
assessments: [{ criteria: [CRITERION_A], conformityTopics: [], assessedScores: [{ code: 'A' }] }],
|
|
354
|
+
};
|
|
355
|
+
const warnings = validateConformityClaim(claim, scoredScheme({ schemeCodes: [], profileCodes: [], criterionCodes: [] }));
|
|
356
|
+
expect(warnings.some((warning) => warning.code.endsWith('score-not-in-framework'))).toBe(false);
|
|
357
|
+
});
|
|
358
|
+
it('suppresses an assessment score warning when any referenced criterion is unresolved', () => {
|
|
359
|
+
const claim = {
|
|
360
|
+
scheme: SCHEME_URI,
|
|
361
|
+
profile: PROFILE_URI,
|
|
362
|
+
criteria: [{ criterion: CRITERION_A }, { criterion: 'https://example.com/criterion/unknown/1.0.0' }],
|
|
363
|
+
assessments: [
|
|
364
|
+
{
|
|
365
|
+
criteria: [CRITERION_A, 'https://example.com/criterion/unknown/1.0.0'],
|
|
366
|
+
conformityTopics: [],
|
|
367
|
+
assessedScores: [{ code: 'UNKNOWN' }],
|
|
368
|
+
},
|
|
369
|
+
],
|
|
370
|
+
};
|
|
371
|
+
const warnings = validateConformityClaim(claim, scoredScheme({ schemeCodes: ['A'] }));
|
|
372
|
+
expect(warnings.map((warning) => warning.code)).toContain(ConformityWarningCode.CriterionNotInProfile);
|
|
373
|
+
expect(warnings.map((warning) => warning.code)).not.toContain(ConformityWarningCode.AssessmentScoreNotInFramework);
|
|
374
|
+
});
|
|
375
|
+
it('checks an assessment with no criteria against the scheme and profile frameworks', () => {
|
|
376
|
+
const claim = {
|
|
377
|
+
scheme: SCHEME_URI,
|
|
378
|
+
profile: PROFILE_URI,
|
|
379
|
+
criteria: [],
|
|
380
|
+
assessments: [{ criteria: [], conformityTopics: [], assessedScores: [{ code: 'Q' }] }],
|
|
381
|
+
};
|
|
382
|
+
const warning = validateConformityClaim(claim, scoredScheme({ schemeCodes: ['A', 'B'], profileCodes: ['X'] })).find((candidate) => candidate.code === ConformityWarningCode.AssessmentScoreNotInFramework);
|
|
383
|
+
expect(warning).toEqual(expect.objectContaining({
|
|
384
|
+
received: 'Q',
|
|
385
|
+
expected: ['A', 'B', 'X'],
|
|
386
|
+
pointer: '/assessments/0/assessedScores/0/code',
|
|
387
|
+
}));
|
|
388
|
+
});
|
|
389
|
+
it('compares score codes exactly, preserving empty and whitespace codes', () => {
|
|
390
|
+
const claim = {
|
|
391
|
+
scheme: SCHEME_URI,
|
|
392
|
+
profile: PROFILE_URI,
|
|
393
|
+
profileScore: { code: ' AA ' },
|
|
394
|
+
criteria: [],
|
|
395
|
+
};
|
|
396
|
+
const scored = scoredScheme({ schemeCodes: ['', ' AA '] });
|
|
397
|
+
expect(validateConformityClaim(claim, scored).some((warning) => warning.code === ConformityWarningCode.AttestationScoreNotInFramework)).toBe(false);
|
|
398
|
+
const mismatch = validateConformityClaim({ ...claim, profileScore: { code: 'AA' } }, scored).find((warning) => warning.code === ConformityWarningCode.AttestationScoreNotInFramework);
|
|
399
|
+
expect(mismatch).toEqual(expect.objectContaining({ received: 'AA', expected: ['', ' AA '] }));
|
|
400
|
+
});
|
|
401
|
+
it('checks a profile score only against the scheme framework', () => {
|
|
402
|
+
const claim = {
|
|
403
|
+
scheme: SCHEME_URI,
|
|
404
|
+
profile: PROFILE_URI,
|
|
405
|
+
profileScore: { code: 'X' },
|
|
406
|
+
criteria: [],
|
|
407
|
+
};
|
|
408
|
+
const [warning] = validateConformityClaim(claim, scoredScheme({ schemeCodes: ['A', 'B'], profileCodes: ['X', 'Y'] }));
|
|
409
|
+
expect(warning).toEqual(expect.objectContaining({
|
|
410
|
+
code: ConformityWarningCode.AttestationScoreNotInFramework,
|
|
411
|
+
received: 'X',
|
|
412
|
+
expected: ['A', 'B'],
|
|
413
|
+
pointer: '/profileScore/code',
|
|
414
|
+
}));
|
|
415
|
+
});
|
|
416
|
+
});
|
|
417
|
+
describe('catalogue tier diagnosis', () => {
|
|
418
|
+
it('reports a profile id used as a scheme id with the owning scheme', () => {
|
|
419
|
+
const claim = { scheme: 'https://scheme.example/profile/1.0.0', criteria: [] };
|
|
420
|
+
const warnings = validateConformityClaim(claim, null, {
|
|
421
|
+
scheme: [{ tier: 'profile', schemes: [SCHEME_URI] }],
|
|
422
|
+
});
|
|
423
|
+
expect(warnings).toEqual([
|
|
424
|
+
expect.objectContaining({
|
|
425
|
+
code: ConformityWarningCode.SchemeWrongTier,
|
|
426
|
+
received: claim.scheme,
|
|
427
|
+
expected: [SCHEME_URI],
|
|
428
|
+
pointer: '/scheme',
|
|
429
|
+
message: `The referenced id is a profile, not a scheme; it belongs to scheme ${SCHEME_URI}.`,
|
|
430
|
+
}),
|
|
431
|
+
]);
|
|
432
|
+
});
|
|
433
|
+
it('keeps scheme-not-found when the resolver also found the expected tier', () => {
|
|
434
|
+
const claim = { scheme: SCHEME_URI, profile: PROFILE_URI, criteria: [] };
|
|
435
|
+
const warnings = validateConformityClaim(claim, null, {
|
|
436
|
+
scheme: [
|
|
437
|
+
{ tier: 'scheme', schemes: [SCHEME_URI] },
|
|
438
|
+
{ tier: 'profile', schemes: [SCHEME_URI] },
|
|
439
|
+
],
|
|
440
|
+
});
|
|
441
|
+
expect(warnings[0].code).toBe(ConformityWarningCode.SchemeNotFound);
|
|
442
|
+
});
|
|
443
|
+
it('reports scheme and criterion ids used as a profile id at the wrong tier', () => {
|
|
444
|
+
const expectedProfiles = [PROFILE_URI];
|
|
445
|
+
const schemeWarning = validateConformityClaim({ scheme: SCHEME_URI, profile: SCHEME_URI, criteria: [] }, scheme(), { profile: [{ tier: 'scheme', schemes: [SCHEME_URI] }] })[0];
|
|
446
|
+
const criterionWarning = validateConformityClaim({ scheme: SCHEME_URI, profile: CRITERION_A, criteria: [] }, scheme(), { profile: [{ tier: 'criterion', schemes: [SCHEME_URI], profiles: [PROFILE_URI] }] })[0];
|
|
447
|
+
expect(schemeWarning).toEqual(expect.objectContaining({
|
|
448
|
+
code: ConformityWarningCode.ProfileWrongTier,
|
|
449
|
+
received: SCHEME_URI,
|
|
450
|
+
expected: expectedProfiles,
|
|
451
|
+
message: expect.stringContaining('scheme'),
|
|
452
|
+
}));
|
|
453
|
+
expect(criterionWarning).toEqual(expect.objectContaining({
|
|
454
|
+
code: ConformityWarningCode.ProfileWrongTier,
|
|
455
|
+
received: CRITERION_A,
|
|
456
|
+
expected: expectedProfiles,
|
|
457
|
+
message: expect.stringContaining('criterion'),
|
|
458
|
+
}));
|
|
459
|
+
});
|
|
460
|
+
it('keeps a profile-not-found warning and names another scheme for a mixed match', () => {
|
|
461
|
+
const warnings = validateConformityClaim({ scheme: SCHEME_URI, profile: 'https://other.example/profile/1.0.0', criteria: [] }, scheme(), {
|
|
462
|
+
profile: [
|
|
463
|
+
{ tier: 'scheme', schemes: ['https://other.example'] },
|
|
464
|
+
{ tier: 'profile', schemes: ['https://other.example'] },
|
|
465
|
+
],
|
|
466
|
+
});
|
|
467
|
+
expect(warnings[0]).toEqual(expect.objectContaining({
|
|
468
|
+
code: ConformityWarningCode.ProfileNotFound,
|
|
469
|
+
message: expect.stringContaining('https://other.example'),
|
|
470
|
+
}));
|
|
471
|
+
});
|
|
472
|
+
it('does not diagnose an orphan criterion as a wrong-tier scheme', () => {
|
|
473
|
+
const warnings = validateConformityClaim({ scheme: 'https://example.com/orphan-criterion', criteria: [] }, null, {
|
|
474
|
+
scheme: [{ tier: 'criterion', schemes: [], profiles: [PROFILE_URI] }],
|
|
475
|
+
});
|
|
476
|
+
expect(warnings[0]).toEqual(expect.objectContaining({
|
|
477
|
+
code: ConformityWarningCode.SchemeNotFound,
|
|
478
|
+
received: 'https://example.com/orphan-criterion',
|
|
479
|
+
}));
|
|
480
|
+
});
|
|
481
|
+
it('does not diagnose an orphan criterion as a wrong-tier profile', () => {
|
|
482
|
+
const warnings = validateConformityClaim({ scheme: SCHEME_URI, profile: 'https://example.com/orphan-criterion', criteria: [] }, scheme(), { profile: [{ tier: 'criterion', schemes: [], profiles: [PROFILE_URI] }] });
|
|
483
|
+
expect(warnings[0]).toEqual(expect.objectContaining({
|
|
484
|
+
code: ConformityWarningCode.ProfileNotFound,
|
|
485
|
+
received: 'https://example.com/orphan-criterion',
|
|
486
|
+
expected: [PROFILE_URI],
|
|
487
|
+
}));
|
|
488
|
+
});
|
|
489
|
+
it('uses the complete wrong-tier messages for scheme and criterion profile references', () => {
|
|
490
|
+
const schemeWarning = validateConformityClaim({ scheme: SCHEME_URI, profile: SCHEME_URI, criteria: [] }, scheme(), { profile: [{ tier: 'scheme', schemes: [SCHEME_URI] }] })[0];
|
|
491
|
+
const criterionWarning = validateConformityClaim({ scheme: SCHEME_URI, profile: CRITERION_A, criteria: [] }, scheme(), { profile: [{ tier: 'criterion', schemes: [SCHEME_URI], profiles: [PROFILE_URI] }] })[0];
|
|
492
|
+
expect(schemeWarning.message).toBe('The referenced id is a scheme, not a profile in the selected scheme.');
|
|
493
|
+
expect(criterionWarning.message).toBe(`The referenced id is a criterion of profile ${PROFILE_URI} in scheme ${SCHEME_URI}, not a profile in the selected scheme.`);
|
|
494
|
+
});
|
|
495
|
+
it('does not diagnose an empty scheme match as a wrong tier', () => {
|
|
496
|
+
const warnings = validateConformityClaim({ scheme: SCHEME_URI, criteria: [] }, null, { scheme: [] });
|
|
497
|
+
expect(warnings[0].code).toBe(ConformityWarningCode.SchemeNotFound);
|
|
498
|
+
});
|
|
499
|
+
});
|
|
235
500
|
describe('scheme-not-found', () => {
|
|
236
501
|
it('fires when the scheme is null', () => {
|
|
237
502
|
const claim = { scheme: SCHEME_URI, profile: PROFILE_URI, criteria: [] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-conformity-claim.test.js","sourceRoot":"","sources":["../../src/conformity-vocabulary/validate-conformity-claim.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-conformity-claim.test.js","sourceRoot":"","sources":["../../src/conformity-vocabulary/validate-conformity-claim.test.ts"],"names":[],"mappings":"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"}
|
package/build/loaders/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { SchemaLoaderError, SchemaLoaderNetworkError, SchemaLoaderHttpError, SchemaLoaderInvalidJsonError, } from './errors.js';
|
|
2
2
|
export { createSchemaLoader, type SchemaLoader } from './schema-loader.js';
|
|
3
3
|
export { createJsonLdDocumentLoader, type JsonLdDocumentLoaderOptions, type LoadedRemoteDocument, } from './jsonld-document-loader.js';
|
|
4
|
+
export { isHostDeliveryFailure } from '../bundle/fallback.js';
|
|
5
|
+
export type { BundledFallbackEvent, BundledFallbackOptions } from '../bundle/fallback.js';
|
package/build/loaders/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { SchemaLoaderError, SchemaLoaderNetworkError, SchemaLoaderHttpError, SchemaLoaderInvalidJsonError, } from './errors.js';
|
|
2
2
|
export { createSchemaLoader } from './schema-loader.js';
|
|
3
3
|
export { createJsonLdDocumentLoader, } from './jsonld-document-loader.js';
|
|
4
|
+
export { isHostDeliveryFailure } from '../bundle/fallback.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,0BAA0B,GAG3B,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/loaders/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,0BAA0B,GAG3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ResolveDocumentOptions } from '../resolvers/index.js';
|
|
2
|
+
import type { BundledFallbackOptions } from '../bundle/fallback.js';
|
|
2
3
|
import type { TtlCache } from '../cache/ttl-cache.js';
|
|
3
4
|
/**
|
|
4
5
|
* The subset of jsonld's `RemoteDocument` shape this loader returns. Carries
|
|
@@ -13,17 +14,18 @@ export interface LoadedRemoteDocument {
|
|
|
13
14
|
document: unknown;
|
|
14
15
|
}
|
|
15
16
|
/** Options for {@link createJsonLdDocumentLoader}. */
|
|
16
|
-
export interface JsonLdDocumentLoaderOptions extends ResolveDocumentOptions {
|
|
17
|
+
export interface JsonLdDocumentLoaderOptions extends ResolveDocumentOptions, BundledFallbackOptions {
|
|
17
18
|
/** `Accept` header for `@context` fetches. Defaults to JSON-LD then JSON. */
|
|
18
19
|
accept?: string;
|
|
19
20
|
/**
|
|
20
21
|
* Optional cache, keyed by URL, for resolved `@context` documents. When
|
|
21
22
|
* supplied, a document fetched once is reused for the cache's TTL rather
|
|
22
|
-
* than re-fetched on every expansion. Only successful
|
|
23
|
+
* than re-fetched on every expansion. Only successful loads are cached
|
|
23
24
|
* (the {@link TtlCache} contract does not cache rejected fetches), so a
|
|
24
|
-
* URL the guard rejects is re-checked every time
|
|
25
|
-
*
|
|
26
|
-
*
|
|
25
|
+
* URL the guard rejects is re-checked every time; a bundled copy served
|
|
26
|
+
* after a host failure counts as a successful load and is cached like a
|
|
27
|
+
* fetched one. A successfully loaded document is cached even if
|
|
28
|
+
* downstream JSON-LD processing later rejects it.
|
|
27
29
|
*/
|
|
28
30
|
cache?: TtlCache<LoadedRemoteDocument>;
|
|
29
31
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { withBundledFallback } from '../bundle/fallback.js';
|
|
1
2
|
/** Default `Accept` for `@context` documents: JSON-LD, falling back to JSON. */
|
|
2
3
|
const CONTEXT_ACCEPT_HEADER = 'application/ld+json, application/json;q=0.9';
|
|
3
4
|
/**
|
|
@@ -17,8 +18,8 @@ const CONTEXT_ACCEPT_HEADER = 'application/ld+json, application/json;q=0.9';
|
|
|
17
18
|
* @see https://github.com/uncefact/tests-untp/issues/707
|
|
18
19
|
*/
|
|
19
20
|
export function createJsonLdDocumentLoader(options) {
|
|
20
|
-
const { cache, accept, ...resolverOptions } = options ?? {};
|
|
21
|
-
const
|
|
21
|
+
const { cache, accept, bundledFallback, onBundledFallback, ...resolverOptions } = options ?? {};
|
|
22
|
+
const fetchContext = async (url) => {
|
|
22
23
|
// Lazy import: the resolver stack pulls in undici, which jsdom test
|
|
23
24
|
// environments cannot evaluate, so it loads at fetch time to keep this
|
|
24
25
|
// module importable there.
|
|
@@ -29,6 +30,14 @@ export function createJsonLdDocumentLoader(options) {
|
|
|
29
30
|
});
|
|
30
31
|
return { documentUrl: finalUrl, document: json };
|
|
31
32
|
};
|
|
33
|
+
// A bundled context is served under the URL that was requested, since no
|
|
34
|
+
// redirect was followed to reach it.
|
|
35
|
+
const load = async (url) => {
|
|
36
|
+
const fetched = await withBundledFallback(url, { bundledFallback, onBundledFallback }, () => fetchContext(url));
|
|
37
|
+
return 'documentUrl' in fetched && 'document' in fetched
|
|
38
|
+
? fetched
|
|
39
|
+
: { documentUrl: url, document: fetched };
|
|
40
|
+
};
|
|
32
41
|
return cache ? (url) => cache.get(url, () => load(url)) : load;
|
|
33
42
|
}
|
|
34
43
|
//# sourceMappingURL=jsonld-document-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonld-document-loader.js","sourceRoot":"","sources":["../../src/loaders/jsonld-document-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jsonld-document-loader.js","sourceRoot":"","sources":["../../src/loaders/jsonld-document-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAiC5D,gFAAgF;AAChF,MAAM,qBAAqB,GAAG,6CAA6C,CAAC;AAE5E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAqC;IAErC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEhG,MAAM,YAAY,GAAG,KAAK,EAAE,GAAW,EAAiC,EAAE;QACxE,oEAAoE;QACpE,uEAAuE;QACvE,2BAA2B;QAC3B,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACtE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE;YACxD,GAAG,eAAe;YAClB,MAAM,EAAE,MAAM,IAAI,qBAAqB;SACxC,CAAC,CAAC;QACH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnD,CAAC,CAAC;IAEF,yEAAyE;IACzE,qCAAqC;IACrC,MAAM,IAAI,GAAG,KAAK,EAAE,GAAW,EAAiC,EAAE;QAChE,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,GAAG,EACH,EAAE,eAAe,EAAE,iBAAiB,EAAE,EACtC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CACxB,CAAC;QACF,OAAO,aAAa,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO;YACtD,CAAC,CAAE,OAAgC;YACnC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjE,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ResolverNetworkError } from '../resolvers/errors.js';
|
|
2
|
+
import { ResolutionFailedError } from '../node/errors.js';
|
|
2
3
|
import { createInMemoryTtlCache } from '../cache/in-memory-ttl-cache.js';
|
|
4
|
+
import { jest } from '@jest/globals';
|
|
3
5
|
const resolveJsonDocument = jest.fn();
|
|
4
6
|
jest.unstable_mockModule('../resolvers/index.js', () => ({
|
|
5
7
|
resolveJsonDocument,
|
|
@@ -68,4 +70,42 @@ describe('createJsonLdDocumentLoader', () => {
|
|
|
68
70
|
});
|
|
69
71
|
});
|
|
70
72
|
});
|
|
73
|
+
describe('createJsonLdDocumentLoader bundled fallback', () => {
|
|
74
|
+
const CONTEXT_URL = 'https://vocabulary.uncefact.org/untp/0.7.0/context/';
|
|
75
|
+
beforeEach(() => {
|
|
76
|
+
resolveJsonDocument.mockReset();
|
|
77
|
+
});
|
|
78
|
+
it('serves the bundled context under the requested URL when its fetch fails', async () => {
|
|
79
|
+
resolveJsonDocument.mockRejectedValue(new ResolverNetworkError(CONTEXT_URL, new Error('ENOTFOUND')));
|
|
80
|
+
const onBundledFallback = jest.fn();
|
|
81
|
+
const load = createJsonLdDocumentLoader({ onBundledFallback });
|
|
82
|
+
const result = await load(CONTEXT_URL);
|
|
83
|
+
expect(result.documentUrl).toBe(CONTEXT_URL);
|
|
84
|
+
expect(Object.keys(result.document)).toContain('@context');
|
|
85
|
+
expect(onBundledFallback).toHaveBeenCalledWith({ url: CONTEXT_URL, cause: expect.any(Error) });
|
|
86
|
+
});
|
|
87
|
+
it('rethrows for a context the bundle does not carry', async () => {
|
|
88
|
+
const cause = new ResolverNetworkError('https://example.com/context.jsonld', new Error('ENOTFOUND'));
|
|
89
|
+
resolveJsonDocument.mockRejectedValue(cause);
|
|
90
|
+
const load = createJsonLdDocumentLoader();
|
|
91
|
+
await expect(load('https://example.com/context.jsonld')).rejects.toBe(cause);
|
|
92
|
+
});
|
|
93
|
+
it('serves the copy when the context host name stops resolving', async () => {
|
|
94
|
+
resolveJsonDocument.mockRejectedValue(new ResolutionFailedError('vocabulary.uncefact.org', new Error('ENOTFOUND')));
|
|
95
|
+
const result = await createJsonLdDocumentLoader()(CONTEXT_URL);
|
|
96
|
+
expect(result.documentUrl).toBe(CONTEXT_URL);
|
|
97
|
+
});
|
|
98
|
+
it('rethrows when the fallback is switched off', async () => {
|
|
99
|
+
const cause = new ResolverNetworkError(CONTEXT_URL, new Error('ENOTFOUND'));
|
|
100
|
+
resolveJsonDocument.mockRejectedValue(cause);
|
|
101
|
+
await expect(createJsonLdDocumentLoader({ bundledFallback: false })(CONTEXT_URL)).rejects.toBe(cause);
|
|
102
|
+
});
|
|
103
|
+
it('caches a bundled context so the next load does not retry the network', async () => {
|
|
104
|
+
resolveJsonDocument.mockRejectedValue(new ResolverNetworkError(CONTEXT_URL, new Error('ENOTFOUND')));
|
|
105
|
+
const load = createJsonLdDocumentLoader({ cache: createInMemoryTtlCache({ ttlMs: 60_000 }) });
|
|
106
|
+
await load(CONTEXT_URL);
|
|
107
|
+
await load(CONTEXT_URL);
|
|
108
|
+
expect(resolveJsonDocument).toHaveBeenCalledTimes(1);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
71
111
|
//# sourceMappingURL=jsonld-document-loader.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonld-document-loader.test.js","sourceRoot":"","sources":["../../src/loaders/jsonld-document-loader.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"jsonld-document-loader.test.js","sourceRoot":"","sources":["../../src/loaders/jsonld-document-loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BundledFallbackOptions } from '../bundle/fallback.js';
|
|
1
2
|
import type { TtlCache } from '../cache/ttl-cache.js';
|
|
2
3
|
/**
|
|
3
4
|
* Loads a JSON Schema document by URL. `T` declares the shape the caller
|
|
@@ -15,7 +16,16 @@ export interface SchemaLoader<T extends object = object> {
|
|
|
15
16
|
* are never cached; a successfully fetched and parsed document is cached
|
|
16
17
|
* even if it later fails Ajv compilation.
|
|
17
18
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
19
|
+
* When the host cannot deliver a bundled UNTP artefact (see
|
|
20
|
+
* `isHostDeliveryFailure`: unreachable, non-2xx, bad body, size, redirect or
|
|
21
|
+
* time bounds), the bundled copy is returned instead and
|
|
22
|
+
* `options.onBundledFallback` is told (see {@link BundledFallbackOptions}); a
|
|
23
|
+
* bundled copy served this way is cached like a fetched one. A URL the SSRF
|
|
24
|
+
* guard refused, an unexpected error, and any URL the bundle does not carry
|
|
25
|
+
* fail exactly as before.
|
|
26
|
+
*
|
|
27
|
+
* @throws {SchemaLoaderError} on `load(url)` if the underlying fetch fails
|
|
28
|
+
* and no bundled copy stands in. The concrete subclass identifies which
|
|
29
|
+
* step failed.
|
|
20
30
|
*/
|
|
21
|
-
export declare function createSchemaLoader<T extends object = object>(cache?: TtlCache<T
|
|
31
|
+
export declare function createSchemaLoader<T extends object = object>(cache?: TtlCache<T>, options?: BundledFallbackOptions): SchemaLoader<T>;
|