@getuserfeedback/protocol 1.4.0 → 1.6.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.
@@ -1,7 +1,53 @@
1
1
  import * as z from "zod/mini";
2
+ export declare const runtimeDisplayEligibilitySchema: z.ZodMiniObject<{
3
+ requiredCapabilities: z.ZodMiniDefault<z.ZodMiniArray<z.ZodMiniString<string>>>;
4
+ requiredPage: z.ZodMiniOptional<z.ZodMiniObject<{
5
+ path: z.ZodMiniString<string>;
6
+ }, z.core.$strip>>;
7
+ }, z.core.$strip>;
8
+ export declare const runtimeDisplayTriggerSchema: z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
9
+ kind: z.ZodMiniLiteral<"immediate">;
10
+ }, z.core.$strip>], "kind">;
11
+ export declare const runtimeDisplayBroadcastOpportunitySchema: z.ZodMiniObject<{
12
+ opportunityId: z.ZodMiniString<string>;
13
+ flowId: z.ZodMiniString<string>;
14
+ flowVersionId: z.ZodMiniString<string>;
15
+ source: z.ZodMiniObject<{
16
+ kind: z.ZodMiniLiteral<"runtime_broadcast">;
17
+ automationId: z.ZodMiniOptional<z.ZodMiniString<string>>;
18
+ automationVersionId: z.ZodMiniOptional<z.ZodMiniString<string>>;
19
+ }, z.core.$strip>;
20
+ runtimeEligibility: z.ZodMiniObject<{
21
+ requiredCapabilities: z.ZodMiniDefault<z.ZodMiniArray<z.ZodMiniString<string>>>;
22
+ requiredPage: z.ZodMiniOptional<z.ZodMiniObject<{
23
+ path: z.ZodMiniString<string>;
24
+ }, z.core.$strip>>;
25
+ }, z.core.$strip>;
26
+ runtimeTrigger: z.ZodMiniDefault<z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
27
+ kind: z.ZodMiniLiteral<"immediate">;
28
+ }, z.core.$strip>], "kind">>;
29
+ }, z.core.$strip>;
2
30
  export declare const runtimeDisplayBroadcastsSchema: z.ZodMiniObject<{
3
31
  version: z.ZodMiniString<string>;
4
- opportunities: z.ZodMiniArray<z.ZodMiniNever>;
32
+ opportunities: z.ZodMiniArray<z.ZodMiniObject<{
33
+ opportunityId: z.ZodMiniString<string>;
34
+ flowId: z.ZodMiniString<string>;
35
+ flowVersionId: z.ZodMiniString<string>;
36
+ source: z.ZodMiniObject<{
37
+ kind: z.ZodMiniLiteral<"runtime_broadcast">;
38
+ automationId: z.ZodMiniOptional<z.ZodMiniString<string>>;
39
+ automationVersionId: z.ZodMiniOptional<z.ZodMiniString<string>>;
40
+ }, z.core.$strip>;
41
+ runtimeEligibility: z.ZodMiniObject<{
42
+ requiredCapabilities: z.ZodMiniDefault<z.ZodMiniArray<z.ZodMiniString<string>>>;
43
+ requiredPage: z.ZodMiniOptional<z.ZodMiniObject<{
44
+ path: z.ZodMiniString<string>;
45
+ }, z.core.$strip>>;
46
+ }, z.core.$strip>;
47
+ runtimeTrigger: z.ZodMiniDefault<z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
48
+ kind: z.ZodMiniLiteral<"immediate">;
49
+ }, z.core.$strip>], "kind">>;
50
+ }, z.core.$strip>>;
5
51
  }, z.core.$strip>;
6
52
  export declare const flowDisplaySyncRequestSchema: z.ZodMiniObject<{
7
53
  identities: z.ZodMiniDefault<z.ZodMiniArray<z.ZodMiniObject<{
@@ -131,10 +177,31 @@ export declare const flowDisplaySyncResponseSchema: z.ZodMiniObject<{
131
177
  }, z.core.$strip>;
132
178
  broadcasts: z.ZodMiniObject<{
133
179
  version: z.ZodMiniString<string>;
134
- opportunities: z.ZodMiniArray<z.ZodMiniNever>;
180
+ opportunities: z.ZodMiniArray<z.ZodMiniObject<{
181
+ opportunityId: z.ZodMiniString<string>;
182
+ flowId: z.ZodMiniString<string>;
183
+ flowVersionId: z.ZodMiniString<string>;
184
+ source: z.ZodMiniObject<{
185
+ kind: z.ZodMiniLiteral<"runtime_broadcast">;
186
+ automationId: z.ZodMiniOptional<z.ZodMiniString<string>>;
187
+ automationVersionId: z.ZodMiniOptional<z.ZodMiniString<string>>;
188
+ }, z.core.$strip>;
189
+ runtimeEligibility: z.ZodMiniObject<{
190
+ requiredCapabilities: z.ZodMiniDefault<z.ZodMiniArray<z.ZodMiniString<string>>>;
191
+ requiredPage: z.ZodMiniOptional<z.ZodMiniObject<{
192
+ path: z.ZodMiniString<string>;
193
+ }, z.core.$strip>>;
194
+ }, z.core.$strip>;
195
+ runtimeTrigger: z.ZodMiniDefault<z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
196
+ kind: z.ZodMiniLiteral<"immediate">;
197
+ }, z.core.$strip>], "kind">>;
198
+ }, z.core.$strip>>;
135
199
  }, z.core.$strip>;
