@adcp/sdk 14.0.0-rc.33 → 14.0.0-rc.34
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/brand/domain.d.mts +30 -0
- package/dist/lib/brand/domain.d.ts +30 -0
- package/dist/lib/brand/domain.js +109 -0
- package/dist/lib/brand/domain.mjs +82 -0
- package/dist/lib/brand/index.d.mts +2 -1
- package/dist/lib/brand/index.d.ts +2 -1
- package/dist/lib/brand/index.js +9 -2
- package/dist/lib/brand/index.mjs +5 -1
- package/dist/lib/core/ConversationTypes.d.mts +14 -0
- package/dist/lib/core/ConversationTypes.d.ts +14 -0
- package/dist/lib/index.d.mts +2 -2
- package/dist/lib/index.d.ts +2 -2
- package/dist/lib/index.js +6 -0
- package/dist/lib/index.mjs +7 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.js +10 -3
- package/dist/lib/server/create-adcp-server.mjs +9 -3
- package/dist/lib/server/decisioning/async-outcome.d.mts +30 -0
- package/dist/lib/server/decisioning/async-outcome.d.ts +30 -0
- package/dist/lib/server/decisioning/async-outcome.js +4 -1
- package/dist/lib/server/decisioning/async-outcome.mjs +4 -1
- package/dist/lib/server/errors.d.mts +23 -0
- package/dist/lib/server/errors.d.ts +23 -0
- package/dist/lib/server/errors.js +2 -1
- package/dist/lib/server/errors.mjs +2 -1
- package/dist/lib/server/normalize-errors.d.mts +15 -3
- package/dist/lib/server/normalize-errors.d.ts +15 -3
- package/dist/lib/server/normalize-errors.js +6 -0
- package/dist/lib/server/normalize-errors.mjs +6 -0
- package/dist/lib/signing/agent-resolver/etld.js +7 -2
- package/dist/lib/signing/agent-resolver/etld.mjs +7 -2
- package/dist/lib/signing/agent-resolver/resolve-agent.js +21 -4
- package/dist/lib/signing/agent-resolver/resolve-agent.mjs +21 -4
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/utils/buyer-retry-policy.d.mts +11 -0
- package/dist/lib/utils/buyer-retry-policy.d.ts +11 -0
- package/dist/lib/utils/error-extraction.d.mts +8 -0
- package/dist/lib/utils/error-extraction.d.ts +8 -0
- package/dist/lib/utils/error-extraction.js +15 -0
- package/dist/lib/utils/error-extraction.mjs +15 -0
- 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.mjs +3 -3
- package/docs/TYPE-SUMMARY.md +2 -2
- package/docs/llms.txt +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type BrandDomainValidationCode = 'invalid_syntax' | 'not_registrable' | 'special_use_not_allowed';
|
|
2
|
+
export declare class BrandDomainValidationError extends Error {
|
|
3
|
+
readonly code: BrandDomainValidationCode;
|
|
4
|
+
readonly domain: string;
|
|
5
|
+
constructor(code: BrandDomainValidationCode, domain: string);
|
|
6
|
+
}
|
|
7
|
+
export interface ValidateBrandDomainOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Admit the protocol's narrow development-name set: subdomains of
|
|
10
|
+
* `.localhost`, `.test`, `.example`, or `.invalid`, plus the reserved
|
|
11
|
+
* `example.com`, `example.net`, and `example.org` names. Default false.
|
|
12
|
+
*
|
|
13
|
+
* This option is deliberately explicit and is never inferred from
|
|
14
|
+
* `NODE_ENV`. Bare `localhost` remains invalid because BrandRef wire syntax
|
|
15
|
+
* always requires a dotted domain. `.local` remains forbidden because it
|
|
16
|
+
* participates in multicast DNS.
|
|
17
|
+
*/
|
|
18
|
+
allowDevelopmentDomains?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validate and canonicalize a BrandRef/BrandKey domain.
|
|
22
|
+
*
|
|
23
|
+
* The JSON Schema enforces portable dotted wire syntax. This helper adds the
|
|
24
|
+
* runtime policy needed before brand discovery: a production name must have a
|
|
25
|
+
* registrable domain in the pinned ICANN+PRIVATE Public Suffix List and must
|
|
26
|
+
* not be an IANA special-use name.
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateBrandDomain(domain: string, options?: ValidateBrandDomainOptions): string;
|
|
29
|
+
export declare function isDevelopmentBrandDomain(domain: string): boolean;
|
|
30
|
+
export declare function isSpecialUseBrandDomain(domain: string): boolean;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type BrandDomainValidationCode = 'invalid_syntax' | 'not_registrable' | 'special_use_not_allowed';
|
|
2
|
+
export declare class BrandDomainValidationError extends Error {
|
|
3
|
+
readonly code: BrandDomainValidationCode;
|
|
4
|
+
readonly domain: string;
|
|
5
|
+
constructor(code: BrandDomainValidationCode, domain: string);
|
|
6
|
+
}
|
|
7
|
+
export interface ValidateBrandDomainOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Admit the protocol's narrow development-name set: subdomains of
|
|
10
|
+
* `.localhost`, `.test`, `.example`, or `.invalid`, plus the reserved
|
|
11
|
+
* `example.com`, `example.net`, and `example.org` names. Default false.
|
|
12
|
+
*
|
|
13
|
+
* This option is deliberately explicit and is never inferred from
|
|
14
|
+
* `NODE_ENV`. Bare `localhost` remains invalid because BrandRef wire syntax
|
|
15
|
+
* always requires a dotted domain. `.local` remains forbidden because it
|
|
16
|
+
* participates in multicast DNS.
|
|
17
|
+
*/
|
|
18
|
+
allowDevelopmentDomains?: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validate and canonicalize a BrandRef/BrandKey domain.
|
|
22
|
+
*
|
|
23
|
+
* The JSON Schema enforces portable dotted wire syntax. This helper adds the
|
|
24
|
+
* runtime policy needed before brand discovery: a production name must have a
|
|
25
|
+
* registrable domain in the pinned ICANN+PRIVATE Public Suffix List and must
|
|
26
|
+
* not be an IANA special-use name.
|
|
27
|
+
*/
|
|
28
|
+
export declare function validateBrandDomain(domain: string, options?: ValidateBrandDomainOptions): string;
|
|
29
|
+
export declare function isDevelopmentBrandDomain(domain: string): boolean;
|
|
30
|
+
export declare function isSpecialUseBrandDomain(domain: string): boolean;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var domain_exports = {};
|
|
20
|
+
__export(domain_exports, {
|
|
21
|
+
BrandDomainValidationError: () => BrandDomainValidationError,
|
|
22
|
+
isDevelopmentBrandDomain: () => isDevelopmentBrandDomain,
|
|
23
|
+
isSpecialUseBrandDomain: () => isSpecialUseBrandDomain,
|
|
24
|
+
validateBrandDomain: () => validateBrandDomain
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(domain_exports);
|
|
27
|
+
var import_tldts = require("tldts");
|
|
28
|
+
var import_canonicalize = require('../signing/agent-resolver/canonicalize.js');
|
|
29
|
+
const DOTTED_WIRE_DOMAIN = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/;
|
|
30
|
+
const DEVELOPMENT_SUFFIXES = ["localhost", "test", "example", "invalid"];
|
|
31
|
+
const DEVELOPMENT_EXACT_NAMES = /* @__PURE__ */ new Set(["example.com", "example.net", "example.org"]);
|
|
32
|
+
const SPECIAL_USE_SUFFIXES = [
|
|
33
|
+
"alt",
|
|
34
|
+
"6tisch.arpa",
|
|
35
|
+
"eap.arpa",
|
|
36
|
+
"eap-noob.arpa",
|
|
37
|
+
"home.arpa",
|
|
38
|
+
"in-addr.arpa",
|
|
39
|
+
"ip6.arpa",
|
|
40
|
+
"ipv4only.arpa",
|
|
41
|
+
"resolver.arpa",
|
|
42
|
+
"service.arpa",
|
|
43
|
+
"example",
|
|
44
|
+
"example.com",
|
|
45
|
+
"example.net",
|
|
46
|
+
"example.org",
|
|
47
|
+
"invalid",
|
|
48
|
+
"local",
|
|
49
|
+
"localhost",
|
|
50
|
+
"onion",
|
|
51
|
+
"test"
|
|
52
|
+
];
|
|
53
|
+
class BrandDomainValidationError extends Error {
|
|
54
|
+
constructor(code, domain) {
|
|
55
|
+
const messages = {
|
|
56
|
+
invalid_syntax: "Brand domain must be a bare, lowercase-compatible dotted hostname",
|
|
57
|
+
not_registrable: "Brand domain must have a registrable public or private-suffix domain",
|
|
58
|
+
special_use_not_allowed: "IANA special-use brand domain is not allowed in production"
|
|
59
|
+
};
|
|
60
|
+
super(messages[code]);
|
|
61
|
+
this.code = code;
|
|
62
|
+
this.domain = domain;
|
|
63
|
+
this.name = "BrandDomainValidationError";
|
|
64
|
+
}
|
|
65
|
+
code;
|
|
66
|
+
domain;
|
|
67
|
+
}
|
|
68
|
+
function validateBrandDomain(domain, options = {}) {
|
|
69
|
+
if (typeof domain !== "string" || domain.length === 0 || /[\s/:@?#]/.test(domain)) {
|
|
70
|
+
throw new BrandDomainValidationError("invalid_syntax", domain);
|
|
71
|
+
}
|
|
72
|
+
let canonical;
|
|
73
|
+
try {
|
|
74
|
+
canonical = (0, import_canonicalize.canonicalizeHost)(domain);
|
|
75
|
+
} catch {
|
|
76
|
+
throw new BrandDomainValidationError("invalid_syntax", domain);
|
|
77
|
+
}
|
|
78
|
+
if (!DOTTED_WIRE_DOMAIN.test(canonical)) {
|
|
79
|
+
throw new BrandDomainValidationError("invalid_syntax", domain);
|
|
80
|
+
}
|
|
81
|
+
const developmentName = isDevelopmentBrandDomain(canonical);
|
|
82
|
+
if (developmentName && options.allowDevelopmentDomains === true) return canonical;
|
|
83
|
+
const parsed = (0, import_tldts.parse)(canonical, {
|
|
84
|
+
allowPrivateDomains: true,
|
|
85
|
+
detectSpecialUse: true,
|
|
86
|
+
extractHostname: false
|
|
87
|
+
});
|
|
88
|
+
if (parsed.isSpecialUse || developmentName || isSpecialUseBrandDomain(canonical)) {
|
|
89
|
+
throw new BrandDomainValidationError("special_use_not_allowed", domain);
|
|
90
|
+
}
|
|
91
|
+
if (parsed.isIp || !parsed.domain || !parsed.isIcann && !parsed.isPrivate) {
|
|
92
|
+
throw new BrandDomainValidationError("not_registrable", domain);
|
|
93
|
+
}
|
|
94
|
+
return canonical;
|
|
95
|
+
}
|
|
96
|
+
function isDevelopmentBrandDomain(domain) {
|
|
97
|
+
if (DEVELOPMENT_EXACT_NAMES.has(domain)) return true;
|
|
98
|
+
return DEVELOPMENT_SUFFIXES.some((suffix) => domain.endsWith(`.${suffix}`));
|
|
99
|
+
}
|
|
100
|
+
function isSpecialUseBrandDomain(domain) {
|
|
101
|
+
return SPECIAL_USE_SUFFIXES.some((suffix) => domain === suffix || domain.endsWith(`.${suffix}`));
|
|
102
|
+
}
|
|
103
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
104
|
+
0 && (module.exports = {
|
|
105
|
+
BrandDomainValidationError,
|
|
106
|
+
isDevelopmentBrandDomain,
|
|
107
|
+
isSpecialUseBrandDomain,
|
|
108
|
+
validateBrandDomain
|
|
109
|
+
});
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { parse as parseTld } from "tldts";
|
|
2
|
+
import { canonicalizeHost } from "../signing/agent-resolver/canonicalize.mjs";
|
|
3
|
+
const DOTTED_WIRE_DOMAIN = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/;
|
|
4
|
+
const DEVELOPMENT_SUFFIXES = ["localhost", "test", "example", "invalid"];
|
|
5
|
+
const DEVELOPMENT_EXACT_NAMES = /* @__PURE__ */ new Set(["example.com", "example.net", "example.org"]);
|
|
6
|
+
const SPECIAL_USE_SUFFIXES = [
|
|
7
|
+
"alt",
|
|
8
|
+
"6tisch.arpa",
|
|
9
|
+
"eap.arpa",
|
|
10
|
+
"eap-noob.arpa",
|
|
11
|
+
"home.arpa",
|
|
12
|
+
"in-addr.arpa",
|
|
13
|
+
"ip6.arpa",
|
|
14
|
+
"ipv4only.arpa",
|
|
15
|
+
"resolver.arpa",
|
|
16
|
+
"service.arpa",
|
|
17
|
+
"example",
|
|
18
|
+
"example.com",
|
|
19
|
+
"example.net",
|
|
20
|
+
"example.org",
|
|
21
|
+
"invalid",
|
|
22
|
+
"local",
|
|
23
|
+
"localhost",
|
|
24
|
+
"onion",
|
|
25
|
+
"test"
|
|
26
|
+
];
|
|
27
|
+
class BrandDomainValidationError extends Error {
|
|
28
|
+
constructor(code, domain) {
|
|
29
|
+
const messages = {
|
|
30
|
+
invalid_syntax: "Brand domain must be a bare, lowercase-compatible dotted hostname",
|
|
31
|
+
not_registrable: "Brand domain must have a registrable public or private-suffix domain",
|
|
32
|
+
special_use_not_allowed: "IANA special-use brand domain is not allowed in production"
|
|
33
|
+
};
|
|
34
|
+
super(messages[code]);
|
|
35
|
+
this.code = code;
|
|
36
|
+
this.domain = domain;
|
|
37
|
+
this.name = "BrandDomainValidationError";
|
|
38
|
+
}
|
|
39
|
+
code;
|
|
40
|
+
domain;
|
|
41
|
+
}
|
|
42
|
+
function validateBrandDomain(domain, options = {}) {
|
|
43
|
+
if (typeof domain !== "string" || domain.length === 0 || /[\s/:@?#]/.test(domain)) {
|
|
44
|
+
throw new BrandDomainValidationError("invalid_syntax", domain);
|
|
45
|
+
}
|
|
46
|
+
let canonical;
|
|
47
|
+
try {
|
|
48
|
+
canonical = canonicalizeHost(domain);
|
|
49
|
+
} catch {
|
|
50
|
+
throw new BrandDomainValidationError("invalid_syntax", domain);
|
|
51
|
+
}
|
|
52
|
+
if (!DOTTED_WIRE_DOMAIN.test(canonical)) {
|
|
53
|
+
throw new BrandDomainValidationError("invalid_syntax", domain);
|
|
54
|
+
}
|
|
55
|
+
const developmentName = isDevelopmentBrandDomain(canonical);
|
|
56
|
+
if (developmentName && options.allowDevelopmentDomains === true) return canonical;
|
|
57
|
+
const parsed = parseTld(canonical, {
|
|
58
|
+
allowPrivateDomains: true,
|
|
59
|
+
detectSpecialUse: true,
|
|
60
|
+
extractHostname: false
|
|
61
|
+
});
|
|
62
|
+
if (parsed.isSpecialUse || developmentName || isSpecialUseBrandDomain(canonical)) {
|
|
63
|
+
throw new BrandDomainValidationError("special_use_not_allowed", domain);
|
|
64
|
+
}
|
|
65
|
+
if (parsed.isIp || !parsed.domain || !parsed.isIcann && !parsed.isPrivate) {
|
|
66
|
+
throw new BrandDomainValidationError("not_registrable", domain);
|
|
67
|
+
}
|
|
68
|
+
return canonical;
|
|
69
|
+
}
|
|
70
|
+
function isDevelopmentBrandDomain(domain) {
|
|
71
|
+
if (DEVELOPMENT_EXACT_NAMES.has(domain)) return true;
|
|
72
|
+
return DEVELOPMENT_SUFFIXES.some((suffix) => domain.endsWith(`.${suffix}`));
|
|
73
|
+
}
|
|
74
|
+
function isSpecialUseBrandDomain(domain) {
|
|
75
|
+
return SPECIAL_USE_SUFFIXES.some((suffix) => domain === suffix || domain.endsWith(`.${suffix}`));
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
BrandDomainValidationError,
|
|
79
|
+
isDevelopmentBrandDomain,
|
|
80
|
+
isSpecialUseBrandDomain,
|
|
81
|
+
validateBrandDomain
|
|
82
|
+
};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { RegistryClient, SaveBrandResponse } from '../registry/index.mjs';
|
|
2
2
|
import type { GetBrandIdentitySuccess } from '../types/core.generated.mjs';
|
|
3
|
+
export { BrandDomainValidationError, isDevelopmentBrandDomain, validateBrandDomain } from './domain.mjs';
|
|
4
|
+
export type { BrandDomainValidationCode, ValidateBrandDomainOptions } from './domain.mjs';
|
|
3
5
|
export type BrandJsonRecord = Record<string, unknown>;
|
|
4
6
|
type ProtocolBrandLogo = NonNullable<GetBrandIdentitySuccess['logos']>[number];
|
|
5
7
|
export type BrandWebsiteAliasRelationship = 'owned';
|
|
@@ -148,4 +150,3 @@ export declare function checkLogoSlotCoverage(brandJsonOrBrand: BrandJsonRecord,
|
|
|
148
150
|
export declare function updateBrandJsonFromMappings(options: UpdateBrandJsonFromMappingsOptions): Promise<UpdateBrandJsonFromMappingsResult>;
|
|
149
151
|
export declare function extractBrandWebsiteAliases(brandJsonOrBrand: BrandJsonRecord, options?: ExtractBrandWebsiteAliasesOptions): BrandWebsiteAlias[];
|
|
150
152
|
export declare function extractBrandWebsiteAliasDomains(brandJsonOrBrand: BrandJsonRecord, options?: ExtractBrandWebsiteAliasesOptions): string[];
|
|
151
|
-
export {};
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { RegistryClient, SaveBrandResponse } from '../registry';
|
|
2
2
|
import type { GetBrandIdentitySuccess } from '../types/core.generated';
|
|
3
|
+
export { BrandDomainValidationError, isDevelopmentBrandDomain, validateBrandDomain } from './domain';
|
|
4
|
+
export type { BrandDomainValidationCode, ValidateBrandDomainOptions } from './domain';
|
|
3
5
|
export type BrandJsonRecord = Record<string, unknown>;
|
|
4
6
|
type ProtocolBrandLogo = NonNullable<GetBrandIdentitySuccess['logos']>[number];
|
|
5
7
|
export type BrandWebsiteAliasRelationship = 'owned';
|
|
@@ -148,4 +150,3 @@ export declare function checkLogoSlotCoverage(brandJsonOrBrand: BrandJsonRecord,
|
|
|
148
150
|
export declare function updateBrandJsonFromMappings(options: UpdateBrandJsonFromMappingsOptions): Promise<UpdateBrandJsonFromMappingsResult>;
|
|
149
151
|
export declare function extractBrandWebsiteAliases(brandJsonOrBrand: BrandJsonRecord, options?: ExtractBrandWebsiteAliasesOptions): BrandWebsiteAlias[];
|
|
150
152
|
export declare function extractBrandWebsiteAliasDomains(brandJsonOrBrand: BrandJsonRecord, options?: ExtractBrandWebsiteAliasesOptions): string[];
|
|
151
|
-
export {};
|
package/dist/lib/brand/index.js
CHANGED
|
@@ -18,16 +18,20 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var brand_exports = {};
|
|
20
20
|
__export(brand_exports, {
|
|
21
|
+
BrandDomainValidationError: () => import_domain.BrandDomainValidationError,
|
|
21
22
|
COMMON_LOGO_SLOTS: () => COMMON_LOGO_SLOTS,
|
|
22
23
|
applyBrandAssetMappings: () => applyBrandAssetMappings,
|
|
23
24
|
checkLogoSlotCoverage: () => checkLogoSlotCoverage,
|
|
24
25
|
extractBrandWebsiteAliasDomains: () => extractBrandWebsiteAliasDomains,
|
|
25
26
|
extractBrandWebsiteAliases: () => extractBrandWebsiteAliases,
|
|
27
|
+
isDevelopmentBrandDomain: () => import_domain.isDevelopmentBrandDomain,
|
|
26
28
|
selectLogoForSlot: () => selectLogoForSlot,
|
|
27
29
|
updateBrandJsonFromMappings: () => updateBrandJsonFromMappings,
|
|
28
|
-
validateBrandAssetMappings: () => validateBrandAssetMappings
|
|
30
|
+
validateBrandAssetMappings: () => validateBrandAssetMappings,
|
|
31
|
+
validateBrandDomain: () => import_domain.validateBrandDomain
|
|
29
32
|
});
|
|
30
33
|
module.exports = __toCommonJS(brand_exports);
|
|
34
|
+
var import_domain = require('./domain.js');
|
|
31
35
|
const COMMON_LOGO_SLOTS = [
|
|
32
36
|
"logo_card_light",
|
|
33
37
|
"logo_card_dark",
|
|
@@ -464,12 +468,15 @@ function readLocalizedName(value) {
|
|
|
464
468
|
}
|
|
465
469
|
// Annotate the CommonJS export names for ESM import in node:
|
|
466
470
|
0 && (module.exports = {
|
|
471
|
+
BrandDomainValidationError,
|
|
467
472
|
COMMON_LOGO_SLOTS,
|
|
468
473
|
applyBrandAssetMappings,
|
|
469
474
|
checkLogoSlotCoverage,
|
|
470
475
|
extractBrandWebsiteAliasDomains,
|
|
471
476
|
extractBrandWebsiteAliases,
|
|
477
|
+
isDevelopmentBrandDomain,
|
|
472
478
|
selectLogoForSlot,
|
|
473
479
|
updateBrandJsonFromMappings,
|
|
474
|
-
validateBrandAssetMappings
|
|
480
|
+
validateBrandAssetMappings,
|
|
481
|
+
validateBrandDomain
|
|
475
482
|
});
|
package/dist/lib/brand/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BrandDomainValidationError, isDevelopmentBrandDomain, validateBrandDomain } from "./domain.mjs";
|
|
1
2
|
const COMMON_LOGO_SLOTS = [
|
|
2
3
|
"logo_card_light",
|
|
3
4
|
"logo_card_dark",
|
|
@@ -433,12 +434,15 @@ function readLocalizedName(value) {
|
|
|
433
434
|
return void 0;
|
|
434
435
|
}
|
|
435
436
|
export {
|
|
437
|
+
BrandDomainValidationError,
|
|
436
438
|
COMMON_LOGO_SLOTS,
|
|
437
439
|
applyBrandAssetMappings,
|
|
438
440
|
checkLogoSlotCoverage,
|
|
439
441
|
extractBrandWebsiteAliasDomains,
|
|
440
442
|
extractBrandWebsiteAliases,
|
|
443
|
+
isDevelopmentBrandDomain,
|
|
441
444
|
selectLogoForSlot,
|
|
442
445
|
updateBrandJsonFromMappings,
|
|
443
|
-
validateBrandAssetMappings
|
|
446
|
+
validateBrandAssetMappings,
|
|
447
|
+
validateBrandDomain
|
|
444
448
|
};
|
|
@@ -345,6 +345,20 @@ export interface AdcpErrorInfo {
|
|
|
345
345
|
* the field, `'enum'` → pick a valid value, `'type'` → fix the value type.
|
|
346
346
|
*/
|
|
347
347
|
issues?: AdcpValidationIssue[];
|
|
348
|
+
/**
|
|
349
|
+
* Buyer-actionable classification of the failure. Present when the enclosing
|
|
350
|
+
* `code`/`message` is too coarse or carries producer-internal context that
|
|
351
|
+
* must not cross the buyer trust boundary. `code` reuses the standard error
|
|
352
|
+
* vocabulary; `message` is buyer-safe by spec — no vendor identifiers,
|
|
353
|
+
* ad-server type names, internal object names, internal IDs, or stack traces
|
|
354
|
+
* — so it may be rendered directly to a buyer UI. When present, the
|
|
355
|
+
* enclosing `recovery` classifies the buyer-actionable reason. See
|
|
356
|
+
* `core/error.json`'s `buyer_reason` field for the normative contract.
|
|
357
|
+
*/
|
|
358
|
+
buyer_reason?: {
|
|
359
|
+
code: string;
|
|
360
|
+
message: string;
|
|
361
|
+
};
|
|
348
362
|
/** True when the SDK inferred this error from unstructured text (L1 compliance) */
|
|
349
363
|
synthetic?: boolean;
|
|
350
364
|
}
|
|
@@ -345,6 +345,20 @@ export interface AdcpErrorInfo {
|
|
|
345
345
|
* the field, `'enum'` → pick a valid value, `'type'` → fix the value type.
|
|
346
346
|
*/
|
|
347
347
|
issues?: AdcpValidationIssue[];
|
|
348
|
+
/**
|
|
349
|
+
* Buyer-actionable classification of the failure. Present when the enclosing
|
|
350
|
+
* `code`/`message` is too coarse or carries producer-internal context that
|
|
351
|
+
* must not cross the buyer trust boundary. `code` reuses the standard error
|
|
352
|
+
* vocabulary; `message` is buyer-safe by spec — no vendor identifiers,
|
|
353
|
+
* ad-server type names, internal object names, internal IDs, or stack traces
|
|
354
|
+
* — so it may be rendered directly to a buyer UI. When present, the
|
|
355
|
+
* enclosing `recovery` classifies the buyer-actionable reason. See
|
|
356
|
+
* `core/error.json`'s `buyer_reason` field for the normative contract.
|
|
357
|
+
*/
|
|
358
|
+
buyer_reason?: {
|
|
359
|
+
code: string;
|
|
360
|
+
message: string;
|
|
361
|
+
};
|
|
348
362
|
/** True when the SDK inferred this error from unstructured text (L1 compliance) */
|
|
349
363
|
synthetic?: boolean;
|
|
350
364
|
}
|
package/dist/lib/index.d.mts
CHANGED
|
@@ -2,8 +2,8 @@ export { RegistryClient, RegistryRequestError, isRegistryRequestError, RegistryS
|
|
|
2
2
|
export type { RegistrySyncConfig, RegistrySyncState, RegistrySyncTransport, RegistrySyncEvents, AgentFilter, RegistrySyncProperty, CursorStore, PropertyRegistryConfig, FeedStreamQuery, FeedStreamMessage, FeedHeartbeat, FeedStreamErrorData, OpenFeedStreamOptions, FeedFreshness, } from './registry/index.mjs';
|
|
3
3
|
export { openFeedStream, parseSseStream, sanitizeStreamText, DEFAULT_MAX_SSE_FRAME_BYTES, FeedStreamError, FeedStreamUnsupportedError, FeedStreamCursorExpiredError, FeedStreamHttpError, FeedStreamParseError, } from './registry/index.mjs';
|
|
4
4
|
export type { ResolvedBrand, LookupBrandOptions, ResolvedProperty as ResolvedRegistryProperty, PropertyInfo, RegistryClientConfig, SaveBrandRequest, SaveBrandResponse, BrandLogoReviewStatus, ApprovedBrandLogoAsset, PendingBrandLogoAsset, ReviewedBrandLogoAsset, BrandLogoAsset, ListBrandLogosOptions, ListBrandLogosResponse, SaveBrandLogoInput, SaveBrandLogoResponse, UploadBrandLogoInput, UploadBrandLogoResponse, SavePropertyIdentity, RegistryPropertyIdentity, SavePropertyRequest, SavePropertyResponse, ResolveIdentifiersRequest, ResolveIdentifiersResponse, FileCatalogDisputeRequest, FileCatalogDisputeResponse, GetCatalogDisputeResponse, BrandRegistryItem, PropertyRegistryItem, ValidationResult as RegistryValidationResult, FederatedAgentWithDetails, FederatedPublisher, DomainLookupResult, ListBrandsOptions, ListBrandsResponse, GetBrandJsonResponse, ListOptions, ListAgentsOptions, ListAgentsResponse, ListPublishersResponse, ValidateAdagentsRequest, ValidateAdagentsResponse, CreateAdagentsRequest, CreateAdagentsResponse, AdagentsAuthorizedAgent, AdagentsCatalogFormat, AdagentsPlacementDefinition, AdagentsPlacementFormatReference, AdagentsPlacementFormatOption, AdagentsPlacementTag, CreatedAdagentsJson, CommunityMirrorAdagentsConfig, CreateCommunityMirrorAdagentsConfig, CommunityMirrorAdagentsCatalog, PublishCommunityMirrorAdagentsResponse, CommunityMirrorAdagentsSummary, ListCommunityMirrorAdagentsResponse, GetCommunityMirrorAdagentsResponse, PublishCommunityMirrorAdagentsRequest, PublishCommunityMirrorAdagentsError, DeleteCommunityMirrorAdagentsResponse, PublisherPropertySelector, CompanySearchResult, FindCompanyResult, ManagerRevalidationRequest, ManagerRevalidationResponse, ListPoliciesQuery, ListPoliciesResponse, ResolvePolicyQuery, ResolvePolicyResponse, ResolvePoliciesBulkRequest, ResolvePoliciesBulkResponse, GetPolicyHistoryQuery, GetPolicyHistoryResponse, SavePolicyRequest, SavePolicyResponse, GetBrandHistoryQuery, GetBrandHistoryResponse, GetPropertyHistoryQuery, GetPropertyHistoryResponse, RegistryFeedEvent, AgentEventPayload, PropertyEventPayload, CollectionEventPayload, AuthorizationEventPayload, PublisherEventPayload, BrandEventPayload, CatalogBrowseResponse, CatalogBrowseEntry, CatalogSyncResponse, CatalogSyncEntry, AgentCompliance, AgentComplianceDetail, StoryboardStatus, OperatorLookupResult, PublisherLookupResult, ComplianceChangedPayload, GetAgentStoryboardStatusResponse, GetAgentStoryboardStatusBulkResponse, } from './registry/index.mjs';
|
|
5
|
-
export { COMMON_LOGO_SLOTS, applyBrandAssetMappings, checkLogoSlotCoverage, extractBrandWebsiteAliasDomains, extractBrandWebsiteAliases, selectLogoForSlot, updateBrandJsonFromMappings, validateBrandAssetMappings, } from './brand/index.mjs';
|
|
6
|
-
export type { AppliedBrandAssetMapping, ApplyBrandAssetMappingsOptions, ApplyBrandAssetMappingsResult, BrandAssetCandidate, BrandAssetCropBox, BrandAssetExtractionMethod, BrandAssetMapping, BrandAssetMappingIssue, BrandAssetMappingTarget, BrandAssetMappingValidationResult, BrandAssetReviewStatus, BrandWebsiteAlias, BrandWebsiteAliasRelationship, BrandWebsiteAliasSource, BrandJsonRecord, BrandLogoBackground, BrandLogoOrientation, BrandLogoProposal, BrandLogoVariant, ExtractBrandWebsiteAliasesOptions, LogoSelectionOptions, LogoSlotCoverage, LogoSlotCoverageOptions, ResolveBrandAssetUrl, SkippedBrandAssetMapping, UpdateBrandJsonFromMappingsOptions, UpdateBrandJsonFromMappingsResult, } from './brand/index.mjs';
|
|
5
|
+
export { COMMON_LOGO_SLOTS, BrandDomainValidationError, applyBrandAssetMappings, checkLogoSlotCoverage, extractBrandWebsiteAliasDomains, extractBrandWebsiteAliases, isDevelopmentBrandDomain, selectLogoForSlot, updateBrandJsonFromMappings, validateBrandAssetMappings, validateBrandDomain, } from './brand/index.mjs';
|
|
6
|
+
export type { AppliedBrandAssetMapping, ApplyBrandAssetMappingsOptions, ApplyBrandAssetMappingsResult, BrandAssetCandidate, BrandAssetCropBox, BrandAssetExtractionMethod, BrandAssetMapping, BrandAssetMappingIssue, BrandAssetMappingTarget, BrandAssetMappingValidationResult, BrandAssetReviewStatus, BrandWebsiteAlias, BrandWebsiteAliasRelationship, BrandWebsiteAliasSource, BrandJsonRecord, BrandDomainValidationCode, BrandLogoBackground, BrandLogoOrientation, BrandLogoProposal, BrandLogoVariant, ExtractBrandWebsiteAliasesOptions, LogoSelectionOptions, LogoSlotCoverage, LogoSlotCoverageOptions, ResolveBrandAssetUrl, SkippedBrandAssetMapping, UpdateBrandJsonFromMappingsOptions, UpdateBrandJsonFromMappingsResult, ValidateBrandDomainOptions, } from './brand/index.mjs';
|
|
7
7
|
export { PropertyIndex, getPropertyIndex, resetPropertyIndex, type PropertyMatch, type AgentAuthorization, } from './discovery/property-index.mjs';
|
|
8
8
|
export { PropertyCrawler, type AgentInfo, type CrawlResult, type PropertyCrawlerConfig, } from './discovery/property-crawler.mjs';
|
|
9
9
|
export { NetworkConsistencyChecker, type NetworkConsistencyCheckerConfig, type NetworkCheckReport, type CheckSummary, type CheckProgress, type OrphanedPointer, type StalePointer, type MissingPointer, type SchemaError, type AgentHealthResult, type DomainDetail, type DomainStatus, } from './discovery/network-consistency-checker.mjs';
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ export { RegistryClient, RegistryRequestError, isRegistryRequestError, RegistryS
|
|
|
2
2
|
export type { RegistrySyncConfig, RegistrySyncState, RegistrySyncTransport, RegistrySyncEvents, AgentFilter, RegistrySyncProperty, CursorStore, PropertyRegistryConfig, FeedStreamQuery, FeedStreamMessage, FeedHeartbeat, FeedStreamErrorData, OpenFeedStreamOptions, FeedFreshness, } from './registry';
|
|
3
3
|
export { openFeedStream, parseSseStream, sanitizeStreamText, DEFAULT_MAX_SSE_FRAME_BYTES, FeedStreamError, FeedStreamUnsupportedError, FeedStreamCursorExpiredError, FeedStreamHttpError, FeedStreamParseError, } from './registry';
|
|
4
4
|
export type { ResolvedBrand, LookupBrandOptions, ResolvedProperty as ResolvedRegistryProperty, PropertyInfo, RegistryClientConfig, SaveBrandRequest, SaveBrandResponse, BrandLogoReviewStatus, ApprovedBrandLogoAsset, PendingBrandLogoAsset, ReviewedBrandLogoAsset, BrandLogoAsset, ListBrandLogosOptions, ListBrandLogosResponse, SaveBrandLogoInput, SaveBrandLogoResponse, UploadBrandLogoInput, UploadBrandLogoResponse, SavePropertyIdentity, RegistryPropertyIdentity, SavePropertyRequest, SavePropertyResponse, ResolveIdentifiersRequest, ResolveIdentifiersResponse, FileCatalogDisputeRequest, FileCatalogDisputeResponse, GetCatalogDisputeResponse, BrandRegistryItem, PropertyRegistryItem, ValidationResult as RegistryValidationResult, FederatedAgentWithDetails, FederatedPublisher, DomainLookupResult, ListBrandsOptions, ListBrandsResponse, GetBrandJsonResponse, ListOptions, ListAgentsOptions, ListAgentsResponse, ListPublishersResponse, ValidateAdagentsRequest, ValidateAdagentsResponse, CreateAdagentsRequest, CreateAdagentsResponse, AdagentsAuthorizedAgent, AdagentsCatalogFormat, AdagentsPlacementDefinition, AdagentsPlacementFormatReference, AdagentsPlacementFormatOption, AdagentsPlacementTag, CreatedAdagentsJson, CommunityMirrorAdagentsConfig, CreateCommunityMirrorAdagentsConfig, CommunityMirrorAdagentsCatalog, PublishCommunityMirrorAdagentsResponse, CommunityMirrorAdagentsSummary, ListCommunityMirrorAdagentsResponse, GetCommunityMirrorAdagentsResponse, PublishCommunityMirrorAdagentsRequest, PublishCommunityMirrorAdagentsError, DeleteCommunityMirrorAdagentsResponse, PublisherPropertySelector, CompanySearchResult, FindCompanyResult, ManagerRevalidationRequest, ManagerRevalidationResponse, ListPoliciesQuery, ListPoliciesResponse, ResolvePolicyQuery, ResolvePolicyResponse, ResolvePoliciesBulkRequest, ResolvePoliciesBulkResponse, GetPolicyHistoryQuery, GetPolicyHistoryResponse, SavePolicyRequest, SavePolicyResponse, GetBrandHistoryQuery, GetBrandHistoryResponse, GetPropertyHistoryQuery, GetPropertyHistoryResponse, RegistryFeedEvent, AgentEventPayload, PropertyEventPayload, CollectionEventPayload, AuthorizationEventPayload, PublisherEventPayload, BrandEventPayload, CatalogBrowseResponse, CatalogBrowseEntry, CatalogSyncResponse, CatalogSyncEntry, AgentCompliance, AgentComplianceDetail, StoryboardStatus, OperatorLookupResult, PublisherLookupResult, ComplianceChangedPayload, GetAgentStoryboardStatusResponse, GetAgentStoryboardStatusBulkResponse, } from './registry';
|
|
5
|
-
export { COMMON_LOGO_SLOTS, applyBrandAssetMappings, checkLogoSlotCoverage, extractBrandWebsiteAliasDomains, extractBrandWebsiteAliases, selectLogoForSlot, updateBrandJsonFromMappings, validateBrandAssetMappings, } from './brand';
|
|
6
|
-
export type { AppliedBrandAssetMapping, ApplyBrandAssetMappingsOptions, ApplyBrandAssetMappingsResult, BrandAssetCandidate, BrandAssetCropBox, BrandAssetExtractionMethod, BrandAssetMapping, BrandAssetMappingIssue, BrandAssetMappingTarget, BrandAssetMappingValidationResult, BrandAssetReviewStatus, BrandWebsiteAlias, BrandWebsiteAliasRelationship, BrandWebsiteAliasSource, BrandJsonRecord, BrandLogoBackground, BrandLogoOrientation, BrandLogoProposal, BrandLogoVariant, ExtractBrandWebsiteAliasesOptions, LogoSelectionOptions, LogoSlotCoverage, LogoSlotCoverageOptions, ResolveBrandAssetUrl, SkippedBrandAssetMapping, UpdateBrandJsonFromMappingsOptions, UpdateBrandJsonFromMappingsResult, } from './brand';
|
|
5
|
+
export { COMMON_LOGO_SLOTS, BrandDomainValidationError, applyBrandAssetMappings, checkLogoSlotCoverage, extractBrandWebsiteAliasDomains, extractBrandWebsiteAliases, isDevelopmentBrandDomain, selectLogoForSlot, updateBrandJsonFromMappings, validateBrandAssetMappings, validateBrandDomain, } from './brand';
|
|
6
|
+
export type { AppliedBrandAssetMapping, ApplyBrandAssetMappingsOptions, ApplyBrandAssetMappingsResult, BrandAssetCandidate, BrandAssetCropBox, BrandAssetExtractionMethod, BrandAssetMapping, BrandAssetMappingIssue, BrandAssetMappingTarget, BrandAssetMappingValidationResult, BrandAssetReviewStatus, BrandWebsiteAlias, BrandWebsiteAliasRelationship, BrandWebsiteAliasSource, BrandJsonRecord, BrandDomainValidationCode, BrandLogoBackground, BrandLogoOrientation, BrandLogoProposal, BrandLogoVariant, ExtractBrandWebsiteAliasesOptions, LogoSelectionOptions, LogoSlotCoverage, LogoSlotCoverageOptions, ResolveBrandAssetUrl, SkippedBrandAssetMapping, UpdateBrandJsonFromMappingsOptions, UpdateBrandJsonFromMappingsResult, ValidateBrandDomainOptions, } from './brand';
|
|
7
7
|
export { PropertyIndex, getPropertyIndex, resetPropertyIndex, type PropertyMatch, type AgentAuthorization, } from './discovery/property-index';
|
|
8
8
|
export { PropertyCrawler, type AgentInfo, type CrawlResult, type PropertyCrawlerConfig, } from './discovery/property-crawler';
|
|
9
9
|
export { NetworkConsistencyChecker, type NetworkConsistencyCheckerConfig, type NetworkCheckReport, type CheckSummary, type CheckProgress, type OrphanedPointer, type StalePointer, type MissingPointer, type SchemaError, type AgentHealthResult, type DomainDetail, type DomainStatus, } from './discovery/network-consistency-checker';
|
package/dist/lib/index.js
CHANGED
|
@@ -46,6 +46,7 @@ __export(index_exports, {
|
|
|
46
46
|
AuthenticationCredentialsRejectedError: () => import_errors.AuthenticationCredentialsRejectedError,
|
|
47
47
|
AuthenticationRequiredError: () => import_errors.AuthenticationRequiredError,
|
|
48
48
|
BRAND_RIGHTS_TOOLS: () => import_capabilities.BRAND_RIGHTS_TOOLS,
|
|
49
|
+
BrandDomainValidationError: () => import_brand.BrandDomainValidationError,
|
|
49
50
|
BrandJsonSchema: () => import_wellknown_schemas.BrandJsonSchema,
|
|
50
51
|
BuyerRetryPolicy: () => import_buyer_retry_policy.BuyerRetryPolicy,
|
|
51
52
|
CATALOG_MACRO_VECTORS: () => import_substitution.CATALOG_MACRO_VECTORS,
|
|
@@ -438,6 +439,7 @@ __export(index_exports, {
|
|
|
438
439
|
isCreateMediaBuyInputRequired: () => import_typeGuards.isCreateMediaBuyInputRequired,
|
|
439
440
|
isCreateMediaBuySubmitted: () => import_typeGuards.isCreateMediaBuySubmitted,
|
|
440
441
|
isCreateMediaBuyWorking: () => import_typeGuards.isCreateMediaBuyWorking,
|
|
442
|
+
isDevelopmentBrandDomain: () => import_brand.isDevelopmentBrandDomain,
|
|
441
443
|
isEnvSecretReference: () => import_oauth4.isEnvSecretReference,
|
|
442
444
|
isErrorOfType: () => import_errors.isErrorOfType,
|
|
443
445
|
isGetProductsCompleted: () => import_typeGuards.isGetProductsCompleted,
|
|
@@ -666,6 +668,7 @@ __export(index_exports, {
|
|
|
666
668
|
validateAdcpVersionWire: () => import_schema_loader.validateAdcpVersionWire,
|
|
667
669
|
validateAgentUrl: () => import_validation.validateAgentUrl,
|
|
668
670
|
validateBrandAssetMappings: () => import_brand.validateBrandAssetMappings,
|
|
671
|
+
validateBrandDomain: () => import_brand.validateBrandDomain,
|
|
669
672
|
validateGetProductsCacheScope: () => import_get_products_cache_scope.validateGetProductsCacheScope,
|
|
670
673
|
validateGovernancePlan: () => import_governance.validateGovernancePlan,
|
|
671
674
|
validateProductsAgainstPropertyPolicy: () => import_media_buy.validateProductsAgainstPropertyPolicy,
|
|
@@ -837,6 +840,7 @@ function createAdCPClientFromEnv() {
|
|
|
837
840
|
AuthenticationCredentialsRejectedError,
|
|
838
841
|
AuthenticationRequiredError,
|
|
839
842
|
BRAND_RIGHTS_TOOLS,
|
|
843
|
+
BrandDomainValidationError,
|
|
840
844
|
BrandJsonSchema,
|
|
841
845
|
BuyerRetryPolicy,
|
|
842
846
|
CATALOG_MACRO_VECTORS,
|
|
@@ -1229,6 +1233,7 @@ function createAdCPClientFromEnv() {
|
|
|
1229
1233
|
isCreateMediaBuyInputRequired,
|
|
1230
1234
|
isCreateMediaBuySubmitted,
|
|
1231
1235
|
isCreateMediaBuyWorking,
|
|
1236
|
+
isDevelopmentBrandDomain,
|
|
1232
1237
|
isEnvSecretReference,
|
|
1233
1238
|
isErrorOfType,
|
|
1234
1239
|
isGetProductsCompleted,
|
|
@@ -1457,6 +1462,7 @@ function createAdCPClientFromEnv() {
|
|
|
1457
1462
|
validateAdcpVersionWire,
|
|
1458
1463
|
validateAgentUrl,
|
|
1459
1464
|
validateBrandAssetMappings,
|
|
1465
|
+
validateBrandDomain,
|
|
1460
1466
|
validateGetProductsCacheScope,
|
|
1461
1467
|
validateGovernancePlan,
|
|
1462
1468
|
validateProductsAgainstPropertyPolicy,
|
package/dist/lib/index.mjs
CHANGED
|
@@ -21,13 +21,16 @@ import {
|
|
|
21
21
|
} from "./registry/index.mjs";
|
|
22
22
|
import {
|
|
23
23
|
COMMON_LOGO_SLOTS,
|
|
24
|
+
BrandDomainValidationError,
|
|
24
25
|
applyBrandAssetMappings,
|
|
25
26
|
checkLogoSlotCoverage,
|
|
26
27
|
extractBrandWebsiteAliasDomains,
|
|
27
28
|
extractBrandWebsiteAliases,
|
|
29
|
+
isDevelopmentBrandDomain,
|
|
28
30
|
selectLogoForSlot,
|
|
29
31
|
updateBrandJsonFromMappings,
|
|
30
|
-
validateBrandAssetMappings
|
|
32
|
+
validateBrandAssetMappings,
|
|
33
|
+
validateBrandDomain
|
|
31
34
|
} from "./brand/index.mjs";
|
|
32
35
|
import {
|
|
33
36
|
PropertyIndex,
|
|
@@ -793,6 +796,7 @@ export {
|
|
|
793
796
|
AuthenticationCredentialsRejectedError,
|
|
794
797
|
AuthenticationRequiredError,
|
|
795
798
|
BRAND_RIGHTS_TOOLS,
|
|
799
|
+
BrandDomainValidationError,
|
|
796
800
|
BrandJsonSchema,
|
|
797
801
|
BuyerRetryPolicy,
|
|
798
802
|
CATALOG_MACRO_VECTORS,
|
|
@@ -1185,6 +1189,7 @@ export {
|
|
|
1185
1189
|
isCreateMediaBuyInputRequired,
|
|
1186
1190
|
isCreateMediaBuySubmitted,
|
|
1187
1191
|
isCreateMediaBuyWorking,
|
|
1192
|
+
isDevelopmentBrandDomain,
|
|
1188
1193
|
isEnvSecretReference,
|
|
1189
1194
|
isErrorOfType,
|
|
1190
1195
|
isGetProductsCompleted,
|
|
@@ -1413,6 +1418,7 @@ export {
|
|
|
1413
1418
|
validateAdcpVersionWire,
|
|
1414
1419
|
validateAgentUrl,
|
|
1415
1420
|
validateBrandAssetMappings,
|
|
1421
|
+
validateBrandDomain,
|
|
1416
1422
|
validateGetProductsCacheScope,
|
|
1417
1423
|
validateGovernancePlan,
|
|
1418
1424
|
validateProductsAgainstPropertyPolicy,
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
"source_sha": "4e553ad955f83b49c7d221ab5c3ff78237ad02e3",
|
|
5
5
|
"source_tarball_sha256": "580656d6466ef9f0d1119985e6726c2efea718dc671e2ad30957fcb2fd54af0f",
|
|
6
6
|
"upstream_adcp_version": "2.5.3",
|
|
7
|
-
"synced_at": "2026-09-
|
|
7
|
+
"synced_at": "2026-09-08T23:08:47.294Z"
|
|
8
8
|
}
|
|
@@ -25,6 +25,7 @@ __export(create_adcp_server_exports, {
|
|
|
25
25
|
ADCP_SIGNED_REQUESTS_STATE: () => ADCP_SIGNED_REQUESTS_STATE,
|
|
26
26
|
COMPACT_MEDIA_BUY_MUTATION_TOOLS: () => COMPACT_MEDIA_BUY_MUTATION_TOOLS,
|
|
27
27
|
MEDIA_BUY_MCP_TOOL_PROFILE: () => MEDIA_BUY_MCP_TOOL_PROFILE,
|
|
28
|
+
__unstable__projectThrownAdcpError: () => __unstable__projectThrownAdcpError,
|
|
28
29
|
createAdcpServer: () => createAdcpServer,
|
|
29
30
|
requireSessionKey: () => requireSessionKey
|
|
30
31
|
});
|
|
@@ -261,6 +262,9 @@ function hasUncacheableSyncAccountRejection(response) {
|
|
|
261
262
|
function shouldCacheIdempotencyResponse(response) {
|
|
262
263
|
return !isErrorResponse(response) && !hasUncacheableSyncAccountRejection(response);
|
|
263
264
|
}
|
|
265
|
+
function __unstable__projectThrownAdcpError(err) {
|
|
266
|
+
return projectThrownAdcpError(err);
|
|
267
|
+
}
|
|
264
268
|
function projectThrownAdcpError(err) {
|
|
265
269
|
return (0, import_errors2.adcpError)(err.code, {
|
|
266
270
|
recovery: err.recovery,
|
|
@@ -268,7 +272,8 @@ function projectThrownAdcpError(err) {
|
|
|
268
272
|
...err.field !== void 0 && { field: err.field },
|
|
269
273
|
...err.suggestion !== void 0 && { suggestion: err.suggestion },
|
|
270
274
|
...err.retry_after !== void 0 && { retry_after: err.retry_after },
|
|
271
|
-
...err.details !== void 0 && { details: err.details }
|
|
275
|
+
...err.details !== void 0 && { details: err.details },
|
|
276
|
+
...err.buyer_reason !== void 0 && { buyer_reason: err.buyer_reason }
|
|
272
277
|
});
|
|
273
278
|
}
|
|
274
279
|
function isThrownAdcpError(value) {
|
|
@@ -1057,7 +1062,7 @@ function sanitizePayloadError(value) {
|
|
|
1057
1062
|
message: typeof safe.message === "string" ? safe.message : "operation failed",
|
|
1058
1063
|
recovery: import_error_codes.STANDARD_ERROR_CODES[code].recovery
|
|
1059
1064
|
};
|
|
1060
|
-
for (const key of ["field", "suggestion", "retry_after", "issues"]) {
|
|
1065
|
+
for (const key of ["field", "suggestion", "retry_after", "issues", "buyer_reason"]) {
|
|
1061
1066
|
if (safe[key] !== void 0) projected[key] = safe[key];
|
|
1062
1067
|
}
|
|
1063
1068
|
if (safe.details !== void 0) {
|
|
@@ -1120,7 +1125,8 @@ const PAYLOAD_ERROR_FIELDS = /* @__PURE__ */ new Set([
|
|
|
1120
1125
|
"suggestion",
|
|
1121
1126
|
"retry_after",
|
|
1122
1127
|
"issues",
|
|
1123
|
-
"details"
|
|
1128
|
+
"details",
|
|
1129
|
+
"buyer_reason"
|
|
1124
1130
|
]);
|
|
1125
1131
|
function projectEnvelopeToPayloadError(envelope) {
|
|
1126
1132
|
const out = {};
|
|
@@ -4456,6 +4462,7 @@ function createAdcpServer(config) {
|
|
|
4456
4462
|
ADCP_SIGNED_REQUESTS_STATE,
|
|
4457
4463
|
COMPACT_MEDIA_BUY_MUTATION_TOOLS,
|
|
4458
4464
|
MEDIA_BUY_MCP_TOOL_PROFILE,
|
|
4465
|
+
__unstable__projectThrownAdcpError,
|
|
4459
4466
|
createAdcpServer,
|
|
4460
4467
|
requireSessionKey
|
|
4461
4468
|
});
|
|
@@ -331,6 +331,9 @@ function hasUncacheableSyncAccountRejection(response) {
|
|
|
331
331
|
function shouldCacheIdempotencyResponse(response) {
|
|
332
332
|
return !isErrorResponse(response) && !hasUncacheableSyncAccountRejection(response);
|
|
333
333
|
}
|
|
334
|
+
function __unstable__projectThrownAdcpError(err) {
|
|
335
|
+
return projectThrownAdcpError(err);
|
|
336
|
+
}
|
|
334
337
|
function projectThrownAdcpError(err) {
|
|
335
338
|
return adcpError(err.code, {
|
|
336
339
|
recovery: err.recovery,
|
|
@@ -338,7 +341,8 @@ function projectThrownAdcpError(err) {
|
|
|
338
341
|
...err.field !== void 0 && { field: err.field },
|
|
339
342
|
...err.suggestion !== void 0 && { suggestion: err.suggestion },
|
|
340
343
|
...err.retry_after !== void 0 && { retry_after: err.retry_after },
|
|
341
|
-
...err.details !== void 0 && { details: err.details }
|
|
344
|
+
...err.details !== void 0 && { details: err.details },
|
|
345
|
+
...err.buyer_reason !== void 0 && { buyer_reason: err.buyer_reason }
|
|
342
346
|
});
|
|
343
347
|
}
|
|
344
348
|
function isThrownAdcpError(value) {
|
|
@@ -1127,7 +1131,7 @@ function sanitizePayloadError(value) {
|
|
|
1127
1131
|
message: typeof safe.message === "string" ? safe.message : "operation failed",
|
|
1128
1132
|
recovery: STANDARD_ERROR_CODES[code].recovery
|
|
1129
1133
|
};
|
|
1130
|
-
for (const key of ["field", "suggestion", "retry_after", "issues"]) {
|
|
1134
|
+
for (const key of ["field", "suggestion", "retry_after", "issues", "buyer_reason"]) {
|
|
1131
1135
|
if (safe[key] !== void 0) projected[key] = safe[key];
|
|
1132
1136
|
}
|
|
1133
1137
|
if (safe.details !== void 0) {
|
|
@@ -1190,7 +1194,8 @@ const PAYLOAD_ERROR_FIELDS = /* @__PURE__ */ new Set([
|
|
|
1190
1194
|
"suggestion",
|
|
1191
1195
|
"retry_after",
|
|
1192
1196
|
"issues",
|
|
1193
|
-
"details"
|
|
1197
|
+
"details",
|
|
1198
|
+
"buyer_reason"
|
|
1194
1199
|
]);
|
|
1195
1200
|
function projectEnvelopeToPayloadError(envelope) {
|
|
1196
1201
|
const out = {};
|
|
@@ -4525,6 +4530,7 @@ export {
|
|
|
4525
4530
|
ADCP_SIGNED_REQUESTS_STATE,
|
|
4526
4531
|
COMPACT_MEDIA_BUY_MUTATION_TOOLS,
|
|
4527
4532
|
MEDIA_BUY_MCP_TOOL_PROFILE,
|
|
4533
|
+
__unstable__projectThrownAdcpError,
|
|
4528
4534
|
createAdcpServer,
|
|
4529
4535
|
requireSessionKey
|
|
4530
4536
|
};
|