@adcp/sdk 15.9.0 → 16.0.0-beta.1
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/bin/adcp-identity.js +74 -0
- package/bin/adcp.js +2 -0
- package/dist/lib/adapters/keyed-account-backend.d.mts +37 -0
- package/dist/lib/adapters/keyed-account-backend.d.ts +37 -0
- package/dist/lib/adapters/keyed-account-backend.js +121 -0
- package/dist/lib/adapters/keyed-account-backend.mjs +94 -0
- package/dist/lib/adapters/keyed-account-store.d.mts +28 -0
- package/dist/lib/adapters/keyed-account-store.d.ts +28 -0
- package/dist/lib/adapters/keyed-account-store.js +227 -0
- package/dist/lib/adapters/keyed-account-store.mjs +203 -0
- package/dist/lib/core/SingleAgentClient.d.mts +16 -2
- package/dist/lib/core/SingleAgentClient.d.ts +16 -2
- package/dist/lib/core/SingleAgentClient.js +259 -62
- package/dist/lib/core/SingleAgentClient.mjs +261 -57
- package/dist/lib/core/TaskExecutor.d.mts +6 -0
- package/dist/lib/core/TaskExecutor.d.ts +6 -0
- package/dist/lib/core/TaskExecutor.js +66 -5
- package/dist/lib/core/TaskExecutor.mjs +71 -5
- package/dist/lib/core/postgres-webhook-registration-store.js +32 -5
- package/dist/lib/core/postgres-webhook-registration-store.mjs +32 -5
- package/dist/lib/core/redis-webhook-registration-store.js +23 -1
- package/dist/lib/core/redis-webhook-registration-store.mjs +23 -1
- package/dist/lib/core/webhook-registration.d.mts +7 -1
- package/dist/lib/core/webhook-registration.d.ts +7 -1
- package/dist/lib/core/webhook-registration.js +24 -2
- package/dist/lib/core/webhook-registration.mjs +23 -2
- package/dist/lib/identity-3.3/index.d.mts +10 -0
- package/dist/lib/identity-3.3/index.d.ts +10 -0
- package/dist/lib/identity-3.3/index.js +75 -0
- package/dist/lib/identity-3.3/index.mjs +46 -0
- package/dist/lib/identity-3.3/lifecycle.d.mts +113 -0
- package/dist/lib/identity-3.3/lifecycle.d.ts +113 -0
- package/dist/lib/identity-3.3/lifecycle.js +267 -0
- package/dist/lib/identity-3.3/lifecycle.mjs +240 -0
- package/dist/lib/identity-3.3/revocation.d.mts +50 -0
- package/dist/lib/identity-3.3/revocation.d.ts +50 -0
- package/dist/lib/identity-3.3/revocation.js +238 -0
- package/dist/lib/identity-3.3/revocation.mjs +216 -0
- package/dist/lib/identity-3.3/schemas.draft.d.mts +2472 -0
- package/dist/lib/identity-3.3/schemas.draft.d.ts +2472 -0
- package/dist/lib/identity-3.3/schemas.draft.js +1448 -0
- package/dist/lib/identity-3.3/schemas.draft.mjs +1428 -0
- package/dist/lib/identity-3.3/server.d.mts +34 -0
- package/dist/lib/identity-3.3/server.d.ts +34 -0
- package/dist/lib/identity-3.3/server.js +219 -0
- package/dist/lib/identity-3.3/server.mjs +194 -0
- package/dist/lib/identity-3.3/store.d.mts +24 -0
- package/dist/lib/identity-3.3/store.d.ts +24 -0
- package/dist/lib/identity-3.3/store.js +191 -0
- package/dist/lib/identity-3.3/store.mjs +169 -0
- package/dist/lib/identity-3.3/trust.d.mts +94 -0
- package/dist/lib/identity-3.3/trust.d.ts +94 -0
- package/dist/lib/identity-3.3/trust.js +278 -0
- package/dist/lib/identity-3.3/trust.mjs +239 -0
- package/dist/lib/identity-3.3/types.d.mts +127 -0
- package/dist/lib/identity-3.3/types.d.ts +127 -0
- package/dist/lib/identity-3.3/types.js +16 -0
- package/dist/lib/identity-3.3/types.mjs +0 -0
- package/dist/lib/identity-3.3/validation.d.mts +2 -0
- package/dist/lib/identity-3.3/validation.d.ts +2 -0
- package/dist/lib/identity-3.3/validation.js +125 -0
- package/dist/lib/identity-3.3/validation.mjs +91 -0
- package/dist/lib/index.d.mts +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/reporting/azure/index.d.mts +5 -0
- package/dist/lib/reporting/azure/index.d.ts +5 -0
- package/dist/lib/reporting/azure/index.js +26 -7
- package/dist/lib/reporting/azure/index.mjs +26 -7
- package/dist/lib/reporting/bigquery/index.d.mts +80 -25
- package/dist/lib/reporting/bigquery/index.d.ts +80 -25
- package/dist/lib/reporting/bigquery/index.js +184 -81
- package/dist/lib/reporting/bigquery/index.mjs +182 -80
- package/dist/lib/reporting/gcs/adapter.d.mts +8 -1
- package/dist/lib/reporting/gcs/adapter.d.ts +8 -1
- package/dist/lib/reporting/gcs/errors.d.mts +6 -0
- package/dist/lib/reporting/gcs/errors.d.ts +6 -0
- package/dist/lib/reporting/gcs/fence.d.mts +5 -0
- package/dist/lib/reporting/gcs/fence.d.ts +5 -0
- package/dist/lib/reporting/gcs/index.d.mts +9 -0
- package/dist/lib/reporting/gcs/index.d.ts +9 -0
- package/dist/lib/reporting/gcs/reader.d.mts +27 -3
- package/dist/lib/reporting/gcs/reader.d.ts +27 -3
- package/dist/lib/reporting/gcs/row-provider.d.mts +7 -0
- package/dist/lib/reporting/gcs/row-provider.d.ts +7 -0
- package/dist/lib/reporting/gcs/row-provider.js +34 -14
- package/dist/lib/reporting/gcs/row-provider.mjs +34 -14
- package/dist/lib/reporting/ledger/change-feed.d.mts +22 -1
- package/dist/lib/reporting/ledger/change-feed.d.ts +22 -1
- package/dist/lib/reporting/ledger/index.d.mts +11 -0
- package/dist/lib/reporting/ledger/index.d.ts +11 -0
- package/dist/lib/reporting/ledger/managed-postgres.d.mts +8 -0
- package/dist/lib/reporting/ledger/managed-postgres.d.ts +8 -0
- package/dist/lib/reporting/ledger/managed-router.d.mts +27 -2
- package/dist/lib/reporting/ledger/managed-router.d.ts +27 -2
- package/dist/lib/reporting/ledger/managed.d.mts +86 -6
- package/dist/lib/reporting/ledger/managed.d.ts +86 -6
- package/dist/lib/reporting/ledger/notification-activity.d.mts +65 -3
- package/dist/lib/reporting/ledger/notification-activity.d.ts +65 -3
- package/dist/lib/reporting/ledger/object-writes.d.mts +64 -5
- package/dist/lib/reporting/ledger/object-writes.d.ts +64 -5
- package/dist/lib/reporting/ledger/postgres.d.mts +43 -9
- package/dist/lib/reporting/ledger/postgres.d.ts +43 -9
- package/dist/lib/reporting/ledger/postgres.js +43 -27
- package/dist/lib/reporting/ledger/postgres.mjs +43 -27
- package/dist/lib/reporting/ledger/row-encoding.d.mts +92 -6
- package/dist/lib/reporting/ledger/row-encoding.d.ts +92 -6
- package/dist/lib/reporting/ledger/row-encoding.js +8 -4
- package/dist/lib/reporting/ledger/row-encoding.mjs +6 -3
- package/dist/lib/reporting/ledger/row-storage-errors.d.mts +11 -1
- package/dist/lib/reporting/ledger/row-storage-errors.d.ts +11 -1
- package/dist/lib/reporting/ledger/row-storage-migration.d.mts +19 -1
- package/dist/lib/reporting/ledger/row-storage-migration.d.ts +19 -1
- package/dist/lib/reporting/ledger/row-storage-migration.js +133 -18
- package/dist/lib/reporting/ledger/row-storage-migration.mjs +133 -18
- package/dist/lib/reporting/ledger/row-storage-object.d.mts +103 -12
- package/dist/lib/reporting/ledger/row-storage-object.d.ts +103 -12
- package/dist/lib/reporting/ledger/row-storage-object.js +106 -31
- package/dist/lib/reporting/ledger/row-storage-object.mjs +104 -31
- package/dist/lib/reporting/ledger/row-storage.d.mts +87 -20
- package/dist/lib/reporting/ledger/row-storage.d.ts +87 -20
- package/dist/lib/reporting/ledger/row-storage.js +126 -66
- package/dist/lib/reporting/ledger/row-storage.mjs +129 -67
- package/dist/lib/reporting/ledger/schedule.d.mts +13 -0
- package/dist/lib/reporting/ledger/schedule.d.ts +13 -0
- package/dist/lib/reporting/ledger/schedule.js +24 -0
- package/dist/lib/reporting/ledger/schedule.mjs +23 -0
- package/dist/lib/reporting/ledger/types.d.mts +23 -1
- package/dist/lib/reporting/ledger/types.d.ts +23 -1
- package/dist/lib/reporting/s3/index.d.mts +5 -0
- package/dist/lib/reporting/s3/index.d.ts +5 -0
- package/dist/lib/reporting/s3/index.js +37 -14
- package/dist/lib/reporting/s3/index.mjs +37 -14
- package/dist/lib/reporting/service/index.d.mts +10 -0
- package/dist/lib/reporting/service/index.d.ts +10 -0
- package/dist/lib/reporting/service/maintenance.d.mts +28 -2
- package/dist/lib/reporting/service/maintenance.d.ts +28 -2
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/account-sync-contract.d.mts +14 -0
- package/dist/lib/server/account-sync-contract.d.ts +14 -0
- package/dist/lib/server/account-sync-contract.js +225 -0
- package/dist/lib/server/account-sync-contract.mjs +197 -0
- package/dist/lib/server/adcp-server.js +5 -0
- package/dist/lib/server/adcp-server.mjs +10 -0
- package/dist/lib/server/auth-signature.d.mts +10 -0
- package/dist/lib/server/auth-signature.d.ts +10 -0
- package/dist/lib/server/auth-signature.js +61 -2
- package/dist/lib/server/auth-signature.mjs +65 -2
- package/dist/lib/server/auth.d.mts +6 -0
- package/dist/lib/server/auth.d.ts +6 -0
- package/dist/lib/server/auth.js +6 -0
- package/dist/lib/server/auth.mjs +6 -0
- package/dist/lib/server/create-adcp-server.d.mts +19 -5
- package/dist/lib/server/create-adcp-server.d.ts +19 -5
- package/dist/lib/server/create-adcp-server.js +238 -19
- package/dist/lib/server/create-adcp-server.mjs +240 -10
- package/dist/lib/server/decisioning/account.d.mts +24 -1
- package/dist/lib/server/decisioning/account.d.ts +24 -1
- package/dist/lib/server/decisioning/index.d.mts +1 -1
- package/dist/lib/server/decisioning/index.d.ts +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.d.mts +0 -50
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts +0 -50
- package/dist/lib/server/decisioning/runtime/from-platform.js +61 -11
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +65 -12
- package/dist/lib/server/index.d.mts +2 -0
- package/dist/lib/server/index.d.ts +2 -0
- package/dist/lib/server/index.js +12 -0
- package/dist/lib/server/index.mjs +12 -0
- package/dist/lib/server/notification-subscriptions/runtime.js +9 -1
- package/dist/lib/server/notification-subscriptions/runtime.mjs +9 -1
- package/dist/lib/server/notification-subscriptions/types.d.mts +5 -0
- package/dist/lib/server/notification-subscriptions/types.d.ts +5 -0
- package/dist/lib/server/principal/types.d.mts +1 -1
- package/dist/lib/server/principal/types.d.ts +1 -1
- package/dist/lib/server/serve.js +5 -0
- package/dist/lib/server/serve.mjs +5 -0
- package/dist/lib/server/webhook-delivery/recovery.d.mts +1 -0
- package/dist/lib/server/webhook-delivery/recovery.d.ts +1 -0
- package/dist/lib/server/webhook-delivery/recovery.js +4 -0
- package/dist/lib/server/webhook-delivery/recovery.mjs +4 -0
- package/dist/lib/server/webhook-emitter.d.mts +10 -0
- package/dist/lib/server/webhook-emitter.d.ts +10 -0
- package/dist/lib/server/webhook-emitter.js +22 -0
- package/dist/lib/server/webhook-emitter.mjs +22 -0
- package/dist/lib/signing/agent-context.d.mts +0 -5
- package/dist/lib/signing/agent-context.d.ts +0 -5
- package/dist/lib/signing/agent-context.js +9 -1
- package/dist/lib/signing/agent-context.mjs +9 -1
- package/dist/lib/signing/agent-fetch.js +27 -2
- package/dist/lib/signing/agent-fetch.mjs +32 -2
- package/dist/lib/signing/agent-resolver/canonicalize.d.mts +10 -15
- package/dist/lib/signing/agent-resolver/canonicalize.d.ts +10 -15
- package/dist/lib/signing/agent-resolver/canonicalize.js +17 -5
- package/dist/lib/signing/agent-resolver/canonicalize.mjs +16 -5
- package/dist/lib/signing/agent-resolver/index.d.mts +1 -0
- package/dist/lib/signing/agent-resolver/index.d.ts +1 -0
- package/dist/lib/signing/agent-resolver/index.js +5 -0
- package/dist/lib/signing/agent-resolver/index.mjs +3 -0
- package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.mts +3 -2
- package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.ts +3 -2
- package/dist/lib/signing/agent-resolver/resolved-agent-jwks.js +30 -3
- package/dist/lib/signing/agent-resolver/resolved-agent-jwks.mjs +30 -3
- package/dist/lib/signing/agent-resolver/strict-json.d.mts +2 -2
- package/dist/lib/signing/agent-resolver/strict-json.d.ts +2 -2
- package/dist/lib/signing/agent-resolver/strict-json.js +5 -3
- package/dist/lib/signing/agent-resolver/strict-json.mjs +5 -3
- package/dist/lib/signing/brand-jwks.d.mts +2 -2
- package/dist/lib/signing/brand-jwks.d.ts +2 -2
- package/dist/lib/signing/brand-jwks.js +4 -4
- package/dist/lib/signing/brand-jwks.mjs +4 -4
- package/dist/lib/signing/client.d.mts +1 -0
- package/dist/lib/signing/client.d.ts +1 -0
- package/dist/lib/signing/client.js +5 -0
- package/dist/lib/signing/client.mjs +3 -0
- package/dist/lib/signing/jwks-https.d.mts +1 -1
- package/dist/lib/signing/jwks-https.d.ts +1 -1
- package/dist/lib/signing/jwks-https.js +1 -1
- package/dist/lib/signing/jwks-https.mjs +1 -1
- package/dist/lib/signing/jwks.d.mts +11 -3
- package/dist/lib/signing/jwks.d.ts +11 -3
- package/dist/lib/signing/jwks.js +1 -1
- package/dist/lib/signing/jwks.mjs +1 -1
- package/dist/lib/signing/parser.d.mts +1 -1
- package/dist/lib/signing/parser.d.ts +1 -1
- package/dist/lib/signing/parser.js +5 -3
- package/dist/lib/signing/parser.mjs +6 -4
- package/dist/lib/signing/revocation.d.mts +4 -1
- package/dist/lib/signing/revocation.d.ts +4 -1
- package/dist/lib/signing/revocation.js +33 -3
- package/dist/lib/signing/revocation.mjs +31 -2
- package/dist/lib/signing/server.d.mts +1 -1
- package/dist/lib/signing/server.d.ts +1 -1
- package/dist/lib/signing/server.js +4 -0
- package/dist/lib/signing/server.mjs +4 -0
- package/dist/lib/signing/types.d.mts +3 -0
- package/dist/lib/signing/types.d.ts +3 -0
- package/dist/lib/signing/web-bot-auth.d.mts +117 -0
- package/dist/lib/signing/web-bot-auth.d.ts +117 -0
- package/dist/lib/signing/web-bot-auth.js +660 -0
- package/dist/lib/signing/web-bot-auth.mjs +624 -0
- package/dist/lib/testing/client.d.mts +1 -4
- package/dist/lib/testing/client.d.ts +1 -4
- package/dist/lib/testing/client.js +141 -20
- package/dist/lib/testing/client.mjs +137 -19
- package/dist/lib/testing/compliance/comply.js +29 -10
- package/dist/lib/testing/compliance/comply.mjs +37 -11
- package/dist/lib/testing/storyboard/account-sync-contract.d.mts +3 -0
- package/dist/lib/testing/storyboard/account-sync-contract.d.ts +3 -0
- package/dist/lib/testing/storyboard/account-sync-contract.js +79 -0
- package/dist/lib/testing/storyboard/account-sync-contract.mjs +55 -0
- package/dist/lib/testing/storyboard/default-invariants.js +2 -0
- package/dist/lib/testing/storyboard/default-invariants.mjs +2 -0
- package/dist/lib/testing/storyboard/runner.js +23 -8
- package/dist/lib/testing/storyboard/runner.mjs +24 -8
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/types/adcp.d.mts +4 -0
- package/dist/lib/types/adcp.d.ts +4 -0
- package/dist/lib/types/schemas.generated.d.ts +6 -6
- package/dist/lib/utils/capabilities.d.mts +1 -0
- package/dist/lib/utils/capabilities.d.ts +1 -0
- package/dist/lib/utils/capabilities.js +5 -0
- package/dist/lib/utils/capabilities.mjs +5 -0
- package/dist/lib/v2/projection/creative-delivery.d.mts +3 -1
- package/dist/lib/v2/projection/creative-delivery.d.ts +3 -1
- package/dist/lib/v2/projection/creative-delivery.js +26 -10
- package/dist/lib/v2/projection/creative-delivery.mjs +26 -10
- package/dist/lib/v2/projection/index.d.mts +1 -1
- package/dist/lib/v2/projection/index.d.ts +1 -1
- package/dist/lib/v2/projection/legacy-routes.d.mts +24 -2
- package/dist/lib/v2/projection/legacy-routes.d.ts +24 -2
- package/dist/lib/v2/projection/legacy-routes.js +28 -2
- package/dist/lib/v2/projection/legacy-routes.mjs +26 -2
- package/dist/lib/validation/schema-loader.d.mts +2 -0
- package/dist/lib/validation/schema-loader.d.ts +2 -0
- package/dist/lib/validation/schema-loader.js +43 -4
- package/dist/lib/validation/schema-loader.mjs +39 -3
- 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/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +4 -0
- package/docs/guides/REPORTING-LEDGER-CUTOVER.md +1 -1
- package/docs/guides/REPORTING-LEDGER.md +132 -46
- package/docs/guides/REPORTING-OPERATIONS.md +25 -4
- package/docs/guides/REPORTING-STABILITY.md +76 -0
- package/docs/guides/account-resolution.md +101 -0
- package/docs/llms.txt +3 -2
- package/docs/migration-12-to-13.md +7 -0
- package/docs/migration-14.x-rc-worksheet.md +4 -4
- package/docs/migration-agent-identity-3.3.md +355 -0
- package/docs/migration-agent-resolution-3.3.md +5 -0
- package/docs/migration-reporting-row-storage-alignment.md +137 -0
- package/examples/storyboards/account-sync-contract.yaml +57 -0
- package/package.json +15 -1
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/** Experimental drafts; the released SDK wire/schema pin remains 3.2.4. */
|
|
2
|
+
export type AgentOnboardingMode = 'open' | 'application' | 'invite_only';
|
|
3
|
+
export type BillingParty = 'operator' | 'agent' | 'advertiser';
|
|
4
|
+
export type AgentOnboardingRequirementKind = 'agent_identity' | 'grant' | 'billing_entity' | 'contract' | 'credit_application' | 'aao_verified' | 'storyboard' | 'sandbox' | 'experimental_feature';
|
|
5
|
+
export interface AgentOnboardingRequirement {
|
|
6
|
+
kind: AgentOnboardingRequirementKind | (string & {});
|
|
7
|
+
role?: string;
|
|
8
|
+
verification_modes?: string[];
|
|
9
|
+
specialisms?: string[];
|
|
10
|
+
adcp_version?: string;
|
|
11
|
+
id?: string;
|
|
12
|
+
ext?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export interface AgentOnboardingTier {
|
|
15
|
+
mode: AgentOnboardingMode;
|
|
16
|
+
url?: string;
|
|
17
|
+
requirements?: AgentOnboardingRequirement[];
|
|
18
|
+
ext?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export interface AgentOnboarding {
|
|
21
|
+
sandbox?: AgentOnboardingTier;
|
|
22
|
+
billing?: Partial<Record<BillingParty, AgentOnboardingTier>>;
|
|
23
|
+
url?: string;
|
|
24
|
+
documentation_url?: string;
|
|
25
|
+
message?: string;
|
|
26
|
+
ext?: Record<string, unknown>;
|
|
27
|
+
}
|
|
28
|
+
export interface BuyerOnboardingPosture {
|
|
29
|
+
mode: 'considers_unsolicited' | 'application' | 'invite_only';
|
|
30
|
+
requirements?: AgentOnboardingRequirement[];
|
|
31
|
+
url?: string;
|
|
32
|
+
documentation_url?: string;
|
|
33
|
+
message?: string;
|
|
34
|
+
ext?: Record<string, unknown>;
|
|
35
|
+
}
|
|
36
|
+
export interface PrincipalRelationship {
|
|
37
|
+
status: 'pending' | 'active' | 'suspended' | 'blocked';
|
|
38
|
+
expires_at?: string;
|
|
39
|
+
setup?: {
|
|
40
|
+
message: string;
|
|
41
|
+
url?: string;
|
|
42
|
+
expires_at?: string;
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
};
|
|
45
|
+
ext?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
export type IdentityPrincipalChangedReason = 'relationship_changed' | 'relationship_expiring';
|
|
48
|
+
export interface TrustAgent {
|
|
49
|
+
url: string;
|
|
50
|
+
roles: string[];
|
|
51
|
+
id?: string;
|
|
52
|
+
protocols?: string[];
|
|
53
|
+
countries?: string[];
|
|
54
|
+
profiles?: {
|
|
55
|
+
adcp?: {
|
|
56
|
+
onboarding?: BuyerOnboardingPosture;
|
|
57
|
+
[key: string]: unknown;
|
|
58
|
+
};
|
|
59
|
+
[key: string]: unknown;
|
|
60
|
+
};
|
|
61
|
+
[key: string]: unknown;
|
|
62
|
+
}
|
|
63
|
+
export interface TrustGrant {
|
|
64
|
+
grantee: string;
|
|
65
|
+
scopes: string[];
|
|
66
|
+
agents?: {
|
|
67
|
+
url: string;
|
|
68
|
+
}[];
|
|
69
|
+
countries?: string[];
|
|
70
|
+
valid_from?: string;
|
|
71
|
+
valid_until?: string;
|
|
72
|
+
profiles?: {
|
|
73
|
+
adcp?: {
|
|
74
|
+
brands?: string[];
|
|
75
|
+
[key: string]: unknown;
|
|
76
|
+
};
|
|
77
|
+
[key: string]: unknown;
|
|
78
|
+
};
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
}
|
|
81
|
+
export interface TrustRecord {
|
|
82
|
+
agents?: TrustAgent[];
|
|
83
|
+
grants?: TrustGrant[];
|
|
84
|
+
acknowledgements?: unknown[];
|
|
85
|
+
exclusive_grants?: boolean;
|
|
86
|
+
authoritative_location?: string;
|
|
87
|
+
profiles?: {
|
|
88
|
+
adcp?: {
|
|
89
|
+
onboarding?: BuyerOnboardingPosture;
|
|
90
|
+
[key: string]: unknown;
|
|
91
|
+
};
|
|
92
|
+
[key: string]: unknown;
|
|
93
|
+
};
|
|
94
|
+
[key: string]: unknown;
|
|
95
|
+
}
|
|
96
|
+
export type RevocationReason = 'unspecified' | 'keyCompromise' | 'cACompromise' | 'affiliationChanged' | 'superseded' | 'cessationOfOperation' | 'certificateHold' | 'removeFromCRL' | 'privilegeWithdrawn' | 'aACompromise';
|
|
97
|
+
export interface RevocationDetail {
|
|
98
|
+
reason?: RevocationReason;
|
|
99
|
+
invalidity_date?: string;
|
|
100
|
+
}
|
|
101
|
+
export interface AgentGrantDeniedDetails {
|
|
102
|
+
scope: 'agent';
|
|
103
|
+
reason: 'grant_absent';
|
|
104
|
+
}
|
|
105
|
+
export interface Identity33Capabilities {
|
|
106
|
+
request_signing?: {
|
|
107
|
+
profiles?: ('adcp/request-signing/v1' | 'web-bot-auth')[];
|
|
108
|
+
wba_draft_revision?: string;
|
|
109
|
+
};
|
|
110
|
+
webhook_signing?: {
|
|
111
|
+
supported: boolean;
|
|
112
|
+
profiles?: ('adcp/webhook-signing/v1' | 'web-bot-auth')[];
|
|
113
|
+
wba_draft_revision?: string;
|
|
114
|
+
};
|
|
115
|
+
account?: {
|
|
116
|
+
agent_onboarding?: AgentOnboarding;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export type Identity33GetPrincipalResponse = Omit<import('../types/tools.generated').GetPrincipalResponse, 'result'> & {
|
|
120
|
+
result: (Exclude<import('../types/tools.generated').GetPrincipalResponse['result'], {
|
|
121
|
+
kind: 'failed';
|
|
122
|
+
}> & {
|
|
123
|
+
relationship?: PrincipalRelationship;
|
|
124
|
+
}) | Extract<import('../types/tools.generated').GetPrincipalResponse['result'], {
|
|
125
|
+
kind: 'failed';
|
|
126
|
+
}>;
|
|
127
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
File without changes
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var validation_exports = {};
|
|
30
|
+
__export(validation_exports, {
|
|
31
|
+
validateIdentity33Payload: () => validateIdentity33Payload
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(validation_exports);
|
|
34
|
+
var import_ajv = __toESM(require("ajv"));
|
|
35
|
+
var import_ajv_formats = __toESM(require("ajv-formats"));
|
|
36
|
+
var import_schema_loader = require('../validation/schema-loader.js');
|
|
37
|
+
var import_schemas = __toESM(require('./schemas.draft.js'));
|
|
38
|
+
const validators = /* @__PURE__ */ new WeakMap();
|
|
39
|
+
function validateIdentity33Payload(tool, direction, payload, version) {
|
|
40
|
+
const key = JSON.stringify([tool, direction, version]);
|
|
41
|
+
const stable = (0, import_schema_loader.getValidator)(tool, direction === "request" ? "request" : "sync", version);
|
|
42
|
+
if (!stable) return { valid: true, issues: [], variant: "skipped" };
|
|
43
|
+
let cache = validators.get(stable);
|
|
44
|
+
if (!cache) {
|
|
45
|
+
cache = /* @__PURE__ */ new Map();
|
|
46
|
+
validators.set(stable, cache);
|
|
47
|
+
}
|
|
48
|
+
let validator = cache.get(key);
|
|
49
|
+
if (!validator) {
|
|
50
|
+
let walk2 = function(node, name = "") {
|
|
51
|
+
if (!node || typeof node !== "object") return;
|
|
52
|
+
if (Array.isArray(node)) {
|
|
53
|
+
node.forEach((item) => walk2(item, name));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const object = node;
|
|
57
|
+
if ((name === "reporting_webhook" || name === "artifact_webhook" || /Reporting Webhook|Artifact Webhook/i.test(object.title ?? "")) && Array.isArray(object.required))
|
|
58
|
+
object.required = object.required.filter((field) => field !== "authentication");
|
|
59
|
+
if (name === "reason" && Array.isArray(object.enum) && object.enum.includes("destination_state_changed"))
|
|
60
|
+
object.enum = [...object.enum, "relationship_changed", "relationship_expiring"];
|
|
61
|
+
if (object.properties?.url && object.properties?.authentication)
|
|
62
|
+
object.properties.signing_profile = { type: "string", enum: ["adcp/webhook-signing/v1", "web-bot-auth"] };
|
|
63
|
+
if (tool === "get_principal" && direction === "response" && object.properties?.kind && ["current", "recognized", "unconfigured"].includes(object.properties.kind.const))
|
|
64
|
+
object.properties.relationship = { ...relationship, $id: void 0 };
|
|
65
|
+
if (tool === "get_adcp_capabilities" && object.properties?.supported_billing)
|
|
66
|
+
object.properties.agent_onboarding = { ...onboarding, $id: void 0 };
|
|
67
|
+
if (tool === "get_adcp_capabilities" && ["request_signing", "webhook_signing"].includes(name) && object.properties)
|
|
68
|
+
object.properties.profiles = {
|
|
69
|
+
type: "array",
|
|
70
|
+
items: {
|
|
71
|
+
type: "string",
|
|
72
|
+
enum: name === "request_signing" ? ["adcp/request-signing/v1", "web-bot-auth"] : ["adcp/webhook-signing/v1", "web-bot-auth"]
|
|
73
|
+
},
|
|
74
|
+
minItems: 1,
|
|
75
|
+
uniqueItems: true
|
|
76
|
+
};
|
|
77
|
+
if (tool === "get_adcp_capabilities" && ["request_signing", "webhook_signing"].includes(name) && object.properties)
|
|
78
|
+
object.properties.wba_draft_revision = { type: "string", minLength: 1 };
|
|
79
|
+
for (const [k, value] of Object.entries(object)) if (k !== "$id") walk2(value, k);
|
|
80
|
+
};
|
|
81
|
+
var walk = walk2;
|
|
82
|
+
const schema = structuredClone(stable.schema);
|
|
83
|
+
const relationship = import_schemas.default.find((s) => s.$id === "/schemas/core/principal-relationship.json");
|
|
84
|
+
const onboarding = import_schemas.default.find((s) => s.$id === "/schemas/core/agent-onboarding.json");
|
|
85
|
+
walk2(schema);
|
|
86
|
+
const ajv = new import_ajv.default({ strict: false, allErrors: true });
|
|
87
|
+
(0, import_ajv_formats.default)(ajv);
|
|
88
|
+
for (const draft of import_schemas.default) ajv.addSchema({ ...draft, $id: "https://adcontextprotocol.org" + draft.$id });
|
|
89
|
+
validator = ajv.compile(schema);
|
|
90
|
+
cache.set(key, validator);
|
|
91
|
+
}
|
|
92
|
+
let valid = validator(payload) === true;
|
|
93
|
+
if (valid && tool === "get_adcp_capabilities" && payload && typeof payload === "object") {
|
|
94
|
+
const body = payload;
|
|
95
|
+
const posture = body.account?.agent_onboarding;
|
|
96
|
+
if (posture && (!body.experimental_features?.includes("account.agent_onboarding") || posture.sandbox !== void 0 && body.account?.sandbox !== true || Object.keys(posture.billing ?? {}).some((k) => !body.account?.supported_billing?.includes(k))))
|
|
97
|
+
return {
|
|
98
|
+
valid: false,
|
|
99
|
+
variant: "sync",
|
|
100
|
+
issues: [
|
|
101
|
+
{
|
|
102
|
+
pointer: "/account/agent_onboarding",
|
|
103
|
+
keyword: "experimental",
|
|
104
|
+
schemaPath: "/identity33/agent_onboarding",
|
|
105
|
+
message: "Onboarding requires its feature declaration and supported account tiers"
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
valid,
|
|
112
|
+
variant: direction === "request" ? "request" : "sync",
|
|
113
|
+
issues: valid ? [] : (validator.errors ?? []).map((e) => ({
|
|
114
|
+
pointer: e.instancePath,
|
|
115
|
+
keyword: e.keyword,
|
|
116
|
+
message: e.message ?? "Invalid value",
|
|
117
|
+
params: e.params,
|
|
118
|
+
schemaPath: e.schemaPath
|
|
119
|
+
}))
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
123
|
+
0 && (module.exports = {
|
|
124
|
+
validateIdentity33Payload
|
|
125
|
+
});
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import Ajv from "ajv";
|
|
2
|
+
import addFormats from "ajv-formats";
|
|
3
|
+
import { getValidator } from "../validation/schema-loader.mjs";
|
|
4
|
+
import schemas from "./schemas.draft.mjs";
|
|
5
|
+
const validators = /* @__PURE__ */ new WeakMap();
|
|
6
|
+
function validateIdentity33Payload(tool, direction, payload, version) {
|
|
7
|
+
const key = JSON.stringify([tool, direction, version]);
|
|
8
|
+
const stable = getValidator(tool, direction === "request" ? "request" : "sync", version);
|
|
9
|
+
if (!stable) return { valid: true, issues: [], variant: "skipped" };
|
|
10
|
+
let cache = validators.get(stable);
|
|
11
|
+
if (!cache) {
|
|
12
|
+
cache = /* @__PURE__ */ new Map();
|
|
13
|
+
validators.set(stable, cache);
|
|
14
|
+
}
|
|
15
|
+
let validator = cache.get(key);
|
|
16
|
+
if (!validator) {
|
|
17
|
+
let walk2 = function(node, name = "") {
|
|
18
|
+
if (!node || typeof node !== "object") return;
|
|
19
|
+
if (Array.isArray(node)) {
|
|
20
|
+
node.forEach((item) => walk2(item, name));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const object = node;
|
|
24
|
+
if ((name === "reporting_webhook" || name === "artifact_webhook" || /Reporting Webhook|Artifact Webhook/i.test(object.title ?? "")) && Array.isArray(object.required))
|
|
25
|
+
object.required = object.required.filter((field) => field !== "authentication");
|
|
26
|
+
if (name === "reason" && Array.isArray(object.enum) && object.enum.includes("destination_state_changed"))
|
|
27
|
+
object.enum = [...object.enum, "relationship_changed", "relationship_expiring"];
|
|
28
|
+
if (object.properties?.url && object.properties?.authentication)
|
|
29
|
+
object.properties.signing_profile = { type: "string", enum: ["adcp/webhook-signing/v1", "web-bot-auth"] };
|
|
30
|
+
if (tool === "get_principal" && direction === "response" && object.properties?.kind && ["current", "recognized", "unconfigured"].includes(object.properties.kind.const))
|
|
31
|
+
object.properties.relationship = { ...relationship, $id: void 0 };
|
|
32
|
+
if (tool === "get_adcp_capabilities" && object.properties?.supported_billing)
|
|
33
|
+
object.properties.agent_onboarding = { ...onboarding, $id: void 0 };
|
|
34
|
+
if (tool === "get_adcp_capabilities" && ["request_signing", "webhook_signing"].includes(name) && object.properties)
|
|
35
|
+
object.properties.profiles = {
|
|
36
|
+
type: "array",
|
|
37
|
+
items: {
|
|
38
|
+
type: "string",
|
|
39
|
+
enum: name === "request_signing" ? ["adcp/request-signing/v1", "web-bot-auth"] : ["adcp/webhook-signing/v1", "web-bot-auth"]
|
|
40
|
+
},
|
|
41
|
+
minItems: 1,
|
|
42
|
+
uniqueItems: true
|
|
43
|
+
};
|
|
44
|
+
if (tool === "get_adcp_capabilities" && ["request_signing", "webhook_signing"].includes(name) && object.properties)
|
|
45
|
+
object.properties.wba_draft_revision = { type: "string", minLength: 1 };
|
|
46
|
+
for (const [k, value] of Object.entries(object)) if (k !== "$id") walk2(value, k);
|
|
47
|
+
};
|
|
48
|
+
var walk = walk2;
|
|
49
|
+
const schema = structuredClone(stable.schema);
|
|
50
|
+
const relationship = schemas.find((s) => s.$id === "/schemas/core/principal-relationship.json");
|
|
51
|
+
const onboarding = schemas.find((s) => s.$id === "/schemas/core/agent-onboarding.json");
|
|
52
|
+
walk2(schema);
|
|
53
|
+
const ajv = new Ajv({ strict: false, allErrors: true });
|
|
54
|
+
addFormats(ajv);
|
|
55
|
+
for (const draft of schemas) ajv.addSchema({ ...draft, $id: "https://adcontextprotocol.org" + draft.$id });
|
|
56
|
+
validator = ajv.compile(schema);
|
|
57
|
+
cache.set(key, validator);
|
|
58
|
+
}
|
|
59
|
+
let valid = validator(payload) === true;
|
|
60
|
+
if (valid && tool === "get_adcp_capabilities" && payload && typeof payload === "object") {
|
|
61
|
+
const body = payload;
|
|
62
|
+
const posture = body.account?.agent_onboarding;
|
|
63
|
+
if (posture && (!body.experimental_features?.includes("account.agent_onboarding") || posture.sandbox !== void 0 && body.account?.sandbox !== true || Object.keys(posture.billing ?? {}).some((k) => !body.account?.supported_billing?.includes(k))))
|
|
64
|
+
return {
|
|
65
|
+
valid: false,
|
|
66
|
+
variant: "sync",
|
|
67
|
+
issues: [
|
|
68
|
+
{
|
|
69
|
+
pointer: "/account/agent_onboarding",
|
|
70
|
+
keyword: "experimental",
|
|
71
|
+
schemaPath: "/identity33/agent_onboarding",
|
|
72
|
+
message: "Onboarding requires its feature declaration and supported account tiers"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
valid,
|
|
79
|
+
variant: direction === "request" ? "request" : "sync",
|
|
80
|
+
issues: valid ? [] : (validator.errors ?? []).map((e) => ({
|
|
81
|
+
pointer: e.instancePath,
|
|
82
|
+
keyword: e.keyword,
|
|
83
|
+
message: e.message ?? "Invalid value",
|
|
84
|
+
params: e.params,
|
|
85
|
+
schemaPath: e.schemaPath
|
|
86
|
+
}))
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export {
|
|
90
|
+
validateIdentity33Payload
|
|
91
|
+
};
|
package/dist/lib/index.d.mts
CHANGED
|
@@ -216,7 +216,7 @@ export { FormatAsset, imageAssetSlot, videoAssetSlot, audioAssetSlot, textAssetS
|
|
|
216
216
|
export { Render, urlRender, htmlRender, bothRender } from './utils/render-builders.mjs';
|
|
217
217
|
export { FormatRender, displayRender, parameterizedRender, templateRender, type DimensionsRender, type ParameterizedRender, type RenderItem, } from './utils/format-render-builders.mjs';
|
|
218
218
|
export { CanonicalFormat, canonicalFormatDeclaration, type CanonicalFormatDeclaration, type CanonicalFormatDeclaration as Format, type CanonicalFormatDeclarationFields, type CanonicalFormatKind, type CanonicalFormatParams, type ProductCardDetailedFields, type ProductCardFields, } from './v2/projection/index.mjs';
|
|
219
|
-
export { toCanonicalFormatOptionsWithRoutes, toAdditiveCanonicalProduct, withAdditiveCanonicalFormatOptions, toCanonicalOnlyProduct, toCanonicalOnlyResponse, packageRefsForFormatOptions, FormatOptionRefsLookupError, CreativeFormatCapabilityError, CreativeFormatProjectionError, type CreativeFormatWireMode, type LegacyFormatConversionContext, type LegacyFormatConverter, type LegacyFormatResolutionContext, type LegacyFormatResolver, legacyFormatConverterFromCatalogSnapshots, canonicalFormatLegacyResolverFromCatalogSnapshots, canonicalFormatLegacyResolverFromRoutes, legacyRoutesForProduct, projectionAdaptersFromCatalogSnapshots, type ProjectionCatalogAdapters, type ProjectionCatalogSnapshot, type ProjectionCatalogSource, type CanonicalFormatLegacyResolver, type CanonicalFormatLegacyResolutionContext, type CanonicalFormatLegacyRoute, type AdditiveCanonicalProduct, type CanonicalOnlyProduct, type CanonicalCreativeAsset, type CanonicalCreativeAsset as CreativeAsset, type CanonicalSyncCreativeAsset, type CanonicalCreateMediaBuyInput, type CanonicalCreateMediaBuyRequest, type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest, type CanonicalCreateMediaBuyResponse, type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse, type CanonicalCreativeResponse, type CanonicalCreativeFilters, type CanonicalCreativeFilters as CreativeFilters, type CanonicalGetCreativeDeliveryResponse, type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse, type CanonicalGetMediaBuysResponse, type CanonicalGetMediaBuysResponse as GetMediaBuysResponse, type CanonicalGetProductsResponse as GetProductsResponse, type CanonicalGetProductsRequest, type CanonicalGetProductsRequest as GetProductsRequest, type CanonicalListCreativesRequest, type CanonicalListCreativesRequest as ListCreativesRequest, type CanonicalListCreativesResponse, type CanonicalListCreativesResponse as ListCreativesResponse, type CanonicalListedCreative, type CanonicalPackageRequest, type CanonicalPackageRequest as PackageRequest, type CanonicalPackageUpdate, type CanonicalPackageUpdate as PackageUpdate, type CanonicalPackage, type CanonicalPackage as Package, type CanonicalPlacement, type CanonicalPlacement as Placement, type CanonicalPreviewCreativeRequest, type CanonicalPreviewCreativeRequest as PreviewCreativeRequest, type CanonicalPreviewCreativeResponse, type CanonicalPreviewCreativeResponse as PreviewCreativeResponse, type CanonicalProduct, type CanonicalProduct as Product, type CanonicalProjectedCreative, type CanonicalSyncCreativesRequest, type CanonicalSyncCreativesRequest as SyncCreativesRequest, type CanonicalSyncCreativesResponse, type CanonicalSyncCreativesResponse as SyncCreativesResponse, type CanonicalUpdateMediaBuyRequest, type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest, type CanonicalUpdateMediaBuyResponse, type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse, type LegacyCreativeAsset, type CanonicalCreativeFormatSelectorContainer, type PackageFormatRefs, type ProjectionDiagnostic, type SyncCreativeFormatProjection, } from './v2/projection/index.mjs';
|
|
219
|
+
export { toCanonicalFormatOptionsWithRoutes, toAdditiveCanonicalProduct, withAdditiveCanonicalFormatOptions, toCanonicalOnlyProduct, toCanonicalOnlyResponse, packageRefsForFormatOptions, FormatOptionRefsLookupError, CreativeFormatCapabilityError, CreativeFormatProjectionError, type CreativeFormatWireMode, type LegacyFormatConversionContext, type LegacyFormatConverter, type LegacyFormatResolutionContext, type LegacyFormatResolver, legacyFormatConverterFromCatalogSnapshots, canonicalFormatLegacyResolverFromCatalogSnapshots, canonicalFormatLegacyResolverFromRoutes, legacyRoutesForProduct, projectionAdaptersFromCatalogSnapshots, type ProjectionCatalogAdapters, type ProjectionCatalogSnapshot, type ProjectionCatalogSource, type CanonicalFormatLegacyResolver, type CanonicalFormatLegacyResolutionContext, type CanonicalFormatLegacyRoute, type LegacyRoutesForProductOptions, type AdditiveCanonicalProduct, type CanonicalOnlyProduct, type CanonicalCreativeAsset, type CanonicalCreativeAsset as CreativeAsset, type CanonicalSyncCreativeAsset, type CanonicalCreateMediaBuyInput, type CanonicalCreateMediaBuyRequest, type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest, type CanonicalCreateMediaBuyResponse, type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse, type CanonicalCreativeResponse, type CanonicalCreativeFilters, type CanonicalCreativeFilters as CreativeFilters, type CanonicalGetCreativeDeliveryResponse, type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse, type CanonicalGetMediaBuysResponse, type CanonicalGetMediaBuysResponse as GetMediaBuysResponse, type CanonicalGetProductsResponse as GetProductsResponse, type CanonicalGetProductsRequest, type CanonicalGetProductsRequest as GetProductsRequest, type CanonicalListCreativesRequest, type CanonicalListCreativesRequest as ListCreativesRequest, type CanonicalListCreativesResponse, type CanonicalListCreativesResponse as ListCreativesResponse, type CanonicalListedCreative, type CanonicalPackageRequest, type CanonicalPackageRequest as PackageRequest, type CanonicalPackageUpdate, type CanonicalPackageUpdate as PackageUpdate, type CanonicalPackage, type CanonicalPackage as Package, type CanonicalPlacement, type CanonicalPlacement as Placement, type CanonicalPreviewCreativeRequest, type CanonicalPreviewCreativeRequest as PreviewCreativeRequest, type CanonicalPreviewCreativeResponse, type CanonicalPreviewCreativeResponse as PreviewCreativeResponse, type CanonicalProduct, type CanonicalProduct as Product, type CanonicalProjectedCreative, type CanonicalSyncCreativesRequest, type CanonicalSyncCreativesRequest as SyncCreativesRequest, type CanonicalSyncCreativesResponse, type CanonicalSyncCreativesResponse as SyncCreativesResponse, type CanonicalUpdateMediaBuyRequest, type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest, type CanonicalUpdateMediaBuyResponse, type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse, type LegacyCreativeAsset, type CanonicalCreativeFormatSelectorContainer, type PackageFormatRefs, type ProjectionDiagnostic, type SyncCreativeFormatProjection, } from './v2/projection/index.mjs';
|
|
220
220
|
export { activationKey, segmentIdActivationKey, keyValueActivationKey } from './utils/activation-key-builders.mjs';
|
|
221
221
|
export { signalId, catalogSignalId, agentSignalId, getSignalId, getSignalIssuer } from './utils/signal-id-builders.mjs';
|
|
222
222
|
export { buildActivateSignalRequest, getSignalActivationId, getSignalPricingOptionIds, normalizeDiscoveredSignal, } from './utils/signal-discovery-helpers.mjs';
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -216,7 +216,7 @@ export { FormatAsset, imageAssetSlot, videoAssetSlot, audioAssetSlot, textAssetS
|
|
|
216
216
|
export { Render, urlRender, htmlRender, bothRender } from './utils/render-builders';
|
|
217
217
|
export { FormatRender, displayRender, parameterizedRender, templateRender, type DimensionsRender, type ParameterizedRender, type RenderItem, } from './utils/format-render-builders';
|
|
218
218
|
export { CanonicalFormat, canonicalFormatDeclaration, type CanonicalFormatDeclaration, type CanonicalFormatDeclaration as Format, type CanonicalFormatDeclarationFields, type CanonicalFormatKind, type CanonicalFormatParams, type ProductCardDetailedFields, type ProductCardFields, } from './v2/projection';
|
|
219
|
-
export { toCanonicalFormatOptionsWithRoutes, toAdditiveCanonicalProduct, withAdditiveCanonicalFormatOptions, toCanonicalOnlyProduct, toCanonicalOnlyResponse, packageRefsForFormatOptions, FormatOptionRefsLookupError, CreativeFormatCapabilityError, CreativeFormatProjectionError, type CreativeFormatWireMode, type LegacyFormatConversionContext, type LegacyFormatConverter, type LegacyFormatResolutionContext, type LegacyFormatResolver, legacyFormatConverterFromCatalogSnapshots, canonicalFormatLegacyResolverFromCatalogSnapshots, canonicalFormatLegacyResolverFromRoutes, legacyRoutesForProduct, projectionAdaptersFromCatalogSnapshots, type ProjectionCatalogAdapters, type ProjectionCatalogSnapshot, type ProjectionCatalogSource, type CanonicalFormatLegacyResolver, type CanonicalFormatLegacyResolutionContext, type CanonicalFormatLegacyRoute, type AdditiveCanonicalProduct, type CanonicalOnlyProduct, type CanonicalCreativeAsset, type CanonicalCreativeAsset as CreativeAsset, type CanonicalSyncCreativeAsset, type CanonicalCreateMediaBuyInput, type CanonicalCreateMediaBuyRequest, type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest, type CanonicalCreateMediaBuyResponse, type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse, type CanonicalCreativeResponse, type CanonicalCreativeFilters, type CanonicalCreativeFilters as CreativeFilters, type CanonicalGetCreativeDeliveryResponse, type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse, type CanonicalGetMediaBuysResponse, type CanonicalGetMediaBuysResponse as GetMediaBuysResponse, type CanonicalGetProductsResponse as GetProductsResponse, type CanonicalGetProductsRequest, type CanonicalGetProductsRequest as GetProductsRequest, type CanonicalListCreativesRequest, type CanonicalListCreativesRequest as ListCreativesRequest, type CanonicalListCreativesResponse, type CanonicalListCreativesResponse as ListCreativesResponse, type CanonicalListedCreative, type CanonicalPackageRequest, type CanonicalPackageRequest as PackageRequest, type CanonicalPackageUpdate, type CanonicalPackageUpdate as PackageUpdate, type CanonicalPackage, type CanonicalPackage as Package, type CanonicalPlacement, type CanonicalPlacement as Placement, type CanonicalPreviewCreativeRequest, type CanonicalPreviewCreativeRequest as PreviewCreativeRequest, type CanonicalPreviewCreativeResponse, type CanonicalPreviewCreativeResponse as PreviewCreativeResponse, type CanonicalProduct, type CanonicalProduct as Product, type CanonicalProjectedCreative, type CanonicalSyncCreativesRequest, type CanonicalSyncCreativesRequest as SyncCreativesRequest, type CanonicalSyncCreativesResponse, type CanonicalSyncCreativesResponse as SyncCreativesResponse, type CanonicalUpdateMediaBuyRequest, type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest, type CanonicalUpdateMediaBuyResponse, type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse, type LegacyCreativeAsset, type CanonicalCreativeFormatSelectorContainer, type PackageFormatRefs, type ProjectionDiagnostic, type SyncCreativeFormatProjection, } from './v2/projection';
|
|
219
|
+
export { toCanonicalFormatOptionsWithRoutes, toAdditiveCanonicalProduct, withAdditiveCanonicalFormatOptions, toCanonicalOnlyProduct, toCanonicalOnlyResponse, packageRefsForFormatOptions, FormatOptionRefsLookupError, CreativeFormatCapabilityError, CreativeFormatProjectionError, type CreativeFormatWireMode, type LegacyFormatConversionContext, type LegacyFormatConverter, type LegacyFormatResolutionContext, type LegacyFormatResolver, legacyFormatConverterFromCatalogSnapshots, canonicalFormatLegacyResolverFromCatalogSnapshots, canonicalFormatLegacyResolverFromRoutes, legacyRoutesForProduct, projectionAdaptersFromCatalogSnapshots, type ProjectionCatalogAdapters, type ProjectionCatalogSnapshot, type ProjectionCatalogSource, type CanonicalFormatLegacyResolver, type CanonicalFormatLegacyResolutionContext, type CanonicalFormatLegacyRoute, type LegacyRoutesForProductOptions, type AdditiveCanonicalProduct, type CanonicalOnlyProduct, type CanonicalCreativeAsset, type CanonicalCreativeAsset as CreativeAsset, type CanonicalSyncCreativeAsset, type CanonicalCreateMediaBuyInput, type CanonicalCreateMediaBuyRequest, type CanonicalCreateMediaBuyRequest as CreateMediaBuyRequest, type CanonicalCreateMediaBuyResponse, type CanonicalCreateMediaBuyResponse as CreateMediaBuyResponse, type CanonicalCreativeResponse, type CanonicalCreativeFilters, type CanonicalCreativeFilters as CreativeFilters, type CanonicalGetCreativeDeliveryResponse, type CanonicalGetCreativeDeliveryResponse as GetCreativeDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse, type CanonicalGetMediaBuyDeliveryResponse as GetMediaBuyDeliveryResponse, type CanonicalGetMediaBuysResponse, type CanonicalGetMediaBuysResponse as GetMediaBuysResponse, type CanonicalGetProductsResponse as GetProductsResponse, type CanonicalGetProductsRequest, type CanonicalGetProductsRequest as GetProductsRequest, type CanonicalListCreativesRequest, type CanonicalListCreativesRequest as ListCreativesRequest, type CanonicalListCreativesResponse, type CanonicalListCreativesResponse as ListCreativesResponse, type CanonicalListedCreative, type CanonicalPackageRequest, type CanonicalPackageRequest as PackageRequest, type CanonicalPackageUpdate, type CanonicalPackageUpdate as PackageUpdate, type CanonicalPackage, type CanonicalPackage as Package, type CanonicalPlacement, type CanonicalPlacement as Placement, type CanonicalPreviewCreativeRequest, type CanonicalPreviewCreativeRequest as PreviewCreativeRequest, type CanonicalPreviewCreativeResponse, type CanonicalPreviewCreativeResponse as PreviewCreativeResponse, type CanonicalProduct, type CanonicalProduct as Product, type CanonicalProjectedCreative, type CanonicalSyncCreativesRequest, type CanonicalSyncCreativesRequest as SyncCreativesRequest, type CanonicalSyncCreativesResponse, type CanonicalSyncCreativesResponse as SyncCreativesResponse, type CanonicalUpdateMediaBuyRequest, type CanonicalUpdateMediaBuyRequest as UpdateMediaBuyRequest, type CanonicalUpdateMediaBuyResponse, type CanonicalUpdateMediaBuyResponse as UpdateMediaBuyResponse, type LegacyCreativeAsset, type CanonicalCreativeFormatSelectorContainer, type PackageFormatRefs, type ProjectionDiagnostic, type SyncCreativeFormatProjection, } from './v2/projection';
|
|
220
220
|
export { activationKey, segmentIdActivationKey, keyValueActivationKey } from './utils/activation-key-builders';
|
|
221
221
|
export { signalId, catalogSignalId, agentSignalId, getSignalId, getSignalIssuer } from './utils/signal-id-builders';
|
|
222
222
|
export { buildActivateSignalRequest, getSignalActivationId, getSignalPricingOptionIds, normalizeDiscoveredSignal, } from './utils/signal-discovery-helpers';
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { BlobServiceClient } from '@azure/storage-blob';
|
|
2
2
|
import type { ReportingRowObjectProviderV1 } from '../ledger/row-storage-object.mjs';
|
|
3
|
+
/**
|
|
4
|
+
* @experimental Reliable Reporting storage surface: breaking changes may ship in minor releases. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
|
|
5
|
+
*/
|
|
3
6
|
export interface CreateAzureBlobReportingRowObjectProviderOptionsV1 {
|
|
4
7
|
/** Official client used by bindings without a `credentialRef`. */
|
|
5
8
|
client?: BlobServiceClient;
|
|
@@ -22,5 +25,7 @@ export interface CreateAzureBlobReportingRowObjectProviderOptionsV1 {
|
|
|
22
25
|
* identical bytes at the same key (ETags are content-derived and cannot fence that).
|
|
23
26
|
* The probe refuses accounts without versioning and proves create-only behaviour
|
|
24
27
|
* empirically.
|
|
28
|
+
*
|
|
29
|
+
* @experimental Reliable Reporting storage surface: breaking changes may ship in minor releases. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
|
|
25
30
|
*/
|
|
26
31
|
export declare function createAzureBlobReportingRowObjectProviderV1(options: CreateAzureBlobReportingRowObjectProviderOptionsV1): ReportingRowObjectProviderV1;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { BlobServiceClient } from '@azure/storage-blob';
|
|
2
2
|
import type { ReportingRowObjectProviderV1 } from '../ledger/row-storage-object';
|
|
3
|
+
/**
|
|
4
|
+
* @experimental Reliable Reporting storage surface: breaking changes may ship in minor releases. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
|
|
5
|
+
*/
|
|
3
6
|
export interface CreateAzureBlobReportingRowObjectProviderOptionsV1 {
|
|
4
7
|
/** Official client used by bindings without a `credentialRef`. */
|
|
5
8
|
client?: BlobServiceClient;
|
|
@@ -22,5 +25,7 @@ export interface CreateAzureBlobReportingRowObjectProviderOptionsV1 {
|
|
|
22
25
|
* identical bytes at the same key (ETags are content-derived and cannot fence that).
|
|
23
26
|
* The probe refuses accounts without versioning and proves create-only behaviour
|
|
24
27
|
* empirically.
|
|
28
|
+
*
|
|
29
|
+
* @experimental Reliable Reporting storage surface: breaking changes may ship in minor releases. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/guides/REPORTING-STABILITY.md
|
|
25
30
|
*/
|
|
26
31
|
export declare function createAzureBlobReportingRowObjectProviderV1(options: CreateAzureBlobReportingRowObjectProviderOptionsV1): ReportingRowObjectProviderV1;
|
|
@@ -86,12 +86,12 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
|
|
|
86
86
|
return client.getContainerClient(input.location.container);
|
|
87
87
|
};
|
|
88
88
|
const blobFor = (input) => {
|
|
89
|
-
if (typeof input.
|
|
89
|
+
if (typeof input.objectRef !== "string" || input.objectRef.length === 0 || input.objectRef.length > 1024) {
|
|
90
90
|
throw new import_row_storage_errors.ReportingRowStoreError("INVALID_INPUT", "object key is invalid");
|
|
91
91
|
}
|
|
92
|
-
return containerFor(input).getBlockBlobClient(input.
|
|
92
|
+
return containerFor(input).getBlockBlobClient(input.objectRef);
|
|
93
93
|
};
|
|
94
|
-
const pinned = (blob,
|
|
94
|
+
const pinned = (blob, nativeVersionRef) => typeof nativeVersionRef === "string" && VERSION_ID.test(nativeVersionRef) ? { blob: blob.withVersion(nativeVersionRef), versionId: nativeVersionRef } : null;
|
|
95
95
|
async function assertCreateOnlyEnforced(container, prefix, signal) {
|
|
96
96
|
const blob = container.getBlockBlobClient(`${prefix}/.adcp-probe/${(0, import_node_crypto.randomUUID)()}`);
|
|
97
97
|
const versionIds = [];
|
|
@@ -158,19 +158,19 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
|
|
|
158
158
|
metadata: metadataOf(input.metadata),
|
|
159
159
|
abortSignal: context.signal
|
|
160
160
|
});
|
|
161
|
-
return { created: true,
|
|
161
|
+
return { created: true, nativeVersionRef: versionOf(response) };
|
|
162
162
|
} catch (error) {
|
|
163
163
|
if (!isConflict(error)) throw error;
|
|
164
164
|
}
|
|
165
165
|
const existing = await blob.getProperties({ abortSignal: context.signal });
|
|
166
|
-
return { created: false,
|
|
166
|
+
return { created: false, nativeVersionRef: versionOf(existing) };
|
|
167
167
|
});
|
|
168
168
|
},
|
|
169
169
|
get(input, context) {
|
|
170
170
|
return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
|
|
171
171
|
const blob = blobFor(input);
|
|
172
172
|
(0, import_row_storage_provider_io.assertReportingRowReadBounds)(input);
|
|
173
|
-
const target = pinned(blob, input.
|
|
173
|
+
const target = pinned(blob, input.nativeVersionRef);
|
|
174
174
|
if (target === null) return null;
|
|
175
175
|
try {
|
|
176
176
|
if (input.range?.length === 0) {
|
|
@@ -207,10 +207,29 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
|
|
|
207
207
|
}
|
|
208
208
|
});
|
|
209
209
|
},
|
|
210
|
+
stat(input, context) {
|
|
211
|
+
return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
|
|
212
|
+
const blob = blobFor(input);
|
|
213
|
+
const target = pinned(blob, input.nativeVersionRef);
|
|
214
|
+
if (target === null) return null;
|
|
215
|
+
try {
|
|
216
|
+
const properties = await target.blob.getProperties({ abortSignal: context.signal });
|
|
217
|
+
if (!servedVersion(properties, target.versionId)) return null;
|
|
218
|
+
const size = properties.contentLength;
|
|
219
|
+
if (typeof size !== "number" || !Number.isSafeInteger(size) || size < 0) {
|
|
220
|
+
throw new import_row_storage_errors.ReportingRowStoreError("PROVIDER_UNAVAILABLE", "blob metadata is malformed");
|
|
221
|
+
}
|
|
222
|
+
return { nativeVersionRef: target.versionId, sizeBytes: size };
|
|
223
|
+
} catch (error) {
|
|
224
|
+
if (isMissing(error) || statusOf(error) === 400) return null;
|
|
225
|
+
throw error;
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
},
|
|
210
229
|
delete(input, context) {
|
|
211
230
|
return (0, import_row_storage_provider_io.runReportingRowProviderOperation)(context.signal, async () => {
|
|
212
231
|
const blob = blobFor(input);
|
|
213
|
-
const target = pinned(blob, input.
|
|
232
|
+
const target = pinned(blob, input.nativeVersionRef);
|
|
214
233
|
if (target === null) return "absent";
|
|
215
234
|
const signal = context.signal;
|
|
216
235
|
try {
|
|
@@ -70,12 +70,12 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
|
|
|
70
70
|
return client.getContainerClient(input.location.container);
|
|
71
71
|
};
|
|
72
72
|
const blobFor = (input) => {
|
|
73
|
-
if (typeof input.
|
|
73
|
+
if (typeof input.objectRef !== "string" || input.objectRef.length === 0 || input.objectRef.length > 1024) {
|
|
74
74
|
throw new ReportingRowStoreError("INVALID_INPUT", "object key is invalid");
|
|
75
75
|
}
|
|
76
|
-
return containerFor(input).getBlockBlobClient(input.
|
|
76
|
+
return containerFor(input).getBlockBlobClient(input.objectRef);
|
|
77
77
|
};
|
|
78
|
-
const pinned = (blob,
|
|
78
|
+
const pinned = (blob, nativeVersionRef) => typeof nativeVersionRef === "string" && VERSION_ID.test(nativeVersionRef) ? { blob: blob.withVersion(nativeVersionRef), versionId: nativeVersionRef } : null;
|
|
79
79
|
async function assertCreateOnlyEnforced(container, prefix, signal) {
|
|
80
80
|
const blob = container.getBlockBlobClient(`${prefix}/.adcp-probe/${randomUUID()}`);
|
|
81
81
|
const versionIds = [];
|
|
@@ -142,19 +142,19 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
|
|
|
142
142
|
metadata: metadataOf(input.metadata),
|
|
143
143
|
abortSignal: context.signal
|
|
144
144
|
});
|
|
145
|
-
return { created: true,
|
|
145
|
+
return { created: true, nativeVersionRef: versionOf(response) };
|
|
146
146
|
} catch (error) {
|
|
147
147
|
if (!isConflict(error)) throw error;
|
|
148
148
|
}
|
|
149
149
|
const existing = await blob.getProperties({ abortSignal: context.signal });
|
|
150
|
-
return { created: false,
|
|
150
|
+
return { created: false, nativeVersionRef: versionOf(existing) };
|
|
151
151
|
});
|
|
152
152
|
},
|
|
153
153
|
get(input, context) {
|
|
154
154
|
return runReportingRowProviderOperation(context.signal, async () => {
|
|
155
155
|
const blob = blobFor(input);
|
|
156
156
|
assertReportingRowReadBounds(input);
|
|
157
|
-
const target = pinned(blob, input.
|
|
157
|
+
const target = pinned(blob, input.nativeVersionRef);
|
|
158
158
|
if (target === null) return null;
|
|
159
159
|
try {
|
|
160
160
|
if (input.range?.length === 0) {
|
|
@@ -191,10 +191,29 @@ function createAzureBlobReportingRowObjectProviderV1(options) {
|
|
|
191
191
|
}
|
|
192
192
|
});
|
|
193
193
|
},
|
|
194
|
+
stat(input, context) {
|
|
195
|
+
return runReportingRowProviderOperation(context.signal, async () => {
|
|
196
|
+
const blob = blobFor(input);
|
|
197
|
+
const target = pinned(blob, input.nativeVersionRef);
|
|
198
|
+
if (target === null) return null;
|
|
199
|
+
try {
|
|
200
|
+
const properties = await target.blob.getProperties({ abortSignal: context.signal });
|
|
201
|
+
if (!servedVersion(properties, target.versionId)) return null;
|
|
202
|
+
const size = properties.contentLength;
|
|
203
|
+
if (typeof size !== "number" || !Number.isSafeInteger(size) || size < 0) {
|
|
204
|
+
throw new ReportingRowStoreError("PROVIDER_UNAVAILABLE", "blob metadata is malformed");
|
|
205
|
+
}
|
|
206
|
+
return { nativeVersionRef: target.versionId, sizeBytes: size };
|
|
207
|
+
} catch (error) {
|
|
208
|
+
if (isMissing(error) || statusOf(error) === 400) return null;
|
|
209
|
+
throw error;
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
},
|
|
194
213
|
delete(input, context) {
|
|
195
214
|
return runReportingRowProviderOperation(context.signal, async () => {
|
|
196
215
|
const blob = blobFor(input);
|
|
197
|
-
const target = pinned(blob, input.
|
|
216
|
+
const target = pinned(blob, input.nativeVersionRef);
|
|
198
217
|
if (target === null) return "absent";
|
|
199
218
|
const signal = context.signal;
|
|
200
219
|
try {
|