136
200
  }, z.core.$strip>;
137
201
  export type RuntimeDisplayBroadcasts = z.output<typeof runtimeDisplayBroadcastsSchema>;
202
+ export type RuntimeDisplayBroadcastOpportunity = z.output<typeof runtimeDisplayBroadcastOpportunitySchema>;
203
+ export type RuntimeDisplayEligibility = z.output<typeof runtimeDisplayEligibilitySchema>;
204
+ export type RuntimeDisplayTrigger = z.output<typeof runtimeDisplayTriggerSchema>;
138
205
  export type FlowDisplaySyncRequest = z.output<typeof flowDisplaySyncRequestSchema>;
139
206
  export type FlowDisplaySyncResponse = z.output<typeof flowDisplaySyncResponseSchema>;
140
207
  //# sourceMappingURL=flow-display.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow-display.d.ts","sourceRoot":"","sources":["../src/flow-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAQ9B,eAAO,MAAM,8BAA8B;;;iBAGzC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASvC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMxC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAC9C,OAAO,8BAA8B,CACrC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC5C,OAAO,4BAA4B,CACnC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAC7C,OAAO,6BAA6B,CACpC,CAAC"}
1
+ {"version":3,"file":"flow-display.d.ts","sourceRoot":"","sources":["../src/flow-display.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAQ9B,eAAO,MAAM,+BAA+B;;;;;iBAU1C,CAAC;AAMH,eAAO,MAAM,2BAA2B;;2BAItC,CAAC;AAEH,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;iBAcnD,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;iBAGzC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASvC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMxC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAC9C,OAAO,8BAA8B,CACrC,CAAC;AACF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CACxD,OAAO,wCAAwC,CAC/C,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAC/C,OAAO,+BAA+B,CACtC,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAC3C,OAAO,2BAA2B,CAClC,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAC5C,OAAO,4BAA4B,CACnC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAC7C,OAAO,6BAA6B,CACpC,CAAC"}
@@ -1,8 +1,34 @@
1
1
  import * as z from "zod/mini";
2
2
  import { flowAssignmentIdentitySchema, flowAssignmentRecordSchema, flowAssignmentTargetingContextSchema, } from "./flow-assignments.js";
3
+ export const runtimeDisplayEligibilitySchema = z.object({
4
+ requiredCapabilities: z._default(z.array(z.string().check(z.trim(), z.minLength(1))), []),
5
+ requiredPage: z.optional(z.object({
6
+ path: z.string().check(z.trim(), z.minLength(1)),
7
+ })),
8
+ });
9
+ const immediateRuntimeDisplayTrigger = {
10
+ kind: "immediate",
11
+ };
12
+ export const runtimeDisplayTriggerSchema = z.discriminatedUnion("kind", [
13
+ z.object({
14
+ kind: z.literal("immediate"),
15
+ }),
16
+ ]);
17
+ export const runtimeDisplayBroadcastOpportunitySchema = z.object({
18
+ opportunityId: z.string().check(z.trim(), z.minLength(1)),
19
+ flowId: z.string().check(z.trim(), z.minLength(1)),
20
+ flowVersionId: z.string().check(z.trim(), z.minLength(1)),
21
+ source: z.object({
22
+ kind: z.literal("runtime_broadcast"),
23
+ automationId: z.optional(z.string().check(z.trim(), z.minLength(1))),
24
+ automationVersionId: z.optional(z.string().check(z.trim(), z.minLength(1))),
25
+ }),
26
+ runtimeEligibility: runtimeDisplayEligibilitySchema,
27
+ runtimeTrigger: z._default(runtimeDisplayTriggerSchema, immediateRuntimeDisplayTrigger),
28
+ });
3
29
  export const runtimeDisplayBroadcastsSchema = z.object({
4
30
  version: z.string().check(z.trim(), z.minLength(1)),
5
- opportunities: z.array(z.never()),
31
+ opportunities: z.array(runtimeDisplayBroadcastOpportunitySchema),
6
32
  });
7
33
  export const flowDisplaySyncRequestSchema = z.object({
8
34
  identities: z._default(z.array(flowAssignmentIdentitySchema), []),
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export { DEFAULT_AUTO_DETECT_COLOR_SCHEME_ATTRS } from "./defaults.js";
4
4
  export type { ErrorEvent, ProtocolErrorCode } from "./errors.js";
5
5
  export { ErrorCategory, ErrorCategorySchema, ErrorEventSchema, ProtocolError, } from "./errors.js";
6
6
  export { type ClaimPendingFlowAssignmentsRequest, type ClaimPendingFlowAssignmentsResponse, claimPendingFlowAssignmentsRequestSchema, claimPendingFlowAssignmentsResponseSchema, type FlowAssignmentExternalIdIdentityTypeValue, type FlowAssignmentIdentityTypeValue, type FlowAssignmentRecipientRequest, type FlowAssignmentRecord, type FlowAssignmentStatus, type FlowAssignmentTargetingContext, flowAssignmentRecipientRequestSchema, flowAssignmentRecordSchema, flowAssignmentStatusSchema, flowAssignmentTargetingContextSchema, type ListPendingFlowAssignmentsResponse, listPendingFlowAssignmentsResponseSchema, nullableUpdateFlowAssignmentLifecycleResponseSchema, type ReleaseFlowAssignmentClaimRequest, type ReleaseFlowAssignmentClaimResponse, releaseFlowAssignmentClaimRequestSchema, releaseFlowAssignmentClaimResponseSchema, type UpdateFlowAssignmentLifecycleRequest, type UpdateFlowAssignmentLifecycleResponse, updateFlowAssignmentLifecycleRequestSchema, updateFlowAssignmentLifecycleResponseSchema, } from "./flow-assignments.js";
7
- export { type FlowDisplaySyncRequest, type FlowDisplaySyncResponse, flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, type RuntimeDisplayBroadcasts, runtimeDisplayBroadcastsSchema, } from "./flow-display.js";
7
+ export { type FlowDisplaySyncRequest, type FlowDisplaySyncResponse, flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, type RuntimeDisplayBroadcastOpportunity, type RuntimeDisplayBroadcasts, type RuntimeDisplayEligibility, type RuntimeDisplayTrigger, runtimeDisplayBroadcastOpportunitySchema, runtimeDisplayBroadcastsSchema, runtimeDisplayEligibilitySchema, runtimeDisplayTriggerSchema, } from "./flow-display.js";
8
8
  export { buildIdentityTypeGuidanceMessage, getIdentityTypeSuggestion, IDENTITY_TYPE_VALUES, type IdentityTypeValue, isIdentityTypeValue, type StandardIdentityTypeValue, } from "./identity-type.js";
9
9
  export { isPublicGrantScope, type PublicGrantScope, publicGrantScopeIdSchema, } from "./public-grant-scope.js";
10
10
  export { type RuntimeEndpoints, resolveApiBaseUrl, resolveCoreUrl, resolveTrpcBaseUrl, runtimeEndpointsSchema, } from "./runtime-endpoints.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,EAC3B,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,KAAK,UAAU,EACf,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sCAAsC,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACN,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,wCAAwC,EACxC,yCAAyC,EACzC,KAAK,yCAAyC,EAC9C,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,8BAA8B,EACnC,oCAAoC,EACpC,0BAA0B,EAC1B,0BAA0B,EAC1B,oCAAoC,EACpC,KAAK,kCAAkC,EACvC,wCAAwC,EACxC,mDAAmD,EACnD,KAAK,iCAAiC,EACtC,KAAK,kCAAkC,EACvC,uCAAuC,EACvC,wCAAwC,EACxC,KAAK,oCAAoC,EACzC,KAAK,qCAAqC,EAC1C,0CAA0C,EAC1C,2CAA2C,GAC3C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,KAAK,wBAAwB,EAC7B,8BAA8B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,gCAAgC,EAChC,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,KAAK,yBAAyB,GAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,wBAAwB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,YAAY,EACZ,OAAO,EACP,UAAU,EACV,SAAS,EACT,KAAK,KAAK,EACV,KAAK,SAAS,EACd,aAAa,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,KAAK,mBAAmB,EACxB,yBAAyB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,KAAK,sBAAsB,EAC3B,4BAA4B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,kCAAkC,EAClC,+BAA+B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,4BAA4B,EAC5B,+BAA+B,EAC/B,mCAAmC,EACnC,gCAAgC,GAChC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,6BAA6B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,2BAA2B,EAChC,iCAAiC,EACjC,KAAK,mBAAmB,EACxB,2BAA2B,EAC3B,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC7B,yBAAyB,EACzB,iBAAiB,EACjB,8BAA8B,EAC9B,KAAK,oBAAoB,EACzB,0BAA0B,GAC1B,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ export { clientMetaSchema, } from "./client-meta.js";
3
3
  export { DEFAULT_AUTO_DETECT_COLOR_SCHEME_ATTRS } from "./defaults.js";
4
4
  export { ErrorCategory, ErrorCategorySchema, ErrorEventSchema, ProtocolError, } from "./errors.js";
5
5
  export { claimPendingFlowAssignmentsRequestSchema, claimPendingFlowAssignmentsResponseSchema, flowAssignmentRecipientRequestSchema, flowAssignmentRecordSchema, flowAssignmentStatusSchema, flowAssignmentTargetingContextSchema, listPendingFlowAssignmentsResponseSchema, nullableUpdateFlowAssignmentLifecycleResponseSchema, releaseFlowAssignmentClaimRequestSchema, releaseFlowAssignmentClaimResponseSchema, updateFlowAssignmentLifecycleRequestSchema, updateFlowAssignmentLifecycleResponseSchema, } from "./flow-assignments.js";
6
- export { flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, runtimeDisplayBroadcastsSchema, } from "./flow-display.js";
6
+ export { flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, runtimeDisplayBroadcastOpportunitySchema, runtimeDisplayBroadcastsSchema, runtimeDisplayEligibilitySchema, runtimeDisplayTriggerSchema, } from "./flow-display.js";
7
7
  export { buildIdentityTypeGuidanceMessage, getIdentityTypeSuggestion, IDENTITY_TYPE_VALUES, isIdentityTypeValue, } from "./identity-type.js";
8
8
  export { isPublicGrantScope, publicGrantScopeIdSchema, } from "./public-grant-scope.js";
9
9
  export { resolveApiBaseUrl, resolveCoreUrl, resolveTrpcBaseUrl, runtimeEndpointsSchema, } from "./runtime-endpoints.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getuserfeedback/protocol",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "getuserfeedback widget protocol — host surface and (later) wire protocol",
5
5
  "keywords": [
6
6
  "getuserfeedback",
@@ -53,4 +53,82 @@ describe("flow display sync contracts", () => {
53
53
  expect(result.assignments.claimed[0]?.flowAssignmentId).toBe("fa_1");
54
54
  expect(result.broadcasts.opportunities).toEqual([]);
55
55
  });
56
+
57
+ it("accepts runtime broadcast opportunities", () => {
58
+ const result = flowDisplaySyncResponseSchema.parse({
59
+ fetchedAt: "2026-06-18T00:00:00.000Z",
60
+ assignments: {
61
+ claimed: [],
62
+ },
63
+ broadcasts: {
64
+ version: "broadcasts_1",
65
+ opportunities: [
66
+ {
67
+ opportunityId: "rtb_daver_1",
68
+ flowId: "sur_1",
69
+ flowVersionId: "flv_1",
70
+ source: {
71
+ kind: "runtime_broadcast",
72
+ automationId: "dauto_1",
73
+ automationVersionId: "daver_1",
74
+ },
75
+ runtimeEligibility: {
76
+ requiredCapabilities: ["checkout.drawer"],
77
+ requiredPage: { path: "/checkout/*" },
78
+ },
79
+ runtimeTrigger: {
80
+ kind: "immediate",
81
+ },
82
+ },
83
+ ],
84
+ },
85
+ });
86
+
87
+ expect(result.broadcasts.opportunities[0]).toEqual({
88
+ opportunityId: "rtb_daver_1",
89
+ flowId: "sur_1",
90
+ flowVersionId: "flv_1",
91
+ source: {
92
+ kind: "runtime_broadcast",
93
+ automationId: "dauto_1",
94
+ automationVersionId: "daver_1",
95
+ },
96
+ runtimeEligibility: {
97
+ requiredCapabilities: ["checkout.drawer"],
98
+ requiredPage: { path: "/checkout/*" },
99
+ },
100
+ runtimeTrigger: {
101
+ kind: "immediate",
102
+ },
103
+ });
104
+ });
105
+
106
+ it("defaults legacy runtime broadcast opportunities to an immediate runtime trigger", () => {
107
+ const result = flowDisplaySyncResponseSchema.parse({
108
+ fetchedAt: "2026-06-18T00:00:00.000Z",
109
+ assignments: {
110
+ claimed: [],
111
+ },
112
+ broadcasts: {
113
+ version: "broadcasts_1",
114
+ opportunities: [
115
+ {
116
+ opportunityId: "rtb_daver_1",
117
+ flowId: "sur_1",
118
+ flowVersionId: "flv_1",
119
+ source: {
120
+ kind: "runtime_broadcast",
121
+ },
122
+ runtimeEligibility: {
123
+ requiredCapabilities: [],
124
+ },
125
+ },
126
+ ],
127
+ },
128
+ });
129
+
130
+ expect(result.broadcasts.opportunities[0]?.runtimeTrigger).toEqual({
131
+ kind: "immediate",
132
+ });
133
+ });
56
134
  });
@@ -6,9 +6,47 @@ import {
6
6
  flowAssignmentTargetingContextSchema,
7
7
  } from "./flow-assignments.js";
8
8
 
9
+ export const runtimeDisplayEligibilitySchema = z.object({
10
+ requiredCapabilities: z._default(
11
+ z.array(z.string().check(z.trim(), z.minLength(1))),
12
+ [],
13
+ ),
14
+ requiredPage: z.optional(
15
+ z.object({
16
+ path: z.string().check(z.trim(), z.minLength(1)),
17
+ }),
18
+ ),
19
+ });
20
+
21
+ const immediateRuntimeDisplayTrigger = {
22
+ kind: "immediate",
23
+ } as const;
24
+
25
+ export const runtimeDisplayTriggerSchema = z.discriminatedUnion("kind", [
26
+ z.object({
27
+ kind: z.literal("immediate"),
28
+ }),
29
+ ]);
30
+
31
+ export const runtimeDisplayBroadcastOpportunitySchema = z.object({
32
+ opportunityId: z.string().check(z.trim(), z.minLength(1)),
33
+ flowId: z.string().check(z.trim(), z.minLength(1)),
34
+ flowVersionId: z.string().check(z.trim(), z.minLength(1)),
35
+ source: z.object({
36
+ kind: z.literal("runtime_broadcast"),
37
+ automationId: z.optional(z.string().check(z.trim(), z.minLength(1))),
38
+ automationVersionId: z.optional(z.string().check(z.trim(), z.minLength(1))),
39
+ }),
40
+ runtimeEligibility: runtimeDisplayEligibilitySchema,
41
+ runtimeTrigger: z._default(
42
+ runtimeDisplayTriggerSchema,
43
+ immediateRuntimeDisplayTrigger,
44
+ ),
45
+ });
46
+
9
47
  export const runtimeDisplayBroadcastsSchema = z.object({
10
48
  version: z.string().check(z.trim(), z.minLength(1)),
11
- opportunities: z.array(z.never()),
49
+ opportunities: z.array(runtimeDisplayBroadcastOpportunitySchema),
12
50
  });
13
51
 
14
52
  export const flowDisplaySyncRequestSchema = z.object({
@@ -33,6 +71,15 @@ export const flowDisplaySyncResponseSchema = z.object({
33
71
  export type RuntimeDisplayBroadcasts = z.output<
34
72
  typeof runtimeDisplayBroadcastsSchema
35
73
  >;
74
+ export type RuntimeDisplayBroadcastOpportunity = z.output<
75
+ typeof runtimeDisplayBroadcastOpportunitySchema
76
+ >;
77
+ export type RuntimeDisplayEligibility = z.output<
78
+ typeof runtimeDisplayEligibilitySchema
79
+ >;
80
+ export type RuntimeDisplayTrigger = z.output<
81
+ typeof runtimeDisplayTriggerSchema
82
+ >;
36
83
  export type FlowDisplaySyncRequest = z.output<
37
84
  typeof flowDisplaySyncRequestSchema
38
85
  >;
package/src/index.ts CHANGED
@@ -66,8 +66,14 @@ export {
66
66
  type FlowDisplaySyncResponse,
67
67
  flowDisplaySyncRequestSchema,
68
68
  flowDisplaySyncResponseSchema,
69
+ type RuntimeDisplayBroadcastOpportunity,
69
70
  type RuntimeDisplayBroadcasts,
71
+ type RuntimeDisplayEligibility,
72
+ type RuntimeDisplayTrigger,
73
+ runtimeDisplayBroadcastOpportunitySchema,
70
74
  runtimeDisplayBroadcastsSchema,
75
+ runtimeDisplayEligibilitySchema,
76
+ runtimeDisplayTriggerSchema,
71
77
  } from "./flow-display.js";
72
78
  export {
73
79
  buildIdentityTypeGuidanceMessage,