@adcp/sdk 6.10.0 → 6.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/adcp-config.js +7 -1
- package/bin/adcp.js +191 -4
- package/dist/lib/adapters/index.d.ts +0 -2
- package/dist/lib/adapters/index.d.ts.map +1 -1
- package/dist/lib/adapters/index.js +1 -8
- package/dist/lib/adapters/index.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -7
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/mock-server/index.d.ts +2 -0
- package/dist/lib/mock-server/index.d.ts.map +1 -1
- package/dist/lib/mock-server/index.js +17 -0
- package/dist/lib/mock-server/index.js.map +1 -1
- package/dist/lib/mock-server/sales-guaranteed/recipe.d.ts +155 -0
- package/dist/lib/mock-server/sales-guaranteed/recipe.d.ts.map +1 -0
- package/dist/lib/mock-server/sales-guaranteed/recipe.js +107 -0
- package/dist/lib/mock-server/sales-guaranteed/recipe.js.map +1 -0
- package/dist/lib/mock-server/sales-guaranteed/server.d.ts.map +1 -1
- package/dist/lib/mock-server/sales-guaranteed/server.js +212 -0
- package/dist/lib/mock-server/sales-guaranteed/server.js.map +1 -1
- package/dist/lib/mock-server/sales-non-guaranteed/recipe.d.ts +123 -0
- package/dist/lib/mock-server/sales-non-guaranteed/recipe.d.ts.map +1 -0
- package/dist/lib/mock-server/sales-non-guaranteed/recipe.js +81 -0
- package/dist/lib/mock-server/sales-non-guaranteed/recipe.js.map +1 -0
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/ctx-metadata/index.d.ts +1 -1
- package/dist/lib/server/ctx-metadata/index.d.ts.map +1 -1
- package/dist/lib/server/ctx-metadata/index.js +3 -1
- package/dist/lib/server/ctx-metadata/index.js.map +1 -1
- package/dist/lib/server/ctx-metadata/wire-shape.d.ts +21 -0
- package/dist/lib/server/ctx-metadata/wire-shape.d.ts.map +1 -1
- package/dist/lib/server/ctx-metadata/wire-shape.js +111 -0
- package/dist/lib/server/ctx-metadata/wire-shape.js.map +1 -1
- package/dist/lib/server/decisioning/async-outcome.d.ts +17 -0
- package/dist/lib/server/decisioning/async-outcome.d.ts.map +1 -1
- package/dist/lib/server/decisioning/async-outcome.js +23 -18
- package/dist/lib/server/decisioning/async-outcome.js.map +1 -1
- package/dist/lib/server/decisioning/context.d.ts +27 -2
- package/dist/lib/server/decisioning/context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.d.ts +4 -0
- package/dist/lib/server/decisioning/index.d.ts.map +1 -1
- package/dist/lib/server/decisioning/index.js +16 -1
- package/dist/lib/server/decisioning/index.js.map +1 -1
- package/dist/lib/server/decisioning/platform.d.ts +17 -0
- package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/platform.js.map +1 -1
- package/dist/lib/server/decisioning/proposal/dispatch.d.ts +203 -0
- package/dist/lib/server/decisioning/proposal/dispatch.d.ts.map +1 -0
- package/dist/lib/server/decisioning/proposal/dispatch.js +395 -0
- package/dist/lib/server/decisioning/proposal/dispatch.js.map +1 -0
- package/dist/lib/server/decisioning/proposal/index.d.ts +21 -0
- package/dist/lib/server/decisioning/proposal/index.d.ts.map +1 -0
- package/dist/lib/server/decisioning/proposal/index.js +37 -0
- package/dist/lib/server/decisioning/proposal/index.js.map +1 -0
- package/dist/lib/server/decisioning/proposal/lifecycle.d.ts +195 -0
- package/dist/lib/server/decisioning/proposal/lifecycle.d.ts.map +1 -0
- package/dist/lib/server/decisioning/proposal/lifecycle.js +366 -0
- package/dist/lib/server/decisioning/proposal/lifecycle.js.map +1 -0
- package/dist/lib/server/decisioning/proposal/mock-manager.d.ts +93 -0
- package/dist/lib/server/decisioning/proposal/mock-manager.d.ts.map +1 -0
- package/dist/lib/server/decisioning/proposal/mock-manager.js +109 -0
- package/dist/lib/server/decisioning/proposal/mock-manager.js.map +1 -0
- package/dist/lib/server/decisioning/proposal/store.d.ts +279 -0
- package/dist/lib/server/decisioning/proposal/store.d.ts.map +1 -0
- package/dist/lib/server/decisioning/proposal/store.js +291 -0
- package/dist/lib/server/decisioning/proposal/store.js.map +1 -0
- package/dist/lib/server/decisioning/proposal/types.d.ts +394 -0
- package/dist/lib/server/decisioning/proposal/types.d.ts.map +1 -0
- package/dist/lib/server/decisioning/proposal/types.js +58 -0
- package/dist/lib/server/decisioning/proposal/types.js.map +1 -0
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts +25 -0
- package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +204 -19
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.js +5 -2
- package/dist/lib/server/decisioning/runtime/postgres-task-registry.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/task-registry.d.ts +5 -0
- package/dist/lib/server/decisioning/runtime/task-registry.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/task-registry.js +4 -1
- package/dist/lib/server/decisioning/runtime/task-registry.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
- package/dist/lib/server/decisioning/runtime/to-context.js +10 -2
- package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
- package/dist/lib/server/index.d.ts +1 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +3 -1
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/test-controller.d.ts +2 -0
- package/dist/lib/server/test-controller.d.ts.map +1 -1
- package/dist/lib/server/test-controller.js +6 -11
- package/dist/lib/server/test-controller.js.map +1 -1
- package/dist/lib/testing/client.d.ts.map +1 -1
- package/dist/lib/testing/client.js +7 -1
- package/dist/lib/testing/client.js.map +1 -1
- package/dist/lib/testing/comply-controller.d.ts +2 -0
- package/dist/lib/testing/comply-controller.d.ts.map +1 -1
- package/dist/lib/testing/comply-controller.js.map +1 -1
- package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/task-map.js +1 -0
- package/dist/lib/testing/storyboard/task-map.js.map +1 -1
- package/dist/lib/testing/storyboard/test-kit.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/test-kit.js +4 -0
- package/dist/lib/testing/storyboard/test-kit.js.map +1 -1
- package/dist/lib/testing/types.d.ts +10 -0
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/examples/hello_seller_adapter_guaranteed.ts +29 -2
- package/examples/hello_seller_adapter_proposal_mode.ts +575 -0
- package/package.json +1 -1
- package/dist/lib/adapters/proposal-manager.d.ts +0 -142
- package/dist/lib/adapters/proposal-manager.d.ts.map +0 -1
- package/dist/lib/adapters/proposal-manager.js +0 -184
- package/dist/lib/adapters/proposal-manager.js.map +0 -1
|
@@ -10,6 +10,6 @@ export { memoryCtxMetadataStore } from './backends/memory';
|
|
|
10
10
|
export type { MemoryCtxMetadataStoreOptions } from './backends/memory';
|
|
11
11
|
export { pgCtxMetadataStore, getCtxMetadataMigration, cleanupExpiredCtxMetadata, CTX_METADATA_MIGRATION, } from './backends/pg';
|
|
12
12
|
export type { PgCtxMetadataBackendOptions } from './backends/pg';
|
|
13
|
-
export { stripCtxMetadata, hasCtxMetadata } from './wire-shape';
|
|
13
|
+
export { stripCtxMetadata, hasCtxMetadata, stripImplementationConfig, hasImplementationConfig } from './wire-shape';
|
|
14
14
|
export type { WireShape } from './wire-shape';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,YAAY,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACpH,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @public
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.hasCtxMetadata = exports.stripCtxMetadata = exports.CTX_METADATA_MIGRATION = exports.cleanupExpiredCtxMetadata = exports.getCtxMetadataMigration = exports.pgCtxMetadataStore = exports.memoryCtxMetadataStore = exports.MAX_TTL_SECONDS = exports.DEFAULT_MAX_VALUE_BYTES = exports.ADCP_INTERNAL_TAG = exports.CtxMetadataValidationError = exports.scopeCtxMetadataKey = exports.ctxMetadataResultKey = exports.createCtxMetadataStore = void 0;
|
|
9
|
+
exports.hasImplementationConfig = exports.stripImplementationConfig = exports.hasCtxMetadata = exports.stripCtxMetadata = exports.CTX_METADATA_MIGRATION = exports.cleanupExpiredCtxMetadata = exports.getCtxMetadataMigration = exports.pgCtxMetadataStore = exports.memoryCtxMetadataStore = exports.MAX_TTL_SECONDS = exports.DEFAULT_MAX_VALUE_BYTES = exports.ADCP_INTERNAL_TAG = exports.CtxMetadataValidationError = exports.scopeCtxMetadataKey = exports.ctxMetadataResultKey = exports.createCtxMetadataStore = void 0;
|
|
10
10
|
var store_1 = require("./store");
|
|
11
11
|
Object.defineProperty(exports, "createCtxMetadataStore", { enumerable: true, get: function () { return store_1.createCtxMetadataStore; } });
|
|
12
12
|
Object.defineProperty(exports, "ctxMetadataResultKey", { enumerable: true, get: function () { return store_1.ctxMetadataResultKey; } });
|
|
@@ -25,4 +25,6 @@ Object.defineProperty(exports, "CTX_METADATA_MIGRATION", { enumerable: true, get
|
|
|
25
25
|
var wire_shape_1 = require("./wire-shape");
|
|
26
26
|
Object.defineProperty(exports, "stripCtxMetadata", { enumerable: true, get: function () { return wire_shape_1.stripCtxMetadata; } });
|
|
27
27
|
Object.defineProperty(exports, "hasCtxMetadata", { enumerable: true, get: function () { return wire_shape_1.hasCtxMetadata; } });
|
|
28
|
+
Object.defineProperty(exports, "stripImplementationConfig", { enumerable: true, get: function () { return wire_shape_1.stripImplementationConfig; } });
|
|
29
|
+
Object.defineProperty(exports, "hasImplementationConfig", { enumerable: true, get: function () { return wire_shape_1.hasImplementationConfig; } });
|
|
28
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iCAQiB;AAPf,+GAAA,sBAAsB,OAAA;AACtB,6GAAA,oBAAoB,OAAA;AACpB,4GAAA,mBAAmB,OAAA;AACnB,mHAAA,0BAA0B,OAAA;AAC1B,0GAAA,iBAAiB,OAAA;AACjB,gHAAA,uBAAuB,OAAA;AACvB,wGAAA,eAAe,OAAA;AAYjB,4CAA2D;AAAlD,gHAAA,sBAAsB,OAAA;AAG/B,oCAKuB;AAJrB,wGAAA,kBAAkB,OAAA;AAClB,6GAAA,uBAAuB,OAAA;AACvB,+GAAA,yBAAyB,OAAA;AACzB,4GAAA,sBAAsB,OAAA;AAIxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iCAQiB;AAPf,+GAAA,sBAAsB,OAAA;AACtB,6GAAA,oBAAoB,OAAA;AACpB,4GAAA,mBAAmB,OAAA;AACnB,mHAAA,0BAA0B,OAAA;AAC1B,0GAAA,iBAAiB,OAAA;AACjB,gHAAA,uBAAuB,OAAA;AACvB,wGAAA,eAAe,OAAA;AAYjB,4CAA2D;AAAlD,gHAAA,sBAAsB,OAAA;AAG/B,oCAKuB;AAJrB,wGAAA,kBAAkB,OAAA;AAClB,6GAAA,uBAAuB,OAAA;AACvB,+GAAA,yBAAyB,OAAA;AACzB,4GAAA,sBAAsB,OAAA;AAIxB,2CAAoH;AAA3G,8GAAA,gBAAgB,OAAA;AAAE,4GAAA,cAAc,OAAA;AAAE,uHAAA,yBAAyB,OAAA;AAAE,qHAAA,uBAAuB,OAAA"}
|
|
@@ -52,4 +52,25 @@ export declare function stripCtxMetadata<T>(value: T): WireShape<T>;
|
|
|
52
52
|
* are clean — production code paths just call `stripCtxMetadata`.
|
|
53
53
|
*/
|
|
54
54
|
export declare function hasCtxMetadata(value: unknown): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Runtime strip for `Product.implementation_config`. Walks Product
|
|
57
|
+
* carrier locations in the response (top-level `products[]` plus
|
|
58
|
+
* single-product `product` slots inside `proposals[].products[]` etc.)
|
|
59
|
+
* and deletes the recipe field. Mutates in place.
|
|
60
|
+
*
|
|
61
|
+
* Adopters who deliberately want the recipe to ride to the buyer (rare;
|
|
62
|
+
* defeats the typed-on-server contract) can re-attach it in a
|
|
63
|
+
* post-strip hook — but the default is "strip, always."
|
|
64
|
+
*
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
export declare function stripImplementationConfig<T>(value: T): T;
|
|
68
|
+
/**
|
|
69
|
+
* Detect whether a payload contains `implementation_config` on any
|
|
70
|
+
* Product carrier. Test-suite helper — production paths call
|
|
71
|
+
* `stripImplementationConfig`.
|
|
72
|
+
*
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
75
|
+
export declare function hasImplementationConfig(value: unknown): boolean;
|
|
55
76
|
//# sourceMappingURL=wire-shape.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-shape.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/wire-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC5B,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAC3B,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,cAAc,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC3E,CAAC,CAAC;AAEV;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAI1D;
|
|
1
|
+
{"version":3,"file":"wire-shape.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/wire-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IACrB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC5B,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAC3B,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,cAAc,GAAG,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC3E,CAAC,CAAC;AAEV;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAI1D;AAsDD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGtD;AAgCD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAIxD;AAyBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG/D"}
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
exports.stripCtxMetadata = stripCtxMetadata;
|
|
22
22
|
exports.hasCtxMetadata = hasCtxMetadata;
|
|
23
|
+
exports.stripImplementationConfig = stripImplementationConfig;
|
|
24
|
+
exports.hasImplementationConfig = hasImplementationConfig;
|
|
23
25
|
const CTX_METADATA_KEY = 'ctx_metadata';
|
|
24
26
|
/**
|
|
25
27
|
* Runtime strip. Walks known carrier shapes in the response and
|
|
@@ -68,6 +70,13 @@ const CARRIER_KEYS = [
|
|
|
68
70
|
'collection_lists',
|
|
69
71
|
'asset',
|
|
70
72
|
'assets',
|
|
73
|
+
// Proposal-mode (v1.5 ProposalManager): committed proposals embed
|
|
74
|
+
// their own `products[]` slice. Without these carriers, ctx_metadata
|
|
75
|
+
// (and implementation_config, which shares this list) on
|
|
76
|
+
// `proposals[].products[]` survived the strip and leaked via the
|
|
77
|
+
// HITL handoff path. Surfaced by security review on PR #1562.
|
|
78
|
+
'proposal',
|
|
79
|
+
'proposals',
|
|
71
80
|
];
|
|
72
81
|
function stripFromCarrier(obj) {
|
|
73
82
|
if (CTX_METADATA_KEY in obj)
|
|
@@ -97,6 +106,108 @@ function hasCtxMetadata(value) {
|
|
|
97
106
|
return false;
|
|
98
107
|
return walkForCtxMetadata(value);
|
|
99
108
|
}
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
// Recipe `implementation_config` strip — Product-specific, parallel pattern
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
const IMPLEMENTATION_CONFIG_KEY = 'implementation_config';
|
|
113
|
+
/**
|
|
114
|
+
* Carrier locations for `implementation_config`. Recipes ride on
|
|
115
|
+
* `Product.implementation_config` per the v1.5 ProposalManager design;
|
|
116
|
+
* the field is opaque-to-buyer (typed-on-server) and must NOT cross to
|
|
117
|
+
* the buyer's wire response. Mirrors the `ctx_metadata` strip pattern.
|
|
118
|
+
*
|
|
119
|
+
* The wire `Product` shape's JSON schema is `additionalProperties: true`
|
|
120
|
+
* so the field is technically legal on the wire — but recipes carry
|
|
121
|
+
* upstream identifiers (network codes, line-item template ids, ad-unit
|
|
122
|
+
* ids, GAM line-item priority, etc.) that leak topology to buyers.
|
|
123
|
+
* Strip at the dispatcher seam, after the platform builds the wire
|
|
124
|
+
* shape and before the idempotency cache writes it.
|
|
125
|
+
*
|
|
126
|
+
* Carrier list mirrors `CARRIER_KEYS` (used by `stripCtxMetadata`)
|
|
127
|
+
* because future spec extensions may nest a Product under any
|
|
128
|
+
* resource carrier (e.g. `media_buys[].products[]`,
|
|
129
|
+
* `creatives[].assigned_packages[].product`). Reusing the same set
|
|
130
|
+
* keeps the two strips from silently diverging — adding a new wire
|
|
131
|
+
* carrier in `CARRIER_KEYS` for `ctx_metadata` automatically extends
|
|
132
|
+
* the implementation_config walk too. Surfaced by security review on
|
|
133
|
+
* PR #1562.
|
|
134
|
+
*/
|
|
135
|
+
const IMPL_CONFIG_CARRIER_KEYS = CARRIER_KEYS;
|
|
136
|
+
/**
|
|
137
|
+
* Runtime strip for `Product.implementation_config`. Walks Product
|
|
138
|
+
* carrier locations in the response (top-level `products[]` plus
|
|
139
|
+
* single-product `product` slots inside `proposals[].products[]` etc.)
|
|
140
|
+
* and deletes the recipe field. Mutates in place.
|
|
141
|
+
*
|
|
142
|
+
* Adopters who deliberately want the recipe to ride to the buyer (rare;
|
|
143
|
+
* defeats the typed-on-server contract) can re-attach it in a
|
|
144
|
+
* post-strip hook — but the default is "strip, always."
|
|
145
|
+
*
|
|
146
|
+
* @public
|
|
147
|
+
*/
|
|
148
|
+
function stripImplementationConfig(value) {
|
|
149
|
+
if (value == null || typeof value !== 'object')
|
|
150
|
+
return value;
|
|
151
|
+
stripImplConfigFromCarrier(value);
|
|
152
|
+
return value;
|
|
153
|
+
}
|
|
154
|
+
function stripImplConfigFromCarrier(obj) {
|
|
155
|
+
// Strip the field on the current object IF this object looks like a
|
|
156
|
+
// Product (has product_id). We don't strip blindly at every level
|
|
157
|
+
// because the field name could legitimately appear elsewhere (e.g.,
|
|
158
|
+
// a diagnostic envelope) in a future spec extension.
|
|
159
|
+
if ('product_id' in obj && IMPLEMENTATION_CONFIG_KEY in obj) {
|
|
160
|
+
delete obj[IMPLEMENTATION_CONFIG_KEY];
|
|
161
|
+
}
|
|
162
|
+
// Walk the shared carrier set (mirrors stripCtxMetadata) so future
|
|
163
|
+
// spec additions extending one strip automatically extend both.
|
|
164
|
+
for (const key of IMPL_CONFIG_CARRIER_KEYS) {
|
|
165
|
+
const nested = obj[key];
|
|
166
|
+
if (nested == null)
|
|
167
|
+
continue;
|
|
168
|
+
if (Array.isArray(nested)) {
|
|
169
|
+
for (const item of nested) {
|
|
170
|
+
if (item != null && typeof item === 'object')
|
|
171
|
+
stripImplConfigFromCarrier(item);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
else if (typeof nested === 'object') {
|
|
175
|
+
stripImplConfigFromCarrier(nested);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Detect whether a payload contains `implementation_config` on any
|
|
181
|
+
* Product carrier. Test-suite helper — production paths call
|
|
182
|
+
* `stripImplementationConfig`.
|
|
183
|
+
*
|
|
184
|
+
* @public
|
|
185
|
+
*/
|
|
186
|
+
function hasImplementationConfig(value) {
|
|
187
|
+
if (value == null || typeof value !== 'object')
|
|
188
|
+
return false;
|
|
189
|
+
return walkForImplConfig(value);
|
|
190
|
+
}
|
|
191
|
+
function walkForImplConfig(obj) {
|
|
192
|
+
if ('product_id' in obj && IMPLEMENTATION_CONFIG_KEY in obj)
|
|
193
|
+
return true;
|
|
194
|
+
for (const key of IMPL_CONFIG_CARRIER_KEYS) {
|
|
195
|
+
const nested = obj[key];
|
|
196
|
+
if (nested == null)
|
|
197
|
+
continue;
|
|
198
|
+
if (Array.isArray(nested)) {
|
|
199
|
+
for (const item of nested) {
|
|
200
|
+
if (item != null && typeof item === 'object' && walkForImplConfig(item))
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else if (typeof nested === 'object') {
|
|
205
|
+
if (walkForImplConfig(nested))
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
100
211
|
function walkForCtxMetadata(obj) {
|
|
101
212
|
if (CTX_METADATA_KEY in obj)
|
|
102
213
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire-shape.js","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/wire-shape.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAqCH,4CAIC;
|
|
1
|
+
{"version":3,"file":"wire-shape.js","sourceRoot":"","sources":["../../../../src/lib/server/ctx-metadata/wire-shape.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,6 +112,23 @@ export declare class AdcpError extends Error {
|
|
|
112
112
|
* one without going through `ctx.handoffToTask(fn)`.
|
|
113
113
|
*/
|
|
114
114
|
declare const TASK_HANDOFF_BRAND: unique symbol;
|
|
115
|
+
/**
|
|
116
|
+
* Optional overrides for `ctx.handoffToTask`.
|
|
117
|
+
*
|
|
118
|
+
* @public
|
|
119
|
+
*/
|
|
120
|
+
export interface TaskHandoffOptions {
|
|
121
|
+
/**
|
|
122
|
+
* Use this exact string as the `task_id` instead of letting the framework
|
|
123
|
+
* mint a fresh one. Required when an upstream system (or a test-controller
|
|
124
|
+
* directive such as `force_create_media_buy_arm`) has already issued the ID
|
|
125
|
+
* and the spec contract demands the response echoes it verbatim.
|
|
126
|
+
*
|
|
127
|
+
* Constraints: non-empty, ≤ 128 characters. Throws if violated.
|
|
128
|
+
* The caller is responsible for uniqueness within the account.
|
|
129
|
+
*/
|
|
130
|
+
task_id?: string;
|
|
131
|
+
}
|
|
115
132
|
/**
|
|
116
133
|
* Marker the framework recognizes as "promote this call to a task."
|
|
117
134
|
* Returned from `ctx.handoffToTask(fn)`. Type parameter `TResult` is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-outcome.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/async-outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEnF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,k8BAAkB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC;AA+B1C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAChC,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGzC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC/B,OAAO,EAAE;QACP;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;QACpD,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC;IAgBH,kFAAkF;IAClF,iBAAiB,IAAI,mBAAmB;IAYxC;;;;;;OAMG;IACM,QAAQ,IAAI,MAAM;CAG5B;AAMD;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,EAAE,OAAO,MAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"async-outcome.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/async-outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEnF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,k8BAAkB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC;AA+B1C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAChC,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGzC,IAAI,EAAE,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC/B,OAAO,EAAE;QACP;;;;;WAKG;QACH,QAAQ,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,UAAU,CAAC;QACpD,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC;IAgBH,kFAAkF;IAClF,iBAAiB,IAAI,mBAAmB;IAYxC;;;;;;OAMG;IACM,QAAQ,IAAI,MAAM;CAG5B;AAMD;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,EAAE,OAAO,MAAqD,CAAC;AAEvF;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,WAAW,CAAC,OAAO;IAClC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;CASrC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -19,7 +19,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
exports.AdcpError = exports.KNOWN_ERROR_CODES = void 0;
|
|
20
20
|
exports._createTaskHandoff = _createTaskHandoff;
|
|
21
21
|
exports.isTaskHandoff = isTaskHandoff;
|
|
22
|
-
exports.
|
|
22
|
+
exports._extractHandoffEntry = _extractHandoffEntry;
|
|
23
23
|
const enums_generated_1 = require("../../types/enums.generated");
|
|
24
24
|
const error_codes_1 = require("../../types/error-codes");
|
|
25
25
|
/**
|
|
@@ -140,32 +140,34 @@ exports.AdcpError = AdcpError;
|
|
|
140
140
|
*/
|
|
141
141
|
const TASK_HANDOFF_BRAND = Symbol.for('@adcp/decisioning/task-handoff');
|
|
142
142
|
/**
|
|
143
|
-
* The handoff
|
|
144
|
-
* marker object — NOT on the marker itself.
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
* type-visible field that adopters could forge with their own
|
|
143
|
+
* The handoff fn and options live in a WeakMap keyed by the `TaskHandoff`
|
|
144
|
+
* marker object — NOT on the marker itself. Both are stored atomically in a
|
|
145
|
+
* single entry so `isTaskHandoff` and `_extractHandoffEntry` always see a
|
|
146
|
+
* consistent pair. Closes round-6 CR-3 / Protocol-L2: `_taskFn` was
|
|
147
|
+
* previously a type-visible field that adopters could forge with their own
|
|
149
148
|
* `Symbol.for(...)` call.
|
|
150
149
|
*/
|
|
151
|
-
const
|
|
150
|
+
const taskHandoffEntries = new WeakMap();
|
|
152
151
|
/**
|
|
153
152
|
* Construct a `TaskHandoff<T>` marker. The framework's `ctx.handoffToTask`
|
|
154
153
|
* helper invokes this; adopters don't call it directly.
|
|
155
154
|
*
|
|
156
|
-
* The `fn`
|
|
157
|
-
* object. Adopters can hold the marker and pass it through
|
|
158
|
-
* values, but cannot extract or invoke `fn` themselves — only the
|
|
159
|
-
* framework's `
|
|
155
|
+
* The `fn` and `options` are stashed atomically in a module-private WeakMap
|
|
156
|
+
* keyed by the marker object. Adopters can hold the marker and pass it through
|
|
157
|
+
* return values, but cannot extract or invoke `fn` themselves — only the
|
|
158
|
+
* framework's `_extractHandoffEntry` can.
|
|
160
159
|
*
|
|
161
160
|
* @internal
|
|
162
161
|
*/
|
|
163
|
-
function _createTaskHandoff(fn) {
|
|
162
|
+
function _createTaskHandoff(fn, options) {
|
|
164
163
|
// Frozen object so adopters can't mutate the brand field. Even if
|
|
165
164
|
// they did, the dispatch seam keys on identity (WeakMap), not on
|
|
166
165
|
// mutable structure.
|
|
167
166
|
const marker = Object.freeze({ [TASK_HANDOFF_BRAND]: true });
|
|
168
|
-
|
|
167
|
+
taskHandoffEntries.set(marker, {
|
|
168
|
+
fn: fn,
|
|
169
|
+
options,
|
|
170
|
+
});
|
|
169
171
|
return marker;
|
|
170
172
|
}
|
|
171
173
|
/**
|
|
@@ -182,17 +184,20 @@ function isTaskHandoff(value) {
|
|
|
182
184
|
return (typeof value === 'object' &&
|
|
183
185
|
value !== null &&
|
|
184
186
|
value[TASK_HANDOFF_BRAND] === true &&
|
|
185
|
-
|
|
187
|
+
taskHandoffEntries.has(value));
|
|
186
188
|
}
|
|
187
189
|
/**
|
|
188
|
-
* Extract the handoff
|
|
190
|
+
* Extract the handoff fn and options from a marker. Framework-only — the
|
|
189
191
|
* dispatch seam in `from-platform.ts` calls this after `isTaskHandoff`.
|
|
190
192
|
* Returns `undefined` if the marker wasn't created by `_createTaskHandoff`
|
|
191
193
|
* (forgery).
|
|
192
194
|
*
|
|
193
195
|
* @internal
|
|
194
196
|
*/
|
|
195
|
-
function
|
|
196
|
-
|
|
197
|
+
function _extractHandoffEntry(handoff) {
|
|
198
|
+
const entry = taskHandoffEntries.get(handoff);
|
|
199
|
+
if (!entry)
|
|
200
|
+
return undefined;
|
|
201
|
+
return entry;
|
|
197
202
|
}
|
|
198
203
|
//# sourceMappingURL=async-outcome.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-outcome.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/async-outcome.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;
|
|
1
|
+
{"version":3,"file":"async-outcome.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/async-outcome.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,9 +23,10 @@
|
|
|
23
23
|
*/
|
|
24
24
|
import type { Account } from './account';
|
|
25
25
|
import type { Format, FormatReferenceStructuredObject, PropertyList, CollectionList } from '../../types/tools.generated';
|
|
26
|
-
import type { TaskHandoff, TaskHandoffContext } from './async-outcome';
|
|
26
|
+
import type { TaskHandoff, TaskHandoffContext, TaskHandoffOptions } from './async-outcome';
|
|
27
27
|
import type { CtxMetadataRef, ResourceKind } from '../ctx-metadata';
|
|
28
28
|
import type { BuyerAgent } from './buyer-agent';
|
|
29
|
+
import type { Recipe } from './proposal';
|
|
29
30
|
export interface RequestContext<TAccount = Account> {
|
|
30
31
|
/** Resolved account for this request. */
|
|
31
32
|
account: TAccount;
|
|
@@ -83,6 +84,24 @@ export interface RequestContext<TAccount = Account> {
|
|
|
83
84
|
* @public
|
|
84
85
|
*/
|
|
85
86
|
ctxMetadata?: CtxMetadataAccessor;
|
|
87
|
+
/**
|
|
88
|
+
* Hydrated typed recipes (`product_id -> Recipe`) for proposal-mode
|
|
89
|
+
* dispatch. Populated by the framework's v1.5 ProposalManager seams:
|
|
90
|
+
*
|
|
91
|
+
* - `createMediaBuy` with `proposal_id`: framework reserves the
|
|
92
|
+
* proposal, validates expiry + capability overlap, and writes the
|
|
93
|
+
* recipe map here BEFORE the adapter runs.
|
|
94
|
+
* - `updateMediaBuy` / `getMediaBuyDelivery`: framework hydrates
|
|
95
|
+
* via the `getByMediaBuyId` reverse-index.
|
|
96
|
+
*
|
|
97
|
+
* Adopters read this map to apply per-product internal-config
|
|
98
|
+
* (e.g., `recipe.line_item_template_id` on the matching adapter
|
|
99
|
+
* upstream call). Undefined when no proposal-mode dispatch is wired
|
|
100
|
+
* for the request — the v1 path leaves it untouched.
|
|
101
|
+
*
|
|
102
|
+
* @public
|
|
103
|
+
*/
|
|
104
|
+
recipes?: ReadonlyMap<string, Recipe>;
|
|
86
105
|
/**
|
|
87
106
|
* Hand off the call to a background task. Returns a `TaskHandoff<T>`
|
|
88
107
|
* marker — return that from your method to signal the framework should
|
|
@@ -111,8 +130,14 @@ export interface RequestContext<TAccount = Account> {
|
|
|
111
130
|
* return await this.commitSync(req);
|
|
112
131
|
* }
|
|
113
132
|
* ```
|
|
133
|
+
*
|
|
134
|
+
* Pass `options.task_id` when an upstream system or test-controller directive
|
|
135
|
+
* has already issued the task id and the spec contract requires the response
|
|
136
|
+
* to echo it verbatim (e.g. `force_create_media_buy_arm`). The framework uses
|
|
137
|
+
* the supplied id instead of minting a fresh one; `taskCtx.id` reflects it.
|
|
138
|
+
* Constraints: non-empty, ≤ 128 characters. Throws if violated.
|
|
114
139
|
*/
|
|
115
|
-
handoffToTask<TResult>(fn: (taskCtx: TaskHandoffContext) => Promise<TResult
|
|
140
|
+
handoffToTask<TResult>(fn: (taskCtx: TaskHandoffContext) => Promise<TResult>, options?: TaskHandoffOptions): TaskHandoff<TResult>;
|
|
116
141
|
}
|
|
117
142
|
export interface WorkflowStateReader {
|
|
118
143
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,MAAM,EACN,+BAA+B,EAC/B,YAAY,EACZ,cAAc,EACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* @packageDocumentation
|
|
11
11
|
*/
|
|
12
12
|
export { type AdcpStructuredError, type ErrorCode, AdcpError } from './async-outcome';
|
|
13
|
+
export type { TaskHandoffOptions } from './async-outcome';
|
|
13
14
|
export { PackageNotFoundError, MediaBuyNotFoundError, ProductNotFoundError, CreativeNotFoundError, ProductUnavailableError, CreativeRejectedError, BudgetTooLowError, BudgetExhaustedError, IdempotencyConflictError, InvalidRequestError, InvalidStateError, BackwardsTimeRangeError, AuthRequiredError, PermissionDeniedError, RateLimitedError, ServiceUnavailableError, UnsupportedFeatureError, ComplianceUnsatisfiedError, GovernanceDeniedError, PolicyViolationError, } from './errors-typed';
|
|
14
15
|
export type { CursorPage, CursorRequest } from './pagination';
|
|
15
16
|
export { publishStatusChange, setStatusChangeBus, getStatusChangeBus, createInMemoryStatusChangeBus, type StatusChange, type StatusChangeBus, type StatusChangeResourceType, type StatusChangeListener, type PublishStatusChangeOpts, } from './status-changes';
|
|
@@ -51,6 +52,9 @@ export { createTenantAdminRouter, createTenantAdminHandlers, mountTenantAdmin, t
|
|
|
51
52
|
export { batchPoll, validationError, upstreamError } from './helpers';
|
|
52
53
|
export type { RequestShape } from './helpers';
|
|
53
54
|
export { definePlatform, defineSalesPlatform, defineSalesCorePlatform, defineSalesIngestionPlatform, defineAudiencePlatform, defineSignalsPlatform, defineSponsoredIntelligencePlatform, defineCreativeBuilderPlatform, defineCreativeAdServerPlatform, defineCampaignGovernancePlatform, defineContentStandardsPlatform, definePropertyListsPlatform, defineCollectionListsPlatform, defineBrandRightsPlatform, definePlatformWithCompliance, } from './platform-helpers';
|
|
55
|
+
export type { ProposalManager, ProposalCapabilities, ProposalSalesSpecialism, Recipe, CapabilityOverlap, FinalizeProposalRequest, FinalizeProposalSuccess, ProposalState, ProposalRecord, ProposalStore, InMemoryProposalStoreOptions, MockProposalManagerOptions, } from './proposal';
|
|
56
|
+
export { validateProposalCapabilities, InMemoryProposalStore, MockProposalManager, enforceProposalExpiry, validateCapabilityOverlap, validateOverlapSubsetOfWire, detectFinalizeAction, setProposalLifecycleLogger, maybeInterceptFinalize, maybePersistDraftAfterGetProducts, maybeReserveProposalForCreateMediaBuy, finalizeProposalConsumption, releaseProposalReservation, maybeHydrateRecipesForMediaBuyId, } from './proposal';
|
|
57
|
+
export type { FinalizeActionRef, ProposalLifecycleLogger, FinalizeInterceptResult, ReservedProposal } from './proposal';
|
|
54
58
|
export { buildProduct, buildPricingOption, buildPackage } from './assembly-helpers';
|
|
55
59
|
export type { BuildProductInput, BuildPricingOptionInput, BuildPackageInput } from './assembly-helpers';
|
|
56
60
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
14
|
exports.resolveStartTime = exports.buildListCreativesResponse = exports.requireAsset = exports.getAsset = exports.createNoopJwksValidator = exports.createSelfSignedTenantKey = exports.createDefaultJwksValidator = exports.createTenantRegistry = exports.getDecisioningTaskRegistryMigration = exports.createPostgresTaskRegistry = exports.createInMemoryTaskRegistry = exports.validatePlatform = exports.PlatformConfigError = exports.getAllAdcpMigrations = exports.createAdcpServerFromPlatform = exports.requireOrgScope = exports.requireAdvertiserMatch = exports.requireAccountMatch = exports.composeMethod = exports.identityStatusMappers = exports.BuyerAgentRegistry = exports.narrowAccountRef = exports.createTenantStore = exports.refAccountId = exports.AccountNotFoundError = exports.createInMemoryStatusChangeBus = exports.getStatusChangeBus = exports.setStatusChangeBus = exports.publishStatusChange = exports.PolicyViolationError = exports.GovernanceDeniedError = exports.ComplianceUnsatisfiedError = exports.UnsupportedFeatureError = exports.ServiceUnavailableError = exports.RateLimitedError = exports.PermissionDeniedError = exports.AuthRequiredError = exports.BackwardsTimeRangeError = exports.InvalidStateError = exports.InvalidRequestError = exports.IdempotencyConflictError = exports.BudgetExhaustedError = exports.BudgetTooLowError = exports.CreativeRejectedError = exports.ProductUnavailableError = exports.CreativeNotFoundError = exports.ProductNotFoundError = exports.MediaBuyNotFoundError = exports.PackageNotFoundError = exports.AdcpError = void 0;
|
|
15
|
-
exports.buildPackage = exports.buildPricingOption = exports.buildProduct = exports.definePlatformWithCompliance = exports.defineBrandRightsPlatform = exports.defineCollectionListsPlatform = exports.definePropertyListsPlatform = exports.defineContentStandardsPlatform = exports.defineCampaignGovernancePlatform = exports.defineCreativeAdServerPlatform = exports.defineCreativeBuilderPlatform = exports.defineSponsoredIntelligencePlatform = exports.defineSignalsPlatform = exports.defineAudiencePlatform = exports.defineSalesIngestionPlatform = exports.defineSalesCorePlatform = exports.defineSalesPlatform = exports.definePlatform = exports.upstreamError = exports.validationError = exports.batchPoll = exports.mountTenantAdmin = exports.createTenantAdminHandlers = exports.createTenantAdminRouter = void 0;
|
|
15
|
+
exports.buildPackage = exports.buildPricingOption = exports.buildProduct = exports.maybeHydrateRecipesForMediaBuyId = exports.releaseProposalReservation = exports.finalizeProposalConsumption = exports.maybeReserveProposalForCreateMediaBuy = exports.maybePersistDraftAfterGetProducts = exports.maybeInterceptFinalize = exports.setProposalLifecycleLogger = exports.detectFinalizeAction = exports.validateOverlapSubsetOfWire = exports.validateCapabilityOverlap = exports.enforceProposalExpiry = exports.MockProposalManager = exports.InMemoryProposalStore = exports.validateProposalCapabilities = exports.definePlatformWithCompliance = exports.defineBrandRightsPlatform = exports.defineCollectionListsPlatform = exports.definePropertyListsPlatform = exports.defineContentStandardsPlatform = exports.defineCampaignGovernancePlatform = exports.defineCreativeAdServerPlatform = exports.defineCreativeBuilderPlatform = exports.defineSponsoredIntelligencePlatform = exports.defineSignalsPlatform = exports.defineAudiencePlatform = exports.defineSalesIngestionPlatform = exports.defineSalesCorePlatform = exports.defineSalesPlatform = exports.definePlatform = exports.upstreamError = exports.validationError = exports.batchPoll = exports.mountTenantAdmin = exports.createTenantAdminHandlers = exports.createTenantAdminRouter = void 0;
|
|
16
16
|
// Adopter-facing structured-error primitive.
|
|
17
17
|
//
|
|
18
18
|
// `AdcpError` is the canonical throwable for structured rejection. Specialism
|
|
@@ -156,6 +156,21 @@ Object.defineProperty(exports, "definePropertyListsPlatform", { enumerable: true
|
|
|
156
156
|
Object.defineProperty(exports, "defineCollectionListsPlatform", { enumerable: true, get: function () { return platform_helpers_1.defineCollectionListsPlatform; } });
|
|
157
157
|
Object.defineProperty(exports, "defineBrandRightsPlatform", { enumerable: true, get: function () { return platform_helpers_1.defineBrandRightsPlatform; } });
|
|
158
158
|
Object.defineProperty(exports, "definePlatformWithCompliance", { enumerable: true, get: function () { return platform_helpers_1.definePlatformWithCompliance; } });
|
|
159
|
+
var proposal_1 = require("./proposal");
|
|
160
|
+
Object.defineProperty(exports, "validateProposalCapabilities", { enumerable: true, get: function () { return proposal_1.validateProposalCapabilities; } });
|
|
161
|
+
Object.defineProperty(exports, "InMemoryProposalStore", { enumerable: true, get: function () { return proposal_1.InMemoryProposalStore; } });
|
|
162
|
+
Object.defineProperty(exports, "MockProposalManager", { enumerable: true, get: function () { return proposal_1.MockProposalManager; } });
|
|
163
|
+
Object.defineProperty(exports, "enforceProposalExpiry", { enumerable: true, get: function () { return proposal_1.enforceProposalExpiry; } });
|
|
164
|
+
Object.defineProperty(exports, "validateCapabilityOverlap", { enumerable: true, get: function () { return proposal_1.validateCapabilityOverlap; } });
|
|
165
|
+
Object.defineProperty(exports, "validateOverlapSubsetOfWire", { enumerable: true, get: function () { return proposal_1.validateOverlapSubsetOfWire; } });
|
|
166
|
+
Object.defineProperty(exports, "detectFinalizeAction", { enumerable: true, get: function () { return proposal_1.detectFinalizeAction; } });
|
|
167
|
+
Object.defineProperty(exports, "setProposalLifecycleLogger", { enumerable: true, get: function () { return proposal_1.setProposalLifecycleLogger; } });
|
|
168
|
+
Object.defineProperty(exports, "maybeInterceptFinalize", { enumerable: true, get: function () { return proposal_1.maybeInterceptFinalize; } });
|
|
169
|
+
Object.defineProperty(exports, "maybePersistDraftAfterGetProducts", { enumerable: true, get: function () { return proposal_1.maybePersistDraftAfterGetProducts; } });
|
|
170
|
+
Object.defineProperty(exports, "maybeReserveProposalForCreateMediaBuy", { enumerable: true, get: function () { return proposal_1.maybeReserveProposalForCreateMediaBuy; } });
|
|
171
|
+
Object.defineProperty(exports, "finalizeProposalConsumption", { enumerable: true, get: function () { return proposal_1.finalizeProposalConsumption; } });
|
|
172
|
+
Object.defineProperty(exports, "releaseProposalReservation", { enumerable: true, get: function () { return proposal_1.releaseProposalReservation; } });
|
|
173
|
+
Object.defineProperty(exports, "maybeHydrateRecipesForMediaBuyId", { enumerable: true, get: function () { return proposal_1.maybeHydrateRecipesForMediaBuyId; } });
|
|
159
174
|
// Wire-shape assembly helpers — emit correct Product / PricingOption /
|
|
160
175
|
// package shapes from intent-shaped input. Reduces 30+ lines of wire
|
|
161
176
|
// boilerplate per resource. Used in slim skill examples so LLMs scaffold
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;AAEH,6CAA6C;AAC7C,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,qCAAqC;AACrC,EAAE;AACF,yEAAyE;AACzE,yEAAyE;AACzE,yEAAyE;AACzE,oCAAoC;AACpC,iDAAsF;AAAnC,0GAAA,SAAS,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import type { BuyerAgentRegistry } from './buyer-agent';
|
|
|
15
15
|
import type { SessionContext, OnInstructionsError, MaybePromise } from '../create-adcp-server';
|
|
16
16
|
import type { StatusMappers } from './status-mappers';
|
|
17
17
|
import type { SalesPlatform, SalesCorePlatform, SalesIngestionPlatform } from './specialisms/sales';
|
|
18
|
+
import type { ProposalManager, Recipe } from './proposal';
|
|
18
19
|
import type { CreativeBuilderPlatform } from './specialisms/creative';
|
|
19
20
|
import type { CreativeAdServerPlatform } from './specialisms/creative-ad-server';
|
|
20
21
|
import type { AudiencePlatform } from './specialisms/audiences';
|
|
@@ -225,6 +226,22 @@ export interface DecisioningPlatform<TConfig = unknown, TCtxMeta = Record<string
|
|
|
225
226
|
collectionLists?: CollectionListsPlatform<TCtxMeta>;
|
|
226
227
|
/** @see DecisioningPlatform — § Cross-specialism dispatch (`acquireRights` is the canonical caller into `campaignGovernance.checkGovernance`). */
|
|
227
228
|
brandRights?: BrandRightsPlatform<TCtxMeta>;
|
|
229
|
+
/**
|
|
230
|
+
* Optional sibling that owns the proposal side of the two-platform
|
|
231
|
+
* composition (port of `adcp-client-python`'s `ProposalManager`). When
|
|
232
|
+
* present, the framework routes `get_products` and refine traffic to
|
|
233
|
+
* the manager instead of `sales.getProducts`; `sales` stays
|
|
234
|
+
* responsible for media-buy execution. Either side can be mock-backed
|
|
235
|
+
* independently — see `MockProposalManager`.
|
|
236
|
+
*
|
|
237
|
+
* **Status**: primitive types only. Framework dispatch wiring (the
|
|
238
|
+
* five seams that intercept `getProducts`, `createMediaBuy`,
|
|
239
|
+
* `updateMediaBuy`, `getMediaBuyDelivery` to persist drafts, hydrate
|
|
240
|
+
* recipes, and commit on finalize) lands in a follow-up release. v1.5
|
|
241
|
+
* adopters can already implement against this surface; the framework
|
|
242
|
+
* just doesn't drive the lifecycle yet.
|
|
243
|
+
*/
|
|
244
|
+
proposalManager?: ProposalManager<Recipe, TCtxMeta>;
|
|
228
245
|
}
|
|
229
246
|
/**
|
|
230
247
|
* Maps an AdCP specialism to the platform interface(s) it requires. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/platform.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/platform.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../../src/lib/server/decisioning/platform.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAwbH,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,sEAAsE;AACtE,iBAAiB"}
|