@adcp/sdk 13.0.0-rc.8 → 13.0.0-rc.9
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/dist/lib/adapters/roster-account-store.d.mts +9 -8
- package/dist/lib/adapters/roster-account-store.d.ts +9 -8
- package/dist/lib/adapters/roster-account-store.d.ts.map +1 -1
- package/dist/lib/adapters/roster-account-store.js +2 -1
- package/dist/lib/adapters/roster-account-store.js.map +1 -1
- package/dist/lib/adapters/roster-account-store.mjs +2 -1
- package/dist/lib/adapters/roster-account-store.mjs.map +1 -1
- package/dist/lib/net/address-guards.d.ts.map +1 -1
- package/dist/lib/net/address-guards.js +6 -0
- package/dist/lib/net/address-guards.js.map +1 -1
- package/dist/lib/net/address-guards.mjs +6 -0
- package/dist/lib/net/address-guards.mjs.map +1 -1
- package/dist/lib/net/ssrf-fetch.d.ts.map +1 -1
- package/dist/lib/net/ssrf-fetch.js +66 -53
- package/dist/lib/net/ssrf-fetch.js.map +1 -1
- package/dist/lib/net/ssrf-fetch.mjs +66 -53
- package/dist/lib/net/ssrf-fetch.mjs.map +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/account-mode.d.mts +2 -1
- package/dist/lib/server/account-mode.d.ts +2 -1
- package/dist/lib/server/account-mode.d.ts.map +1 -1
- package/dist/lib/server/account-mode.js +1 -0
- package/dist/lib/server/account-mode.js.map +1 -1
- package/dist/lib/server/account-mode.mjs +1 -0
- package/dist/lib/server/account-mode.mjs.map +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +10 -6
- package/dist/lib/server/create-adcp-server.d.ts +10 -6
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +2 -1
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/create-adcp-server.mjs +2 -1
- package/dist/lib/server/create-adcp-server.mjs.map +1 -1
- package/dist/lib/server/decisioning/account.d.mts +16 -11
- package/dist/lib/server/decisioning/account.d.ts +16 -11
- package/dist/lib/server/decisioning/account.d.ts.map +1 -1
- package/dist/lib/server/decisioning/account.js.map +1 -1
- package/dist/lib/server/decisioning/account.mjs.map +1 -1
- package/dist/lib/server/decisioning/pagination.d.mts +2 -0
- package/dist/lib/server/decisioning/pagination.d.ts +2 -0
- package/dist/lib/server/decisioning/pagination.d.ts.map +1 -1
- package/dist/lib/server/decisioning/pagination.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.mts +20 -14
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts +20 -14
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +32 -6
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +32 -6
- package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sales.d.mts +16 -4
- package/dist/lib/server/decisioning/specialisms/sales.d.ts +16 -4
- package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
- package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/index.mjs.map +1 -1
- package/dist/lib/server/legacy/v5/index.d.mts +2 -1
- package/dist/lib/server/legacy/v5/index.d.ts +2 -1
- package/dist/lib/server/legacy/v5/index.d.ts.map +1 -1
- package/dist/lib/server/legacy/v5/index.js.map +1 -1
- package/dist/lib/server/legacy/v5/index.mjs.map +1 -1
- package/dist/lib/testing/compliance/comply.d.mts +2 -0
- package/dist/lib/testing/compliance/comply.d.ts +2 -0
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
- package/dist/lib/testing/compliance/comply.js +45 -14
- package/dist/lib/testing/compliance/comply.js.map +1 -1
- package/dist/lib/testing/compliance/comply.mjs +45 -14
- package/dist/lib/testing/compliance/comply.mjs.map +1 -1
- package/dist/lib/testing/compliance/index.d.mts +1 -1
- package/dist/lib/testing/compliance/index.d.ts +1 -1
- package/dist/lib/testing/compliance/index.d.ts.map +1 -1
- package/dist/lib/testing/compliance/index.js.map +1 -1
- package/dist/lib/testing/compliance/index.mjs.map +1 -1
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts.map +1 -1
- package/dist/lib/testing/compliance/storyboard-tracks.js +9 -1
- package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -1
- package/dist/lib/testing/compliance/storyboard-tracks.mjs +9 -1
- package/dist/lib/testing/compliance/storyboard-tracks.mjs.map +1 -1
- package/dist/lib/testing/compliance/types.d.mts +26 -25
- package/dist/lib/testing/compliance/types.d.ts +26 -25
- package/dist/lib/testing/compliance/types.d.ts.map +1 -1
- package/dist/lib/testing/compliance/types.js.map +1 -1
- package/dist/lib/testing/index.d.mts +2 -2
- package/dist/lib/testing/index.d.ts +2 -2
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js +16 -0
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/index.mjs +16 -0
- package/dist/lib/testing/index.mjs.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.js +20 -12
- package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.mjs +20 -12
- package/dist/lib/testing/scenarios/media-buy.mjs.map +1 -1
- package/dist/lib/testing/storyboard/creative-assets.d.mts +23 -0
- package/dist/lib/testing/storyboard/creative-assets.d.ts +23 -0
- package/dist/lib/testing/storyboard/creative-assets.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/creative-assets.js +322 -45
- package/dist/lib/testing/storyboard/creative-assets.js.map +1 -1
- package/dist/lib/testing/storyboard/creative-assets.mjs +321 -45
- package/dist/lib/testing/storyboard/creative-assets.mjs.map +1 -1
- package/dist/lib/testing/storyboard/index.d.mts +4 -1
- package/dist/lib/testing/storyboard/index.d.ts +4 -1
- package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/index.js +20 -0
- package/dist/lib/testing/storyboard/index.js.map +1 -1
- package/dist/lib/testing/storyboard/index.mjs +19 -0
- package/dist/lib/testing/storyboard/index.mjs.map +1 -1
- package/dist/lib/testing/storyboard/oauth-metadata-graph/grader.d.mts +21 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/grader.d.ts +22 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/grader.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/grader.js +668 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/grader.js.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/grader.mjs +638 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/grader.mjs.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/index.d.mts +5 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/index.d.ts +6 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/index.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/index.js +44 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/index.js.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/index.mjs +20 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/index.mjs.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/types.d.mts +38 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/types.d.ts +39 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/types.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/types.js +17 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/types.js.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/types.mjs +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/types.mjs.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/vector-loader.d.mts +32 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/vector-loader.d.ts +33 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/vector-loader.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/vector-loader.js +105 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/vector-loader.js.map +1 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/vector-loader.mjs +80 -0
- package/dist/lib/testing/storyboard/oauth-metadata-graph/vector-loader.mjs.map +1 -0
- package/dist/lib/testing/storyboard/probes.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/probes.js +2 -1
- package/dist/lib/testing/storyboard/probes.js.map +1 -1
- package/dist/lib/testing/storyboard/probes.mjs +2 -1
- package/dist/lib/testing/storyboard/probes.mjs.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +382 -69
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.mjs +387 -70
- package/dist/lib/testing/storyboard/runner.mjs.map +1 -1
- package/dist/lib/testing/storyboard/seeding.js +3 -1
- package/dist/lib/testing/storyboard/seeding.js.map +1 -1
- package/dist/lib/testing/storyboard/seeding.mjs +3 -1
- package/dist/lib/testing/storyboard/seeding.mjs.map +1 -1
- package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/task-map.js +16 -2
- package/dist/lib/testing/storyboard/task-map.js.map +1 -1
- package/dist/lib/testing/storyboard/task-map.mjs +16 -2
- package/dist/lib/testing/storyboard/task-map.mjs.map +1 -1
- package/dist/lib/testing/storyboard/trusted-match-context-replay.d.mts +11 -0
- package/dist/lib/testing/storyboard/trusted-match-context-replay.d.ts +12 -0
- package/dist/lib/testing/storyboard/trusted-match-context-replay.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/trusted-match-context-replay.js +340 -0
- package/dist/lib/testing/storyboard/trusted-match-context-replay.js.map +1 -0
- package/dist/lib/testing/storyboard/trusted-match-context-replay.mjs +316 -0
- package/dist/lib/testing/storyboard/trusted-match-context-replay.mjs.map +1 -0
- package/dist/lib/testing/storyboard/types.d.mts +84 -15
- package/dist/lib/testing/storyboard/types.d.ts +84 -15
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/types.js +2 -0
- package/dist/lib/testing/storyboard/types.js.map +1 -1
- package/dist/lib/testing/storyboard/types.mjs +2 -0
- package/dist/lib/testing/storyboard/types.mjs.map +1 -1
- package/dist/lib/testing/storyboard/validations.d.mts +3 -0
- package/dist/lib/testing/storyboard/validations.d.ts +3 -0
- package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/validations.js +64 -24
- package/dist/lib/testing/storyboard/validations.js.map +1 -1
- package/dist/lib/testing/storyboard/validations.mjs +64 -24
- package/dist/lib/testing/storyboard/validations.mjs.map +1 -1
- package/dist/lib/types/server-payload-aliases.d.mts +8 -2
- package/dist/lib/types/server-payload-aliases.d.ts +8 -2
- package/dist/lib/types/server-payload-aliases.d.ts.map +1 -1
- package/dist/lib/types/server-payload-aliases.js.map +1 -1
- package/dist/lib/upstream-recorder/recorder.d.mts +7 -18
- package/dist/lib/upstream-recorder/recorder.d.ts +7 -18
- package/dist/lib/upstream-recorder/recorder.d.ts.map +1 -1
- package/dist/lib/upstream-recorder/recorder.js +17 -10
- package/dist/lib/upstream-recorder/recorder.js.map +1 -1
- package/dist/lib/upstream-recorder/recorder.mjs +12 -5
- package/dist/lib/upstream-recorder/recorder.mjs.map +1 -1
- package/dist/lib/utils/redact-secrets.d.ts.map +1 -1
- package/dist/lib/utils/redact-secrets.js +7 -1
- package/dist/lib/utils/redact-secrets.js.map +1 -1
- package/dist/lib/utils/redact-secrets.mjs +7 -1
- package/dist/lib/utils/redact-secrets.mjs.map +1 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.js.map +1 -1
- package/dist/lib/version.mjs +3 -3
- package/dist/lib/version.mjs.map +1 -1
- package/docs/guides/BUILD-AN-AGENT.md +4 -2
- package/docs/llms.txt +1 -1
- package/package.json +2 -2
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import type { TaskResult } from '../types.mjs';
|
|
11
11
|
import type { A2ATaskEnvelope, HttpProbeResult, RunnerRequestRecord, RunnerResponseRecord, StoryboardContext, StoryboardValidation, ValidationResult } from './types.mjs';
|
|
12
12
|
import type { UpstreamTrafficSuccess } from '../test-controller.mjs';
|
|
13
|
+
import type { OAuthMetadataGraphGrade } from './oauth-metadata-graph/index.mjs';
|
|
13
14
|
/**
|
|
14
15
|
* Broader validation context that carries the run-level state a single
|
|
15
16
|
* validation might need: the task result (for MCP tools), the HTTP probe
|
|
@@ -97,6 +98,8 @@ export interface ValidationContext {
|
|
|
97
98
|
* two checks grade `not_applicable`.
|
|
98
99
|
*/
|
|
99
100
|
crossResponses?: CrossResponseSet;
|
|
101
|
+
/** Async-prefetched result consumed by the oauth_metadata_graph check. */
|
|
102
|
+
oauthMetadataGraph?: OAuthMetadataGraphGrade;
|
|
100
103
|
}
|
|
101
104
|
/**
|
|
102
105
|
* Aggregated cross-response data for `cross_response_*` validations on a
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import type { TaskResult } from '../types';
|
|
11
11
|
import type { A2ATaskEnvelope, HttpProbeResult, RunnerRequestRecord, RunnerResponseRecord, StoryboardContext, StoryboardValidation, ValidationResult } from './types';
|
|
12
12
|
import type { UpstreamTrafficSuccess } from '../test-controller';
|
|
13
|
+
import type { OAuthMetadataGraphGrade } from './oauth-metadata-graph';
|
|
13
14
|
/**
|
|
14
15
|
* Broader validation context that carries the run-level state a single
|
|
15
16
|
* validation might need: the task result (for MCP tools), the HTTP probe
|
|
@@ -97,6 +98,8 @@ export interface ValidationContext {
|
|
|
97
98
|
* two checks grade `not_applicable`.
|
|
98
99
|
*/
|
|
99
100
|
crossResponses?: CrossResponseSet;
|
|
101
|
+
/** Async-prefetched result consumed by the oauth_metadata_graph check. */
|
|
102
|
+
oauthMetadataGraph?: OAuthMetadataGraphGrade;
|
|
100
103
|
}
|
|
101
104
|
/**
|
|
102
105
|
* Aggregated cross-response data for `cross_response_*` validations on a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/validations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EAEpB,iBAAiB,EACjB,oBAAoB,EAGpB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAgB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../../../src/lib/testing/storyboard/validations.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,7 @@ var import_shape_drift_hints = require('./shape-drift-hints.js');
|
|
|
38
38
|
var import_test_kit = require('./test-kit.js');
|
|
39
39
|
var import_canonical_format_satisfaction = require('./canonical-format-satisfaction.js');
|
|
40
40
|
var import_rate_limit_trip = require('./rate-limit-trip.js');
|
|
41
|
+
var import_oauth_metadata_graph = require('./oauth-metadata-graph/index.js');
|
|
41
42
|
var import_shape_drift_hints2 = require('./shape-drift-hints.js');
|
|
42
43
|
var import_path2 = require('./path.js');
|
|
43
44
|
function runValidations(validations, context) {
|
|
@@ -92,6 +93,8 @@ function runValidation(validation, ctx) {
|
|
|
92
93
|
return requireHttpResult(ctx, validation, (hr) => validateOn401RequireHeader(validation, hr));
|
|
93
94
|
case "resource_equals_agent_url":
|
|
94
95
|
return requireHttpResult(ctx, validation, (hr) => validateResourceEqualsAgentUrl(validation, hr, ctx.agentUrl));
|
|
96
|
+
case "oauth_metadata_graph":
|
|
97
|
+
return validateOAuthMetadataGraph(validation, ctx.oauthMetadataGraph);
|
|
95
98
|
case "any_of":
|
|
96
99
|
return validateAnyOf(validation, ctx.contributions);
|
|
97
100
|
case "a2a_submitted_artifact":
|
|
@@ -140,11 +143,12 @@ function runValidation(validation, ctx) {
|
|
|
140
143
|
default:
|
|
141
144
|
return {
|
|
142
145
|
check: validation.check,
|
|
143
|
-
passed:
|
|
144
|
-
not_applicable: true,
|
|
146
|
+
passed: false,
|
|
145
147
|
description: validation.description,
|
|
146
|
-
|
|
147
|
-
json_pointer: null
|
|
148
|
+
error: `runner does not implement authored check type '${validation.check}'`,
|
|
149
|
+
json_pointer: null,
|
|
150
|
+
expected: "a validation check implemented by this runner",
|
|
151
|
+
actual: validation.check
|
|
148
152
|
};
|
|
149
153
|
}
|
|
150
154
|
}
|
|
@@ -1120,21 +1124,6 @@ function validateOn401RequireHeader(validation, hr) {
|
|
|
1120
1124
|
actual: value ?? null
|
|
1121
1125
|
};
|
|
1122
1126
|
}
|
|
1123
|
-
function normalizeAgentUrl(url) {
|
|
1124
|
-
try {
|
|
1125
|
-
const u = new URL(url);
|
|
1126
|
-
u.hash = "";
|
|
1127
|
-
u.search = "";
|
|
1128
|
-
u.username = "";
|
|
1129
|
-
u.password = "";
|
|
1130
|
-
if (u.pathname.length > 1 && u.pathname.endsWith("/")) {
|
|
1131
|
-
u.pathname = u.pathname.slice(0, -1);
|
|
1132
|
-
}
|
|
1133
|
-
return `${u.protocol.toLowerCase()}//${u.host.toLowerCase()}${u.pathname}`;
|
|
1134
|
-
} catch {
|
|
1135
|
-
return url;
|
|
1136
|
-
}
|
|
1137
|
-
}
|
|
1138
1127
|
const AGENT_CARD_SUFFIX_RE = /\/\.well-known\/agent(?:-card)?\.json$/i;
|
|
1139
1128
|
function canonicalizeAgentUrlForScope(url) {
|
|
1140
1129
|
try {
|
|
@@ -1166,12 +1155,14 @@ function validateResourceEqualsAgentUrl(validation, hr, agentUrl) {
|
|
|
1166
1155
|
description: validation.description,
|
|
1167
1156
|
error: "Response body missing string `resource` field.",
|
|
1168
1157
|
json_pointer: "/resource",
|
|
1169
|
-
expected:
|
|
1158
|
+
expected: (0, import_oauth_metadata_graph.redactOAuthUrlForOutput)((0, import_oauth_metadata_graph.normalizeOAuthResourceForComparison)(agentUrl)),
|
|
1170
1159
|
actual: null
|
|
1171
1160
|
};
|
|
1172
1161
|
}
|
|
1173
|
-
const expected =
|
|
1174
|
-
const actual =
|
|
1162
|
+
const expected = (0, import_oauth_metadata_graph.normalizeOAuthResourceForComparison)(agentUrl);
|
|
1163
|
+
const actual = (0, import_oauth_metadata_graph.normalizeOAuthResourceForComparison)(resource);
|
|
1164
|
+
const displayExpected = (0, import_oauth_metadata_graph.redactOAuthUrlForOutput)(expected);
|
|
1165
|
+
const displayActual = (0, import_oauth_metadata_graph.redactOAuthUrlForOutput)(actual);
|
|
1175
1166
|
const passed = actual === expected;
|
|
1176
1167
|
let redactedError;
|
|
1177
1168
|
if (!passed) {
|
|
@@ -1182,7 +1173,7 @@ function validateResourceEqualsAgentUrl(validation, hr, agentUrl) {
|
|
|
1182
1173
|
}
|
|
1183
1174
|
const expectedHost = new URL(expected).host;
|
|
1184
1175
|
const hostDiffers = actualHost !== expectedHost;
|
|
1185
|
-
redactedError = `RFC 9728 \`resource\` does not equal the URL clients call (${
|
|
1176
|
+
redactedError = `RFC 9728 \`resource\` does not equal the URL clients call (${displayExpected}). ` + (hostDiffers ? `Advertised host differs from the agent host \u2014 the most common cause is copying your authorization server origin into \`resource\`. ` : `Advertised path differs from the agent path. `) + `Fix: set \`resource\` equal to the full agent URL in your protected-resource metadata document.`;
|
|
1186
1177
|
}
|
|
1187
1178
|
if (passed) {
|
|
1188
1179
|
return {
|
|
@@ -1198,10 +1189,59 @@ function validateResourceEqualsAgentUrl(validation, hr, agentUrl) {
|
|
|
1198
1189
|
description: validation.description,
|
|
1199
1190
|
error: redactedError,
|
|
1200
1191
|
json_pointer: "/resource",
|
|
1192
|
+
expected: displayExpected,
|
|
1193
|
+
actual: displayActual
|
|
1194
|
+
};
|
|
1195
|
+
}
|
|
1196
|
+
function validateOAuthMetadataGraph(validation, grade) {
|
|
1197
|
+
const expected = {
|
|
1198
|
+
profile: "adcp/oauth-metadata-graph/v1",
|
|
1199
|
+
require_authorization_servers: true,
|
|
1200
|
+
follow_all_authorization_servers: true,
|
|
1201
|
+
probe_advertised_endpoints: true
|
|
1202
|
+
};
|
|
1203
|
+
if (!grade) {
|
|
1204
|
+
return {
|
|
1205
|
+
check: validation.check,
|
|
1206
|
+
passed: false,
|
|
1207
|
+
description: validation.description,
|
|
1208
|
+
error: "oauth_metadata_graph was not prefetched by the storyboard runner",
|
|
1209
|
+
json_pointer: null,
|
|
1210
|
+
expected,
|
|
1211
|
+
actual: null
|
|
1212
|
+
};
|
|
1213
|
+
}
|
|
1214
|
+
if (grade.success) {
|
|
1215
|
+
return {
|
|
1216
|
+
check: validation.check,
|
|
1217
|
+
passed: true,
|
|
1218
|
+
description: validation.description,
|
|
1219
|
+
json_pointer: null,
|
|
1220
|
+
expected,
|
|
1221
|
+
observations: grade.observations
|
|
1222
|
+
};
|
|
1223
|
+
}
|
|
1224
|
+
const primary = grade.findings[0];
|
|
1225
|
+
return {
|
|
1226
|
+
check: validation.check,
|
|
1227
|
+
passed: false,
|
|
1228
|
+
description: validation.description,
|
|
1229
|
+
error: `${grade.error_code}: ${grade.error}`,
|
|
1230
|
+
json_pointer: primary?.field ? findingFieldToJsonPointer(primary.field) : null,
|
|
1201
1231
|
expected,
|
|
1202
|
-
actual
|
|
1232
|
+
actual: {
|
|
1233
|
+
code: grade.error_code,
|
|
1234
|
+
...primary?.url && { url: primary.url },
|
|
1235
|
+
...primary?.field && { field: primary.field },
|
|
1236
|
+
...primary?.message && { detail: primary.message }
|
|
1237
|
+
},
|
|
1238
|
+
observations: grade.observations
|
|
1203
1239
|
};
|
|
1204
1240
|
}
|
|
1241
|
+
function findingFieldToJsonPointer(field) {
|
|
1242
|
+
const segments = field.replace(/\[(\d+)\]/g, ".$1").split(".");
|
|
1243
|
+
return `/${segments.map((segment) => segment.replace(/~/g, "~0").replace(/\//g, "~1")).join("/")}`;
|
|
1244
|
+
}
|
|
1205
1245
|
function validateAnyOf(validation, contributions) {
|
|
1206
1246
|
const flags = Array.isArray(validation.allowed_values) ? validation.allowed_values.map(String) : [];
|
|
1207
1247
|
const passed = flags.some((f) => contributions.has(f));
|