@adcp/sdk 9.2.2 → 9.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 +23 -0
- package/dist/lib/discovery/inline-publisher-properties.js +10 -3
- package/dist/lib/discovery/inline-publisher-properties.js.map +1 -1
- package/dist/lib/discovery/resolve-agent-properties.d.ts +39 -11
- package/dist/lib/discovery/resolve-agent-properties.d.ts.map +1 -1
- package/dist/lib/discovery/resolve-agent-properties.js +136 -16
- package/dist/lib/discovery/resolve-agent-properties.js.map +1 -1
- package/dist/lib/discovery/types.d.ts +9 -2
- package/dist/lib/discovery/types.d.ts.map +1 -1
- package/dist/lib/discovery/validate-adagents.d.ts +2 -0
- package/dist/lib/discovery/validate-adagents.d.ts.map +1 -1
- package/dist/lib/discovery/validate-adagents.js +14 -6
- package/dist/lib/discovery/validate-adagents.js.map +1 -1
- package/dist/lib/index.d.ts +4 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +24 -12
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/registry/feed-stream.d.ts +147 -0
- package/dist/lib/registry/feed-stream.d.ts.map +1 -0
- package/dist/lib/registry/feed-stream.js +378 -0
- package/dist/lib/registry/feed-stream.js.map +1 -0
- package/dist/lib/registry/index.d.ts +52 -3
- package/dist/lib/registry/index.d.ts.map +1 -1
- package/dist/lib/registry/index.js +205 -2
- package/dist/lib/registry/index.js.map +1 -1
- package/dist/lib/registry/sync.d.ts +175 -10
- package/dist/lib/registry/sync.d.ts.map +1 -1
- package/dist/lib/registry/sync.js +601 -43
- package/dist/lib/registry/sync.js.map +1 -1
- package/dist/lib/registry/types.d.ts +38 -2
- package/dist/lib/registry/types.d.ts.map +1 -1
- package/dist/lib/registry/types.generated.d.ts +231 -8
- package/dist/lib/registry/types.generated.d.ts.map +1 -1
- package/dist/lib/registry/types.generated.js +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/signing/agent-fetch.d.ts +5 -4
- package/dist/lib/signing/agent-fetch.d.ts.map +1 -1
- package/dist/lib/signing/agent-fetch.js +31 -4
- package/dist/lib/signing/agent-fetch.js.map +1 -1
- package/dist/lib/signing/verifier.d.ts.map +1 -1
- package/dist/lib/signing/verifier.js +10 -37
- package/dist/lib/signing/verifier.js.map +1 -1
- package/dist/lib/signing/webhook-auth-detection.d.ts +10 -0
- package/dist/lib/signing/webhook-auth-detection.d.ts.map +1 -0
- package/dist/lib/signing/webhook-auth-detection.js +37 -0
- package/dist/lib/signing/webhook-auth-detection.js.map +1 -0
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -650,6 +650,29 @@ Build a registry service that:
|
|
|
650
650
|
|
|
651
651
|
Library provides discovery logic - you add persistence layer.
|
|
652
652
|
|
|
653
|
+
### Brand Hierarchy Resolution
|
|
654
|
+
|
|
655
|
+
Use `RegistryClient.resolveBrandHierarchy()` when rules need the ordered corporate chain for a brand domain. The chain is ordered from the resolved brand itself to the house brand, so nearest-ancestor matching can scan from left to right.
|
|
656
|
+
|
|
657
|
+
```ts
|
|
658
|
+
import { RegistryClient, RegistrySync } from '@adcp/sdk';
|
|
659
|
+
|
|
660
|
+
const registry = new RegistryClient({ apiKey: process.env.ADCP_REGISTRY_API_KEY });
|
|
661
|
+
|
|
662
|
+
const brand = await registry.resolveBrandHierarchy('wpp-spain.com', { ttlMs: 60_000 });
|
|
663
|
+
const domains = brand?.chain.map(node => node.canonical_domain) ?? [];
|
|
664
|
+
|
|
665
|
+
const both = await registry.resolveBrandHierarchies(['wpp-spain.com', 'operator.example'], { ttlMs: 60_000 });
|
|
666
|
+
|
|
667
|
+
const sync = new RegistrySync({ client: registry });
|
|
668
|
+
await sync.start();
|
|
669
|
+
const ancestors = sync.getAncestors('wpp-spain.com'); // self -> parents -> house
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
`ResolvedBrand.parent_brand` is a hierarchy reference, not a portable traversal API. New registry responses use the parent brand's canonical domain when known, but older rows may still carry a portfolio-internal `brand.json` id. Use the hierarchy APIs instead of N+1 walking `parent_brand`.
|
|
673
|
+
|
|
674
|
+
`RegistrySync` maintains its hierarchy index from registry feed events. On a cold start before a relevant hierarchy event has been applied, call `resolveBrandHierarchy()` for a one-off read and treat `getAncestors()` as the zero-latency mirror once the feed has populated that domain.
|
|
675
|
+
|
|
653
676
|
### Community Mirror `adagents.json` Catalogs
|
|
654
677
|
|
|
655
678
|
Use `buildCommunityMirrorAdagents()` when publishing catalog-only AAO/community mirrors for platforms that have not adopted AdCP or published seller-authorized files yet. The helper emits `authorized_agents: []` and refuses caller-supplied authorization entries, so format and placement metadata cannot be mistaken for a seller authorization claim.
|
|
@@ -207,9 +207,16 @@ function revokedDomainSet(input) {
|
|
|
207
207
|
if (!Array.isArray(input))
|
|
208
208
|
return new Set();
|
|
209
209
|
const out = new Set();
|
|
210
|
-
for (const
|
|
211
|
-
|
|
212
|
-
|
|
210
|
+
for (const item of input) {
|
|
211
|
+
const domain = typeof item === 'string'
|
|
212
|
+
? item
|
|
213
|
+
: item &&
|
|
214
|
+
typeof item === 'object' &&
|
|
215
|
+
typeof item.publisher_domain === 'string'
|
|
216
|
+
? item.publisher_domain
|
|
217
|
+
: undefined;
|
|
218
|
+
if (domain && domain.length > 0)
|
|
219
|
+
out.add(domain.toLowerCase());
|
|
213
220
|
}
|
|
214
221
|
return out;
|
|
215
222
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-publisher-properties.js","sourceRoot":"","sources":["../../../src/lib/discovery/inline-publisher-properties.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"inline-publisher-properties.js","sourceRoot":"","sources":["../../../src/lib/discovery/inline-publisher-properties.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,15 +12,17 @@
|
|
|
12
12
|
* - `property_ids` → filter top-level `properties[]` by `property_id`
|
|
13
13
|
* - `property_tags` → filter top-level `properties[]` by tag intersection
|
|
14
14
|
* - `inline_properties` → return the agent entry's own `properties[]`
|
|
15
|
+
* - legacy bare inline (`properties[]` without `authorization_type`) →
|
|
16
|
+
* return the agent entry's own `properties[]`
|
|
15
17
|
* - `publisher_properties` → cross-publisher; returned as `cross_publisher`
|
|
16
18
|
* for the caller to resolve against other publishers' adagents.json
|
|
17
19
|
* - `signal_ids` / `signal_tags` → signals agents; no property output
|
|
18
20
|
*
|
|
19
|
-
* Mirrors the Python SDK's `_resolve_agent_properties`
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
21
|
+
* Mirrors the Python SDK's `_resolve_agent_properties` for schema-less
|
|
22
|
+
* legacy bare-inline entries while keeping schema-declared files strict.
|
|
23
|
+
* Missing selectors and bare entries without their own inline `properties[]`
|
|
24
|
+
* return zero properties. The pre-fix TS behavior of attributing every
|
|
25
|
+
* top-level property to every listed agent is gone.
|
|
24
26
|
*/
|
|
25
27
|
import type { AdAgentsJson, AuthorizedAgent, Property, PublisherPropertySelector, SinglePublisherPropertySelector } from './types';
|
|
26
28
|
/**
|
|
@@ -58,6 +60,8 @@ export interface ResolvedAgentScope {
|
|
|
58
60
|
export type ResolveUnresolvableReason =
|
|
59
61
|
/** The agent URL is not listed in `authorized_agents[]` at all. */
|
|
60
62
|
'agent_not_listed'
|
|
63
|
+
/** More than one entry matches the same canonical agent URL. */
|
|
64
|
+
| 'ambiguous_agent_url'
|
|
61
65
|
/** Entry exists but has no `authorization_type` discriminator. */
|
|
62
66
|
| 'missing_authorization_type'
|
|
63
67
|
/** Entry has an `authorization_type` we do not recognize. */
|
|
@@ -87,8 +91,9 @@ export declare function canonicalizeAgentUrl(raw: string): string | null;
|
|
|
87
91
|
/**
|
|
88
92
|
* Resolve `agentUrl`'s authorization scope against an `adagents.json`
|
|
89
93
|
* file. The lookup uses canonicalized URL comparison — two URLs
|
|
90
|
-
* differing only in case, default port, percent-encoding of
|
|
91
|
-
* chars, or fragment are the same agent.
|
|
94
|
+
* differing only in host case, default port, percent-encoding of
|
|
95
|
+
* unreserved chars, or fragment are the same agent. Scheme and trailing
|
|
96
|
+
* slash differences remain distinct.
|
|
92
97
|
*
|
|
93
98
|
* Returns `{ properties: [], cross_publisher: [], cross_publisher_expanded: [], unresolvable: '...' }`
|
|
94
99
|
* (never throws) when the agent isn't listed, when its entry is
|
|
@@ -98,10 +103,15 @@ export declare function resolveAgentProperties(adAgents: AdAgentsJson, agentUrl:
|
|
|
98
103
|
/**
|
|
99
104
|
* Convenience: list every locally-resolvable (`agent_url` →
|
|
100
105
|
* `Property[]`) pair from an `adagents.json` file. Agents listed with
|
|
101
|
-
* `signal_ids` / `signal_tags` or with no
|
|
102
|
-
* absent from the result.
|
|
103
|
-
*
|
|
104
|
-
* publishers' files.
|
|
106
|
+
* `signal_ids` / `signal_tags` or with no resolvable property selector are
|
|
107
|
+
* absent from the result. Legacy bare-inline entries with `properties[]`
|
|
108
|
+
* are included. `publisher_properties` cross-references are reported
|
|
109
|
+
* separately so the caller can resolve them against other publishers' files.
|
|
110
|
+
*
|
|
111
|
+
* The returned map is keyed by public canonical URL; if a file contains
|
|
112
|
+
* canonical-equivalent entries, the later entry wins in this non-authoritative
|
|
113
|
+
* inventory view. Use `resolveAgentProperties` for an authorization decision
|
|
114
|
+
* for a specific agent URL because it fails closed on ambiguous matches.
|
|
105
115
|
*/
|
|
106
116
|
export declare function listAgentPropertyMap(adAgents: AdAgentsJson): {
|
|
107
117
|
byAgent: Map<string, Property[]>;
|
|
@@ -121,4 +131,22 @@ export declare function listAgentPropertyMap(adAgents: AdAgentsJson): {
|
|
|
121
131
|
expanded: SinglePublisherPropertySelector[];
|
|
122
132
|
}>;
|
|
123
133
|
};
|
|
134
|
+
/**
|
|
135
|
+
* Non-authoritative total local property helper for `adagents.json`.
|
|
136
|
+
*
|
|
137
|
+
* This concatenates each authorized agent's locally resolved property scope
|
|
138
|
+
* (`property_ids`, `property_tags`, `inline_properties`, legacy bare inline,
|
|
139
|
+
* and inline-resolved `publisher_properties`). It intentionally preserves
|
|
140
|
+
* duplicate property objects across multiple agents because it is a sum of
|
|
141
|
+
* per-agent scopes, not a unique publisher catalog.
|
|
142
|
+
*
|
|
143
|
+
* If no agent scope resolves to local properties, it falls back to the file's
|
|
144
|
+
* top-level `properties[]`. In both paths, properties whose
|
|
145
|
+
* `publisher_domain` is listed in `revoked_publisher_domains[]` are filtered
|
|
146
|
+
* out.
|
|
147
|
+
*
|
|
148
|
+
* Do not use this helper for authorization. It resolves each entry independently
|
|
149
|
+
* for inventory aggregation and does not fail closed on canonical URL ambiguity.
|
|
150
|
+
*/
|
|
151
|
+
export declare function getAllProperties(adAgents: AdAgentsJson): Property[];
|
|
124
152
|
//# sourceMappingURL=resolve-agent-properties.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-agent-properties.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/resolve-agent-properties.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"resolve-agent-properties.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/resolve-agent-properties.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAEf,QAAQ,EACR,yBAAyB,EACzB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAGjB;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB;;;;;OAKG;IACH,eAAe,EAAE,yBAAyB,EAAE,CAAC;IAC7C;;;;;;;OAOG;IACH,wBAAwB,EAAE,+BAA+B,EAAE,CAAC;IAC5D,iFAAiF;IACjF,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,gEAAgE;IAChE,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,MAAM,MAAM,yBAAyB;AACnC,mEAAmE;AACjE,kBAAkB;AACpB,gEAAgE;GAC9D,qBAAqB;AACvB,kEAAkE;GAChE,4BAA4B;AAC9B,6DAA6D;GAC3D,4BAA4B;AAC9B,yFAAyF;GACvF,kBAAkB;AACpB,4FAA4F;GAC1F,UAAU;AACZ,mFAAmF;GACjF,cAAc,CAAC;AAEnB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS/D;AAkBD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAsBnG;AA+ID;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG;IAC5D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjC,UAAU,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,yBAAyB,CAAA;KAAE,CAAC,CAAC;IAC5E;;;;;OAKG;IACH,eAAe,EAAE,KAAK,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,yBAAyB,EAAE,CAAC;QACvC,QAAQ,EAAE,+BAA+B,EAAE,CAAC;KAC7C,CAAC,CAAC;CACJ,CA+BA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,EAAE,CASnE"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.canonicalizeAgentUrl = canonicalizeAgentUrl;
|
|
4
4
|
exports.resolveAgentProperties = resolveAgentProperties;
|
|
5
5
|
exports.listAgentPropertyMap = listAgentPropertyMap;
|
|
6
|
+
exports.getAllProperties = getAllProperties;
|
|
6
7
|
const inline_publisher_properties_1 = require("./inline-publisher-properties");
|
|
7
8
|
/**
|
|
8
9
|
* Canonicalize an agent URL for `authorized_agents[].url` comparison per
|
|
@@ -20,6 +21,17 @@ const inline_publisher_properties_1 = require("./inline-publisher-properties");
|
|
|
20
21
|
* resolver — e.g., TMP `seller_agent_url` validation.
|
|
21
22
|
*/
|
|
22
23
|
function canonicalizeAgentUrl(raw) {
|
|
24
|
+
const parsed = parseAgentUrl(raw);
|
|
25
|
+
if (!parsed)
|
|
26
|
+
return null;
|
|
27
|
+
// `URL.host` already strips default ports and lowercases the hostname.
|
|
28
|
+
// Use `protocol + host` (NOT `origin`) so the assembled string keeps
|
|
29
|
+
// the IDN-A-label form Node produces.
|
|
30
|
+
const path = decodeUnreservedPercentEncoding(parsed.pathname);
|
|
31
|
+
const query = parsed.search ? decodeUnreservedPercentEncoding(parsed.search) : '';
|
|
32
|
+
return `${parsed.protocol}//${parsed.host}${path}${query}`;
|
|
33
|
+
}
|
|
34
|
+
function parseAgentUrl(raw) {
|
|
23
35
|
if (typeof raw !== 'string' || raw.length === 0)
|
|
24
36
|
return null;
|
|
25
37
|
let parsed;
|
|
@@ -36,18 +48,14 @@ function canonicalizeAgentUrl(raw) {
|
|
|
36
48
|
// in production, but we accept `http://` here so loopback fixtures parse.
|
|
37
49
|
if (parsed.protocol !== 'https:' && parsed.protocol !== 'http:')
|
|
38
50
|
return null;
|
|
39
|
-
|
|
40
|
-
// Use `protocol + host` (NOT `origin`) so the assembled string keeps
|
|
41
|
-
// the IDN-A-label form Node produces.
|
|
42
|
-
const path = decodeUnreservedPercentEncoding(parsed.pathname);
|
|
43
|
-
const query = parsed.search ? decodeUnreservedPercentEncoding(parsed.search) : '';
|
|
44
|
-
return `${parsed.protocol}//${parsed.host}${path}${query}`;
|
|
51
|
+
return parsed;
|
|
45
52
|
}
|
|
46
53
|
/**
|
|
47
54
|
* Resolve `agentUrl`'s authorization scope against an `adagents.json`
|
|
48
55
|
* file. The lookup uses canonicalized URL comparison — two URLs
|
|
49
|
-
* differing only in case, default port, percent-encoding of
|
|
50
|
-
* chars, or fragment are the same agent.
|
|
56
|
+
* differing only in host case, default port, percent-encoding of
|
|
57
|
+
* unreserved chars, or fragment are the same agent. Scheme and trailing
|
|
58
|
+
* slash differences remain distinct.
|
|
51
59
|
*
|
|
52
60
|
* Returns `{ properties: [], cross_publisher: [], cross_publisher_expanded: [], unresolvable: '...' }`
|
|
53
61
|
* (never throws) when the agent isn't listed, when its entry is
|
|
@@ -59,17 +67,37 @@ function resolveAgentProperties(adAgents, agentUrl) {
|
|
|
59
67
|
return { properties: [], cross_publisher: [], cross_publisher_expanded: [], unresolvable: 'agent_not_listed' };
|
|
60
68
|
}
|
|
61
69
|
const entries = Array.isArray(adAgents.authorized_agents) ? adAgents.authorized_agents : [];
|
|
62
|
-
const
|
|
70
|
+
const matches = entries.filter(e => {
|
|
63
71
|
if (!e || typeof e.url !== 'string')
|
|
64
72
|
return false;
|
|
65
73
|
const canon = canonicalizeAgentUrl(e.url);
|
|
66
74
|
return canon !== null && canon === wanted;
|
|
67
75
|
});
|
|
76
|
+
if (matches.length > 1) {
|
|
77
|
+
return { properties: [], cross_publisher: [], cross_publisher_expanded: [], unresolvable: 'ambiguous_agent_url' };
|
|
78
|
+
}
|
|
79
|
+
const entry = matches[0];
|
|
68
80
|
if (!entry) {
|
|
69
81
|
return { properties: [], cross_publisher: [], cross_publisher_expanded: [], unresolvable: 'agent_not_listed' };
|
|
70
82
|
}
|
|
83
|
+
return resolveMatchedAgentProperties(adAgents, entry);
|
|
84
|
+
}
|
|
85
|
+
function resolveMatchedAgentProperties(adAgents, entry) {
|
|
86
|
+
const allProperties = filterRevokedProperties(adAgents.properties, adAgents.revoked_publisher_domains);
|
|
71
87
|
const authType = entry.authorization_type;
|
|
72
88
|
if (!authType) {
|
|
89
|
+
// Python SDK compatibility: legacy files sometimes omit the discriminator
|
|
90
|
+
// while carrying inline `properties[]` on the agent entry.
|
|
91
|
+
if (allowsLegacyBareInline(adAgents) && Array.isArray(entry.properties) && entry.properties.length > 0) {
|
|
92
|
+
const inline = filterRevokedProperties(entry.properties, adAgents.revoked_publisher_domains);
|
|
93
|
+
return {
|
|
94
|
+
properties: inline,
|
|
95
|
+
cross_publisher: [],
|
|
96
|
+
cross_publisher_expanded: [],
|
|
97
|
+
matched_entry: entry,
|
|
98
|
+
...(inline.length === 0 ? { unresolvable: 'no_match' } : {}),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
73
101
|
return {
|
|
74
102
|
properties: [],
|
|
75
103
|
cross_publisher: [],
|
|
@@ -78,7 +106,6 @@ function resolveAgentProperties(adAgents, agentUrl) {
|
|
|
78
106
|
unresolvable: 'missing_authorization_type',
|
|
79
107
|
};
|
|
80
108
|
}
|
|
81
|
-
const allProperties = Array.isArray(adAgents.properties) ? adAgents.properties : [];
|
|
82
109
|
switch (authType) {
|
|
83
110
|
case 'property_ids': {
|
|
84
111
|
const ids = entry.property_ids;
|
|
@@ -133,7 +160,14 @@ function resolveAgentProperties(adAgents, agentUrl) {
|
|
|
133
160
|
unresolvable: 'missing_selector',
|
|
134
161
|
};
|
|
135
162
|
}
|
|
136
|
-
|
|
163
|
+
const matched = filterRevokedProperties(inline, adAgents.revoked_publisher_domains);
|
|
164
|
+
return {
|
|
165
|
+
properties: matched,
|
|
166
|
+
cross_publisher: [],
|
|
167
|
+
cross_publisher_expanded: [],
|
|
168
|
+
matched_entry: entry,
|
|
169
|
+
...(matched.length === 0 ? { unresolvable: 'no_match' } : {}),
|
|
170
|
+
};
|
|
137
171
|
}
|
|
138
172
|
case 'publisher_properties': {
|
|
139
173
|
const selectors = entry.publisher_properties;
|
|
@@ -185,10 +219,15 @@ function resolveAgentProperties(adAgents, agentUrl) {
|
|
|
185
219
|
/**
|
|
186
220
|
* Convenience: list every locally-resolvable (`agent_url` →
|
|
187
221
|
* `Property[]`) pair from an `adagents.json` file. Agents listed with
|
|
188
|
-
* `signal_ids` / `signal_tags` or with no
|
|
189
|
-
* absent from the result.
|
|
190
|
-
*
|
|
191
|
-
* publishers' files.
|
|
222
|
+
* `signal_ids` / `signal_tags` or with no resolvable property selector are
|
|
223
|
+
* absent from the result. Legacy bare-inline entries with `properties[]`
|
|
224
|
+
* are included. `publisher_properties` cross-references are reported
|
|
225
|
+
* separately so the caller can resolve them against other publishers' files.
|
|
226
|
+
*
|
|
227
|
+
* The returned map is keyed by public canonical URL; if a file contains
|
|
228
|
+
* canonical-equivalent entries, the later entry wins in this non-authoritative
|
|
229
|
+
* inventory view. Use `resolveAgentProperties` for an authorization decision
|
|
230
|
+
* for a specific agent URL because it fails closed on ambiguous matches.
|
|
192
231
|
*/
|
|
193
232
|
function listAgentPropertyMap(adAgents) {
|
|
194
233
|
const byAgent = new Map();
|
|
@@ -198,7 +237,7 @@ function listAgentPropertyMap(adAgents) {
|
|
|
198
237
|
for (const entry of entries) {
|
|
199
238
|
if (!entry || typeof entry.url !== 'string')
|
|
200
239
|
continue;
|
|
201
|
-
const scope =
|
|
240
|
+
const scope = resolveMatchedAgentProperties(adAgents, entry);
|
|
202
241
|
const canon = canonicalizeAgentUrl(entry.url);
|
|
203
242
|
const key = canon ?? entry.url;
|
|
204
243
|
if (scope.properties.length > 0) {
|
|
@@ -217,6 +256,35 @@ function listAgentPropertyMap(adAgents) {
|
|
|
217
256
|
}
|
|
218
257
|
return { byAgent, unresolved, cross_publisher };
|
|
219
258
|
}
|
|
259
|
+
/**
|
|
260
|
+
* Non-authoritative total local property helper for `adagents.json`.
|
|
261
|
+
*
|
|
262
|
+
* This concatenates each authorized agent's locally resolved property scope
|
|
263
|
+
* (`property_ids`, `property_tags`, `inline_properties`, legacy bare inline,
|
|
264
|
+
* and inline-resolved `publisher_properties`). It intentionally preserves
|
|
265
|
+
* duplicate property objects across multiple agents because it is a sum of
|
|
266
|
+
* per-agent scopes, not a unique publisher catalog.
|
|
267
|
+
*
|
|
268
|
+
* If no agent scope resolves to local properties, it falls back to the file's
|
|
269
|
+
* top-level `properties[]`. In both paths, properties whose
|
|
270
|
+
* `publisher_domain` is listed in `revoked_publisher_domains[]` are filtered
|
|
271
|
+
* out.
|
|
272
|
+
*
|
|
273
|
+
* Do not use this helper for authorization. It resolves each entry independently
|
|
274
|
+
* for inventory aggregation and does not fail closed on canonical URL ambiguity.
|
|
275
|
+
*/
|
|
276
|
+
function getAllProperties(adAgents) {
|
|
277
|
+
const out = [];
|
|
278
|
+
const entries = Array.isArray(adAgents.authorized_agents) ? adAgents.authorized_agents : [];
|
|
279
|
+
for (const entry of entries) {
|
|
280
|
+
if (!entry || typeof entry.url !== 'string')
|
|
281
|
+
continue;
|
|
282
|
+
const scope = resolveMatchedAgentProperties(adAgents, entry);
|
|
283
|
+
if (scope.properties.length > 0)
|
|
284
|
+
out.push(...scope.properties);
|
|
285
|
+
}
|
|
286
|
+
return out.length > 0 ? out : filterRevokedProperties(adAgents.properties, adAgents.revoked_publisher_domains);
|
|
287
|
+
}
|
|
220
288
|
/**
|
|
221
289
|
* RFC 3986 §6.2.2.2: decode percent-encoded triplets that map to
|
|
222
290
|
* unreserved characters (`ALPHA / DIGIT / "-" / "." / "_" / "~"`).
|
|
@@ -239,4 +307,56 @@ function decodeUnreservedPercentEncoding(input) {
|
|
|
239
307
|
return isUnreserved ? String.fromCharCode(code) : match.toUpperCase();
|
|
240
308
|
});
|
|
241
309
|
}
|
|
310
|
+
function filterRevokedProperties(properties, revokedDomainsInput) {
|
|
311
|
+
if (!Array.isArray(properties))
|
|
312
|
+
return [];
|
|
313
|
+
const revokedDomains = revokedDomainSet(revokedDomainsInput);
|
|
314
|
+
if (revokedDomains.size === 0)
|
|
315
|
+
return properties;
|
|
316
|
+
return properties.filter(p => {
|
|
317
|
+
const domains = propertyPublisherDomains(p);
|
|
318
|
+
if (domains.length === 0)
|
|
319
|
+
return true;
|
|
320
|
+
return domains.every(domain => !revokedDomains.has(domain.toLowerCase()));
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
function revokedDomainSet(input) {
|
|
324
|
+
if (!Array.isArray(input))
|
|
325
|
+
return new Set();
|
|
326
|
+
const out = new Set();
|
|
327
|
+
for (const item of input) {
|
|
328
|
+
// `revoked_at` and `reason` are metadata; presence in this list is the
|
|
329
|
+
// revocation signal.
|
|
330
|
+
const domain = typeof item === 'string'
|
|
331
|
+
? item
|
|
332
|
+
: item &&
|
|
333
|
+
typeof item === 'object' &&
|
|
334
|
+
typeof item.publisher_domain === 'string'
|
|
335
|
+
? item.publisher_domain
|
|
336
|
+
: undefined;
|
|
337
|
+
if (domain && domain.length > 0)
|
|
338
|
+
out.add(domain.toLowerCase());
|
|
339
|
+
}
|
|
340
|
+
return out;
|
|
341
|
+
}
|
|
342
|
+
function propertyPublisherDomains(property) {
|
|
343
|
+
const out = [];
|
|
344
|
+
if (typeof property.publisher_domain === 'string' && property.publisher_domain.length > 0) {
|
|
345
|
+
out.push(property.publisher_domain);
|
|
346
|
+
}
|
|
347
|
+
if (Array.isArray(property.identifiers)) {
|
|
348
|
+
for (const id of property.identifiers) {
|
|
349
|
+
if (id &&
|
|
350
|
+
(id.type === 'domain' || id.type === 'subdomain') &&
|
|
351
|
+
typeof id.value === 'string' &&
|
|
352
|
+
id.value.length > 0) {
|
|
353
|
+
out.push(id.value);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return out;
|
|
358
|
+
}
|
|
359
|
+
function allowsLegacyBareInline(adAgents) {
|
|
360
|
+
return typeof adAgents.$schema !== 'string' || adAgents.$schema.length === 0;
|
|
361
|
+
}
|
|
242
362
|
//# sourceMappingURL=resolve-agent-properties.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-agent-properties.js","sourceRoot":"","sources":["../../../src/lib/discovery/resolve-agent-properties.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolve-agent-properties.js","sourceRoot":"","sources":["../../../src/lib/discovery/resolve-agent-properties.ts"],"names":[],"mappings":";;AAoGA,oDASC;AA6BD,wDAsBC;AA4JD,oDA6CC;AAmBD,4CASC;AAnWD,+EAAiF;AAmDjF;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,uEAAuE;IACvE,qEAAqE;IACrE,sCAAsC;IACtC,MAAM,IAAI,GAAG,+BAA+B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,yCAAyC;IACzC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IACpD,yEAAyE;IACzE,0EAA0E;IAC1E,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,sBAAsB,CAAC,QAAsB,EAAE,QAAgB;IAC7E,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACjH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACjC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAClD,MAAM,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACpH,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACjH,CAAC;IAED,OAAO,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,6BAA6B,CAAC,QAAsB,EAAE,KAAsB;IACnF,MAAM,aAAa,GAAG,uBAAuB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACvG,MAAM,QAAQ,GAAG,KAAK,CAAC,kBAAmD,CAAC;IAC3E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,0EAA0E;QAC1E,2DAA2D;QAC3D,IAAI,sBAAsB,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvG,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YAC7F,OAAO;gBACL,UAAU,EAAE,MAAM;gBAClB,eAAe,EAAE,EAAE;gBACnB,wBAAwB,EAAE,EAAE;gBAC5B,aAAa,EAAE,KAAK;gBACpB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,wBAAwB,EAAE,EAAE;YAC5B,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,4BAA4B;SAC3C,CAAC;IACJ,CAAC;IAED,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5C,OAAO;oBACL,UAAU,EAAE,EAAE;oBACd,eAAe,EAAE,EAAE;oBACnB,wBAAwB,EAAE,EAAE;oBAC5B,aAAa,EAAE,KAAK;oBACpB,YAAY,EAAE,kBAAkB;iBACjC,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACnG,OAAO;gBACL,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,EAAE;gBACnB,wBAAwB,EAAE,EAAE;gBAC5B,aAAa,EAAE,KAAK;gBACpB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC;QACJ,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,OAAO;oBACL,UAAU,EAAE,EAAE;oBACd,eAAe,EAAE,EAAE;oBACnB,wBAAwB,EAAE,EAAE;oBAC5B,aAAa,EAAE,KAAK;oBACpB,YAAY,EAAE,kBAAkB;iBACjC,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpG,OAAO;gBACL,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,EAAE;gBACnB,wBAAwB,EAAE,EAAE;gBAC5B,aAAa,EAAE,KAAK;gBACpB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC;QACJ,CAAC;QAED,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO;oBACL,UAAU,EAAE,EAAE;oBACd,eAAe,EAAE,EAAE;oBACnB,wBAAwB,EAAE,EAAE;oBAC5B,aAAa,EAAE,KAAK;oBACpB,YAAY,EAAE,kBAAkB;iBACjC,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YACpF,OAAO;gBACL,UAAU,EAAE,OAAO;gBACnB,eAAe,EAAE,EAAE;gBACnB,wBAAwB,EAAE,EAAE;gBAC5B,aAAa,EAAE,KAAK;gBACpB,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,UAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvE,CAAC;QACJ,CAAC;QAED,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,oBAAoB,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,OAAO;oBACL,UAAU,EAAE,EAAE;oBACd,eAAe,EAAE,EAAE;oBACnB,wBAAwB,EAAE,EAAE;oBAC5B,aAAa,EAAE,KAAK;oBACpB,YAAY,EAAE,kBAAkB;iBACjC,CAAC;YACJ,CAAC;YACD,oEAAoE;YACpE,uEAAuE;YACvE,0EAA0E;YAC1E,uEAAuE;YACvE,0DAA0D;YAC1D,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,IAAA,8DAAgC,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1G,OAAO;gBACL,UAAU,EAAE,iBAAiB;gBAC7B,eAAe,EAAE,SAAS;gBAC1B,wBAAwB,EAAE,oBAAoB;gBAC9C,aAAa,EAAE,KAAK;aACrB,CAAC;QACJ,CAAC;QAED,KAAK,YAAY,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO;gBACL,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,wBAAwB,EAAE,EAAE;gBAC5B,aAAa,EAAE,KAAK;gBACpB,YAAY,EAAE,cAAc;aAC7B,CAAC;QAEJ;YACE,8DAA8D;YAC9D,+DAA+D;YAC/D,iEAAiE;YACjE,gCAAgC;YAChC,OAAO;gBACL,UAAU,EAAE,EAAE;gBACd,eAAe,EAAE,EAAE;gBACnB,wBAAwB,EAAE,EAAE;gBAC5B,aAAa,EAAE,KAAK;gBACpB,YAAY,EAAE,4BAA4B;aAC3C,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,oBAAoB,CAAC,QAAsB;IAezD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC9C,MAAM,UAAU,GAAoE,EAAE,CAAC;IACvF,MAAM,eAAe,GAIhB,EAAE,CAAC;IAER,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,SAAS;QACtD,MAAM,KAAK,GAAG,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC;QAC/B,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,eAAe,CAAC,IAAI,CAAC;gBACnB,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,KAAK,CAAC,eAAe;gBAChC,QAAQ,EAAE,KAAK,CAAC,wBAAwB;aACzC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9F,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,gBAAgB,CAAC,QAAsB;IACrD,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;YAAE,SAAS;QACtD,MAAM,KAAK,GAAG,6BAA6B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7D,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AACjH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,+BAA+B,CAAC,KAAa;IACpD,OAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/B,MAAM,YAAY,GAChB,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM;YACxC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM;YACxC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM;YACxC,IAAI,KAAK,IAAI,IAAI,MAAM;YACvB,IAAI,KAAK,IAAI,IAAI,MAAM;YACvB,IAAI,KAAK,IAAI,IAAI,MAAM;YACvB,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM;QACvB,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAmB,EAAE,mBAA4B;IAChF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IAC7D,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,UAAwB,CAAC;IAC/D,OAAQ,UAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QAC3C,MAAM,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,uEAAuE;QACvE,qBAAqB;QACrB,MAAM,MAAM,GACV,OAAO,IAAI,KAAK,QAAQ;YACtB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI;gBACF,OAAO,IAAI,KAAK,QAAQ;gBACxB,OAAQ,IAAuC,CAAC,gBAAgB,KAAK,QAAQ;gBAC/E,CAAC,CAAE,IAAqC,CAAC,gBAAgB;gBACzD,CAAC,CAAC,SAAS,CAAC;QAClB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAkB;IAClD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1F,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACtC,IACE,EAAE;gBACF,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,CAAC;gBACjD,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ;gBAC5B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACnB,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAsB;IACpD,OAAO,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -21,6 +21,11 @@ export interface Property {
|
|
|
21
21
|
tags?: string[];
|
|
22
22
|
publisher_domain?: string;
|
|
23
23
|
}
|
|
24
|
+
export type RevokedPublisherDomain = string | {
|
|
25
|
+
publisher_domain: string;
|
|
26
|
+
revoked_at?: string;
|
|
27
|
+
reason?: string;
|
|
28
|
+
};
|
|
24
29
|
/**
|
|
25
30
|
* Discriminator for the per-agent authorization scope on each
|
|
26
31
|
* `authorized_agents[]` entry. Drives `resolveAgentProperties()` —
|
|
@@ -82,7 +87,9 @@ export type CompactPublisherPropertySelector = {
|
|
|
82
87
|
* field — see the spec at `schemas/cache/3.0.11/adagents.json`. Files
|
|
83
88
|
* in the wild sometimes omit them, so both fields are typed as optional
|
|
84
89
|
* here. `resolveAgentProperties()` fails closed (returns no properties)
|
|
85
|
-
* when the discriminator or its selector is missing
|
|
90
|
+
* when the discriminator or its selector is missing, except for the legacy
|
|
91
|
+
* Python-compatible bare-inline shape where an entry omits
|
|
92
|
+
* `authorization_type` but carries inline `properties[]`.
|
|
86
93
|
*/
|
|
87
94
|
export interface AuthorizedAgent {
|
|
88
95
|
url: string;
|
|
@@ -188,7 +195,7 @@ export interface AdAgentsJson {
|
|
|
188
195
|
* part 2) and the SDK's `property-crawler` for the consumer-side
|
|
189
196
|
* cross-check.
|
|
190
197
|
*/
|
|
191
|
-
revoked_publisher_domains?:
|
|
198
|
+
revoked_publisher_domains?: RevokedPublisherDomain[];
|
|
192
199
|
last_updated?: string;
|
|
193
200
|
}
|
|
194
201
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,wBAAwB,GACxB,QAAQ,CAAC;AAEb,0BAA0B;AAC1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAqB;AACrB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAEnH,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,YAAY,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,eAAe,GACf,mBAAmB,GACnB,sBAAsB,GACtB,YAAY,GACZ,aAAa,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,yBAAyB,GAAG,+BAA+B,GAAG,gCAAgC,CAAC;AAE3G,sEAAsE;AACtE,MAAM,MAAM,+BAA+B,GACvC;IAAE,cAAc,EAAE,KAAK,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7E;IAAE,cAAc,EAAE,QAAQ,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpF;;;GAGG;AACH,MAAM,MAAM,gCAAgC,GACxC;IAAE,cAAc,EAAE,KAAK,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,GACtD;IAAE,cAAc,EAAE,QAAQ,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvF
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,wBAAwB,GACxB,QAAQ,CAAC;AAEb,0BAA0B;AAC1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAqB;AACrB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAEnH,yDAAyD;AACzD,MAAM,WAAW,QAAQ;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,YAAY,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN;IACE,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,eAAe,GACf,mBAAmB,GACnB,sBAAsB,GACtB,YAAY,GACZ,aAAa,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,yBAAyB,GAAG,+BAA+B,GAAG,gCAAgC,CAAC;AAE3G,sEAAsE;AACtE,MAAM,MAAM,+BAA+B,GACvC;IAAE,cAAc,EAAE,KAAK,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,GAC7E;IAAE,cAAc,EAAE,QAAQ,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEpF;;;GAGG;AACH,MAAM,MAAM,gCAAgC,GACxC;IAAE,cAAc,EAAE,KAAK,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAA;CAAE,GACtD;IAAE,cAAc,EAAE,QAAQ,CAAC;IAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvF;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;IACvC,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB,iEAAiE;IACjE,oBAAoB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACnD,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,6FAA6F;IAC7F,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;IACH,mFAAmF;IACnF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,+DAA+D;IAC/D,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;IACxB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpC;;;;;;;;;;;;;;OAcG;IACH,yBAAyB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -77,6 +77,8 @@ export interface AdAgentsValidationResult {
|
|
|
77
77
|
export interface ValidateAdAgentsOptions {
|
|
78
78
|
/** Per-request timeout in ms (default 10_000). */
|
|
79
79
|
timeoutMs?: number;
|
|
80
|
+
/** Maximum response body bytes for adagents.json and ads.txt fetches (default 256 KiB). */
|
|
81
|
+
maxBodyBytes?: number;
|
|
80
82
|
/** Optional User-Agent suffix (validated via `validateUserAgent`). */
|
|
81
83
|
userAgent?: string;
|
|
82
84
|
/** Logger level (default `'warn'`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-adagents.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/validate-adagents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAK9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,wBAAwB,GAAG,uBAAuB,CAAC;AAE5F,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,gBAAgB,EAAE,eAAe,CAAC;IAClC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzD;AAYD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"validate-adagents.d.ts","sourceRoot":"","sources":["../../../src/lib/discovery/validate-adagents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAK9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,wBAAwB,GAAG,uBAAuB,CAAC;AAE5F,MAAM,WAAW,wBAAwB;IACvC,yEAAyE;IACzE,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,gBAAgB,EAAE,eAAe,CAAC;IAClC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzD;AAYD;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAgNnC;AAqBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA8BrE"}
|
|
@@ -38,8 +38,8 @@ const ssrf_fetch_1 = require("../net/ssrf-fetch");
|
|
|
38
38
|
const probe_policy_1 = require("../utils/probe-policy");
|
|
39
39
|
const adagents_redirects_1 = require("./adagents-redirects");
|
|
40
40
|
const DEFAULT_TIMEOUT_MS = 10_000;
|
|
41
|
-
const
|
|
42
|
-
const
|
|
41
|
+
const DEFAULT_MAX_BODY_BYTES = 256 * 1024;
|
|
42
|
+
const MAX_CONFIGURABLE_BODY_BYTES = 2 * 1024 * 1024;
|
|
43
43
|
const FETCH_HEADERS = {
|
|
44
44
|
Accept: 'application/json, text/plain, */*',
|
|
45
45
|
'Accept-Language': 'en-US,en;q=0.9',
|
|
@@ -57,6 +57,7 @@ async function validateAdAgents(publisherDomain, options = {}) {
|
|
|
57
57
|
(0, validate_user_agent_1.validateUserAgent)(options.userAgent);
|
|
58
58
|
}
|
|
59
59
|
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
60
|
+
const maxBodyBytes = resolveMaxBodyBytes(options.maxBodyBytes);
|
|
60
61
|
const logger = (0, logger_1.createLogger)({ level: options.logLevel ?? 'warn' }).child('validateAdAgents');
|
|
61
62
|
const userAgentHeader = `adcp-validate-adagents/${version_1.LIBRARY_VERSION} (+https://adcontextprotocol.org)`;
|
|
62
63
|
const fromHeader = options.userAgent
|
|
@@ -68,7 +69,7 @@ async function validateAdAgents(publisherDomain, options = {}) {
|
|
|
68
69
|
// Step 1: try the publisher's canonical location.
|
|
69
70
|
const direct = await fetchJsonOrStatus(publisherUrl, {
|
|
70
71
|
timeoutMs,
|
|
71
|
-
maxBodyBytes
|
|
72
|
+
maxBodyBytes,
|
|
72
73
|
userAgentHeader,
|
|
73
74
|
fromHeader,
|
|
74
75
|
redirectPolicy: { mode: 'same-registrable-domain', originUrl: publisherUrl },
|
|
@@ -119,7 +120,7 @@ async function validateAdAgents(publisherDomain, options = {}) {
|
|
|
119
120
|
}
|
|
120
121
|
const followed = await fetchJsonOrStatus(target, {
|
|
121
122
|
timeoutMs,
|
|
122
|
-
maxBodyBytes
|
|
123
|
+
maxBodyBytes,
|
|
123
124
|
userAgentHeader,
|
|
124
125
|
fromHeader,
|
|
125
126
|
redirectPolicy: { mode: 'none' },
|
|
@@ -176,7 +177,7 @@ async function validateAdAgents(publisherDomain, options = {}) {
|
|
|
176
177
|
const adsTxtUrl = buildUrl(publisher, '/ads.txt');
|
|
177
178
|
const adsTxt = await fetchTextOrStatus(adsTxtUrl, {
|
|
178
179
|
timeoutMs,
|
|
179
|
-
maxBodyBytes
|
|
180
|
+
maxBodyBytes,
|
|
180
181
|
userAgentHeader,
|
|
181
182
|
fromHeader,
|
|
182
183
|
});
|
|
@@ -211,7 +212,7 @@ async function validateAdAgents(publisherDomain, options = {}) {
|
|
|
211
212
|
const managerUrl = buildUrl(managerDomain, '/.well-known/adagents.json');
|
|
212
213
|
const manager = await fetchJsonOrStatus(managerUrl, {
|
|
213
214
|
timeoutMs,
|
|
214
|
-
maxBodyBytes
|
|
215
|
+
maxBodyBytes,
|
|
215
216
|
userAgentHeader,
|
|
216
217
|
fromHeader,
|
|
217
218
|
redirectPolicy: { mode: 'same-registrable-domain', originUrl: managerUrl },
|
|
@@ -257,6 +258,13 @@ function coerceAdAgentsObject(value) {
|
|
|
257
258
|
return null;
|
|
258
259
|
return value;
|
|
259
260
|
}
|
|
261
|
+
function resolveMaxBodyBytes(maxBodyBytes) {
|
|
262
|
+
const value = maxBodyBytes ?? DEFAULT_MAX_BODY_BYTES;
|
|
263
|
+
if (!Number.isSafeInteger(value) || value <= 0 || value > MAX_CONFIGURABLE_BODY_BYTES) {
|
|
264
|
+
throw new Error(`maxBodyBytes must be an integer between 1 and ${MAX_CONFIGURABLE_BODY_BYTES}`);
|
|
265
|
+
}
|
|
266
|
+
return value;
|
|
267
|
+
}
|
|
260
268
|
/**
|
|
261
269
|
* Parse a MANAGERDOMAIN directive out of an ads.txt body. Returns the
|
|
262
270
|
* lowercased host token (last-wins on duplicates) or `undefined` when
|