@getuserfeedback/protocol 3.0.5 → 3.0.7

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.
@@ -11,4 +11,5 @@ export * from "./lazy-handle-client.js";
11
11
  export { createCommandRequestId } from "./request-id.js";
12
12
  export * from "./sdk-types.js";
13
13
  export { createUniqueId } from "./unique-id.js";
14
+ export * from "./widget-layout-size-update.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,cAAc,gCAAgC,CAAC"}
@@ -11,3 +11,4 @@ export * from "./lazy-handle-client.js";
11
11
  export { createCommandRequestId } from "./request-id.js";
12
12
  export * from "./sdk-types.js";
13
13
  export { createUniqueId } from "./unique-id.js";
14
+ export * from "./widget-layout-size-update.js";
@@ -0,0 +1,15 @@
1
+ export type WidgetLayoutSize = {
2
+ width: number;
3
+ height: number;
4
+ };
5
+ export type WidgetLayoutSizeTransition = {
6
+ kind: "instant";
7
+ durationMs: 0;
8
+ };
9
+ export type WidgetLayoutSizeUpdate = {
10
+ size: WidgetLayoutSize;
11
+ transition: WidgetLayoutSizeTransition;
12
+ };
13
+ export declare const INSTANT_WIDGET_LAYOUT_SIZE_TRANSITION: WidgetLayoutSizeTransition;
14
+ export declare function toInstantWidgetLayoutSizeUpdate(size: WidgetLayoutSize): WidgetLayoutSizeUpdate;
15
+ //# sourceMappingURL=widget-layout-size-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-layout-size-update.d.ts","sourceRoot":"","sources":["../../src/host/widget-layout-size-update.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,CAAC,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,0BAA0B,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,0BAIlD,CAAC;AAEH,wBAAgB,+BAA+B,CAC9C,IAAI,EAAE,gBAAgB,GACpB,sBAAsB,CAKxB"}
@@ -0,0 +1,10 @@
1
+ export const INSTANT_WIDGET_LAYOUT_SIZE_TRANSITION = {
2
+ kind: "instant",
3
+ durationMs: 0,
4
+ };
5
+ export function toInstantWidgetLayoutSizeUpdate(size) {
6
+ return {
7
+ size: { ...size },
8
+ transition: INSTANT_WIDGET_LAYOUT_SIZE_TRANSITION,
9
+ };
10
+ }
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export { type ClaimPendingFlowAssignmentsRequest, type ClaimPendingFlowAssignmen
9
9
  export { type FlowDisplaySyncRequest, type FlowDisplaySyncResponse, flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, type RuntimeDisplayAttentionPolicy, type RuntimeDisplayBroadcastOpportunity, type RuntimeDisplayBroadcasts, type RuntimeDisplayEligibility, type RuntimeDisplayTrigger, runtimeDisplayAttentionPolicySchema, runtimeDisplayBroadcastOpportunitySchema, runtimeDisplayBroadcastsSchema, runtimeDisplayEligibilitySchema, runtimeDisplayTriggerSchema, } from "./flow-display.js";
10
10
  export { buildIdentityTypeGuidanceMessage, getIdentityTypeSuggestion, IDENTITY_TYPE_VALUES, type IdentityTypeValue, isIdentityTypeValue, type StandardIdentityTypeValue, } from "./identity-type.js";
11
11
  export { type PreviewConnectionPairRequest, type PreviewConnectionPairResponse, previewConnectionPairRequestSchema, previewConnectionPairResponseSchema, } from "./preview-connection.js";
12
+ export { PREVIEW_PAIRING_TRANSPORT_SOURCE, type PreviewPairingHostAck, type PreviewPairingHostRequest, type PreviewPairingHostResult, previewPairingHostAckSchema, previewPairingHostRequestSchema, previewPairingHostResultSchema, } from "./preview-pairing-transport.js";
12
13
  export { isPublicGrantScope, type PublicGrantScope, publicGrantScopeIdSchema, } from "./public-grant-scope.js";
13
14
  export { type RuntimeEndpoints, resolveApiBaseUrl, resolveCoreUrl, resolveRealtimeUrl, resolveTrpcBaseUrl, runtimeEndpointsSchema, } from "./runtime-endpoints.js";
14
15
  export { getScopeMeta, isScope, listScopes, SCOPE_IDS, type Scope, type ScopeMeta, scopeIdSchema, } from "./scopes.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { claimPendingFlowAssignmentsRequestSchema, claimPendingFlowAssignmentsRe
8
8
  export { flowDisplaySyncRequestSchema, flowDisplaySyncResponseSchema, runtimeDisplayAttentionPolicySchema, runtimeDisplayBroadcastOpportunitySchema, runtimeDisplayBroadcastsSchema, runtimeDisplayEligibilitySchema, runtimeDisplayTriggerSchema, } from "./flow-display.js";
9
9
  export { buildIdentityTypeGuidanceMessage, getIdentityTypeSuggestion, IDENTITY_TYPE_VALUES, isIdentityTypeValue, } from "./identity-type.js";
10
10
  export { previewConnectionPairRequestSchema, previewConnectionPairResponseSchema, } from "./preview-connection.js";
11
+ export { PREVIEW_PAIRING_TRANSPORT_SOURCE, previewPairingHostAckSchema, previewPairingHostRequestSchema, previewPairingHostResultSchema, } from "./preview-pairing-transport.js";
11
12
  export { isPublicGrantScope, publicGrantScopeIdSchema, } from "./public-grant-scope.js";
12
13
  export { resolveApiBaseUrl, resolveCoreUrl, resolveRealtimeUrl, resolveTrpcBaseUrl, runtimeEndpointsSchema, } from "./runtime-endpoints.js";
13
14
  export { getScopeMeta, isScope, listScopes, SCOPE_IDS, scopeIdSchema, } from "./scopes.js";
@@ -2,6 +2,7 @@ import * as z from "zod/mini";
2
2
  export declare const previewConnectionPairRequestSchema: z.ZodMiniObject<{
3
3
  capabilities: z.ZodMiniArray<z.ZodMiniString<string>>;
4
4
  expectedRevision: z.ZodMiniNumber<number>;
5
+ pairedAppApiKey: z.ZodMiniOptional<z.ZodMiniString<string>>;
5
6
  pairedIdentity: z.ZodMiniString<string>;
6
7
  pairedUrl: z.ZodMiniNullable<z.ZodMiniURL>;
7
8
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"preview-connection.d.ts","sourceRoot":"","sources":["../src/preview-connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAI9B,eAAO,MAAM,kCAAkC;;;;;iBAK7C,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;;;iBAS9C,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAClD,OAAO,kCAAkC,CACzC,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CACnD,OAAO,mCAAmC,CAC1C,CAAC"}
1
+ {"version":3,"file":"preview-connection.d.ts","sourceRoot":"","sources":["../src/preview-connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAI9B,eAAO,MAAM,kCAAkC;;;;;;iBAM7C,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;;;iBAS9C,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAClD,OAAO,kCAAkC,CACzC,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CACnD,OAAO,mCAAmC,CAC1C,CAAC"}
@@ -3,6 +3,7 @@ const nonEmptyStringSchema = z.string().check(z.trim(), z.minLength(1));
3
3
  export const previewConnectionPairRequestSchema = z.object({
4
4
  capabilities: z.array(nonEmptyStringSchema),
5
5
  expectedRevision: z.number().check(z.int(), z.positive()),
6
+ pairedAppApiKey: z.optional(nonEmptyStringSchema),
6
7
  pairedIdentity: nonEmptyStringSchema,
7
8
  pairedUrl: z.nullable(z.url()),
8
9
  });
@@ -0,0 +1,44 @@
1
+ import * as z from "zod/mini";
2
+ export declare const PREVIEW_PAIRING_TRANSPORT_SOURCE = "getuserfeedback.preview";
3
+ export declare const previewPairingHostRequestSchema: z.ZodMiniObject<{
4
+ source: z.ZodMiniLiteral<"getuserfeedback.preview">;
5
+ type: z.ZodMiniLiteral<"preview.connection.pair.request">;
6
+ requestId: z.ZodMiniString<string>;
7
+ previewToken: z.ZodMiniString<string>;
8
+ expectedRevision: z.ZodMiniNumber<number>;
9
+ capabilities: z.ZodMiniArray<z.ZodMiniString<string>>;
10
+ }, z.core.$strip>;
11
+ export declare const previewPairingHostAckSchema: z.ZodMiniObject<{
12
+ source: z.ZodMiniLiteral<"getuserfeedback.preview">;
13
+ type: z.ZodMiniLiteral<"preview.connection.pair.ack">;
14
+ requestId: z.ZodMiniString<string>;
15
+ }, z.core.$strip>;
16
+ export declare const previewPairingHostResultSchema: z.ZodMiniDiscriminatedUnion<[z.ZodMiniObject<{
17
+ source: z.ZodMiniLiteral<"getuserfeedback.preview">;
18
+ type: z.ZodMiniLiteral<"preview.connection.pair.result">;
19
+ requestId: z.ZodMiniString<string>;
20
+ ok: z.ZodMiniLiteral<true>;
21
+ result: z.ZodMiniObject<{
22
+ appId: z.ZodMiniString<string>;
23
+ capabilities: z.ZodMiniArray<z.ZodMiniString<string>>;
24
+ id: z.ZodMiniString<string>;
25
+ organizationId: z.ZodMiniString<string>;
26
+ pairedAt: z.ZodMiniNullable<z.ZodMiniString<string>>;
27
+ pairedIdentity: z.ZodMiniNullable<z.ZodMiniString<string>>;
28
+ pairedUrl: z.ZodMiniNullable<z.ZodMiniURL>;
29
+ revision: z.ZodMiniNumber<number>;
30
+ }, z.core.$strip>;
31
+ }, z.core.$strip>, z.ZodMiniObject<{
32
+ source: z.ZodMiniLiteral<"getuserfeedback.preview">;
33
+ type: z.ZodMiniLiteral<"preview.connection.pair.result">;
34
+ requestId: z.ZodMiniString<string>;
35
+ ok: z.ZodMiniLiteral<false>;
36
+ error: z.ZodMiniObject<{
37
+ message: z.ZodMiniString<string>;
38
+ code: z.ZodMiniOptional<z.ZodMiniString<string>>;
39
+ }, z.core.$strip>;
40
+ }, z.core.$strip>], "ok">;
41
+ export type PreviewPairingHostRequest = z.output<typeof previewPairingHostRequestSchema>;
42
+ export type PreviewPairingHostAck = z.output<typeof previewPairingHostAckSchema>;
43
+ export type PreviewPairingHostResult = z.output<typeof previewPairingHostResultSchema>;
44
+ //# sourceMappingURL=preview-pairing-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-pairing-transport.d.ts","sourceRoot":"","sources":["../src/preview-pairing-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAG9B,eAAO,MAAM,gCAAgC,4BAA4B,CAAC;AAI1E,eAAO,MAAM,+BAA+B;;;;;;;iBAO1C,CAAC;AAOH,eAAO,MAAM,2BAA2B;;;;iBAItC,CAAC;AAkBH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;yBAGzC,CAAC;AAEH,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,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAC9C,OAAO,8BAA8B,CACrC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import * as z from "zod/mini";
2
+ import { previewConnectionPairResponseSchema } from "./preview-connection.js";
3
+ export const PREVIEW_PAIRING_TRANSPORT_SOURCE = "getuserfeedback.preview";
4
+ const nonEmptyStringSchema = z.string().check(z.trim(), z.minLength(1));
5
+ export const previewPairingHostRequestSchema = z.object({
6
+ source: z.literal(PREVIEW_PAIRING_TRANSPORT_SOURCE),
7
+ type: z.literal("preview.connection.pair.request"),
8
+ requestId: nonEmptyStringSchema,
9
+ previewToken: nonEmptyStringSchema,
10
+ expectedRevision: z.number().check(z.int(), z.positive()),
11
+ capabilities: z.array(nonEmptyStringSchema),
12
+ });
13
+ const previewPairingErrorSchema = z.object({
14
+ message: nonEmptyStringSchema,
15
+ code: z.optional(nonEmptyStringSchema),
16
+ });
17
+ export const previewPairingHostAckSchema = z.object({
18
+ source: z.literal(PREVIEW_PAIRING_TRANSPORT_SOURCE),
19
+ type: z.literal("preview.connection.pair.ack"),
20
+ requestId: nonEmptyStringSchema,
21
+ });
22
+ const previewPairingHostResultSuccessSchema = z.object({
23
+ source: z.literal(PREVIEW_PAIRING_TRANSPORT_SOURCE),
24
+ type: z.literal("preview.connection.pair.result"),
25
+ requestId: nonEmptyStringSchema,
26
+ ok: z.literal(true),
27
+ result: previewConnectionPairResponseSchema,
28
+ });
29
+ const previewPairingHostResultErrorSchema = z.object({
30
+ source: z.literal(PREVIEW_PAIRING_TRANSPORT_SOURCE),
31
+ type: z.literal("preview.connection.pair.result"),
32
+ requestId: nonEmptyStringSchema,
33
+ ok: z.literal(false),
34
+ error: previewPairingErrorSchema,
35
+ });
36
+ export const previewPairingHostResultSchema = z.discriminatedUnion("ok", [
37
+ previewPairingHostResultSuccessSchema,
38
+ previewPairingHostResultErrorSchema,
39
+ ]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getuserfeedback/protocol",
3
- "version": "3.0.5",
3
+ "version": "3.0.7",
4
4
  "description": "getuserfeedback widget protocol — host surface and (later) wire protocol",
5
5
  "keywords": [
6
6
  "getuserfeedback",
package/src/host/index.ts CHANGED
@@ -12,3 +12,4 @@ export * from "./lazy-handle-client.js";
12
12
  export { createCommandRequestId } from "./request-id.js";
13
13
  export * from "./sdk-types.js";
14
14
  export { createUniqueId } from "./unique-id.js";
15
+ export * from "./widget-layout-size-update.js";
@@ -0,0 +1,25 @@
1
+ import { describe, expect, test } from "bun:test";
2
+ import {
3
+ INSTANT_WIDGET_LAYOUT_SIZE_TRANSITION,
4
+ toInstantWidgetLayoutSizeUpdate,
5
+ } from "./widget-layout-size-update.js";
6
+
7
+ describe("widget layout size update", () => {
8
+ test("wraps a host size in the current instant transition contract", () => {
9
+ expect(
10
+ toInstantWidgetLayoutSizeUpdate({ width: 320, height: 240 }),
11
+ ).toEqual({
12
+ size: { width: 320, height: 240 },
13
+ transition: {
14
+ kind: "instant",
15
+ durationMs: 0,
16
+ },
17
+ });
18
+ });
19
+
20
+ test("shares the zero-duration transition constant", () => {
21
+ expect(
22
+ toInstantWidgetLayoutSizeUpdate({ width: 1, height: 1 }).transition,
23
+ ).toBe(INSTANT_WIDGET_LAYOUT_SIZE_TRANSITION);
24
+ });
25
+ });
@@ -0,0 +1,29 @@
1
+ export type WidgetLayoutSize = {
2
+ width: number;
3
+ height: number;
4
+ };
5
+
6
+ export type WidgetLayoutSizeTransition = {
7
+ kind: "instant";
8
+ durationMs: 0;
9
+ };
10
+
11
+ export type WidgetLayoutSizeUpdate = {
12
+ size: WidgetLayoutSize;
13
+ transition: WidgetLayoutSizeTransition;
14
+ };
15
+
16
+ export const INSTANT_WIDGET_LAYOUT_SIZE_TRANSITION: WidgetLayoutSizeTransition =
17
+ {
18
+ kind: "instant",
19
+ durationMs: 0,
20
+ };
21
+
22
+ export function toInstantWidgetLayoutSizeUpdate(
23
+ size: WidgetLayoutSize,
24
+ ): WidgetLayoutSizeUpdate {
25
+ return {
26
+ size: { ...size },
27
+ transition: INSTANT_WIDGET_LAYOUT_SIZE_TRANSITION,
28
+ };
29
+ }
package/src/index.ts CHANGED
@@ -100,6 +100,15 @@ export {
100
100
  previewConnectionPairRequestSchema,
101
101
  previewConnectionPairResponseSchema,
102
102
  } from "./preview-connection.js";
103
+ export {
104
+ PREVIEW_PAIRING_TRANSPORT_SOURCE,
105
+ type PreviewPairingHostAck,
106
+ type PreviewPairingHostRequest,
107
+ type PreviewPairingHostResult,
108
+ previewPairingHostAckSchema,
109
+ previewPairingHostRequestSchema,
110
+ previewPairingHostResultSchema,
111
+ } from "./preview-pairing-transport.js";
103
112
  export {
104
113
  isPublicGrantScope,
105
114
  type PublicGrantScope,
@@ -9,6 +9,7 @@ describe("preview connection protocol", () => {
9
9
  const result = previewConnectionPairRequestSchema.parse({
10
10
  capabilities: ["post-message", "flow-display-sync"],
11
11
  expectedRevision: 3,
12
+ pairedAppApiKey: "app_api_key",
12
13
  pairedIdentity: "preview-identity",
13
14
  pairedUrl: "https://customer.example.com/app",
14
15
  });
@@ -16,11 +17,28 @@ describe("preview connection protocol", () => {
16
17
  expect(result).toEqual({
17
18
  capabilities: ["post-message", "flow-display-sync"],
18
19
  expectedRevision: 3,
20
+ pairedAppApiKey: "app_api_key",
19
21
  pairedIdentity: "preview-identity",
20
22
  pairedUrl: "https://customer.example.com/app",
21
23
  });
22
24
  });
23
25
 
26
+ it("keeps paired app api keys optional for patch-compatible clients", () => {
27
+ const result = previewConnectionPairRequestSchema.parse({
28
+ capabilities: ["post-message"],
29
+ expectedRevision: 3,
30
+ pairedIdentity: "preview-identity",
31
+ pairedUrl: null,
32
+ });
33
+
34
+ expect(result).toEqual({
35
+ capabilities: ["post-message"],
36
+ expectedRevision: 3,
37
+ pairedIdentity: "preview-identity",
38
+ pairedUrl: null,
39
+ });
40
+ });
41
+
24
42
  it("parses pair responses", () => {
25
43
  const result = previewConnectionPairResponseSchema.parse({
26
44
  appId: "app_123",
@@ -5,6 +5,7 @@ const nonEmptyStringSchema = z.string().check(z.trim(), z.minLength(1));
5
5
  export const previewConnectionPairRequestSchema = z.object({
6
6
  capabilities: z.array(nonEmptyStringSchema),
7
7
  expectedRevision: z.number().check(z.int(), z.positive()),
8
+ pairedAppApiKey: z.optional(nonEmptyStringSchema),
8
9
  pairedIdentity: nonEmptyStringSchema,
9
10
  pairedUrl: z.nullable(z.url()),
10
11
  });
@@ -0,0 +1,65 @@
1
+ import { describe, expect, it } from "bun:test";
2
+ import {
3
+ PREVIEW_PAIRING_TRANSPORT_SOURCE,
4
+ previewPairingHostAckSchema,
5
+ previewPairingHostRequestSchema,
6
+ previewPairingHostResultSchema,
7
+ } from "./preview-pairing-transport";
8
+
9
+ describe("preview pairing transport protocol", () => {
10
+ it("parses host pairing requests", () => {
11
+ expect(
12
+ previewPairingHostRequestSchema.parse({
13
+ source: PREVIEW_PAIRING_TRANSPORT_SOURCE,
14
+ type: "preview.connection.pair.request",
15
+ requestId: "req_123",
16
+ previewToken: "prv_123",
17
+ expectedRevision: 2,
18
+ capabilities: ["post-message"],
19
+ }),
20
+ ).toEqual({
21
+ source: PREVIEW_PAIRING_TRANSPORT_SOURCE,
22
+ type: "preview.connection.pair.request",
23
+ requestId: "req_123",
24
+ previewToken: "prv_123",
25
+ expectedRevision: 2,
26
+ capabilities: ["post-message"],
27
+ });
28
+ });
29
+
30
+ it("parses ack and result messages", () => {
31
+ expect(
32
+ previewPairingHostAckSchema.parse({
33
+ source: PREVIEW_PAIRING_TRANSPORT_SOURCE,
34
+ type: "preview.connection.pair.ack",
35
+ requestId: "req_123",
36
+ }),
37
+ ).toEqual({
38
+ source: PREVIEW_PAIRING_TRANSPORT_SOURCE,
39
+ type: "preview.connection.pair.ack",
40
+ requestId: "req_123",
41
+ });
42
+
43
+ expect(
44
+ previewPairingHostResultSchema.parse({
45
+ source: PREVIEW_PAIRING_TRANSPORT_SOURCE,
46
+ type: "preview.connection.pair.result",
47
+ requestId: "req_123",
48
+ ok: true,
49
+ result: {
50
+ appId: "app_123",
51
+ capabilities: ["post-message"],
52
+ id: "prvs_123",
53
+ organizationId: "org_123",
54
+ pairedAt: "2026-06-29T00:00:00.000Z",
55
+ pairedIdentity: "anon_123",
56
+ pairedUrl: "https://customer.example.com/app",
57
+ revision: 3,
58
+ },
59
+ }),
60
+ ).toMatchObject({
61
+ ok: true,
62
+ requestId: "req_123",
63
+ });
64
+ });
65
+ });
@@ -0,0 +1,57 @@
1
+ import * as z from "zod/mini";
2
+ import { previewConnectionPairResponseSchema } from "./preview-connection.js";
3
+
4
+ export const PREVIEW_PAIRING_TRANSPORT_SOURCE = "getuserfeedback.preview";
5
+
6
+ const nonEmptyStringSchema = z.string().check(z.trim(), z.minLength(1));
7
+
8
+ export const previewPairingHostRequestSchema = z.object({
9
+ source: z.literal(PREVIEW_PAIRING_TRANSPORT_SOURCE),
10
+ type: z.literal("preview.connection.pair.request"),
11
+ requestId: nonEmptyStringSchema,
12
+ previewToken: nonEmptyStringSchema,
13
+ expectedRevision: z.number().check(z.int(), z.positive()),
14
+ capabilities: z.array(nonEmptyStringSchema),
15
+ });
16
+
17
+ const previewPairingErrorSchema = z.object({
18
+ message: nonEmptyStringSchema,
19
+ code: z.optional(nonEmptyStringSchema),
20
+ });
21
+
22
+ export const previewPairingHostAckSchema = z.object({
23
+ source: z.literal(PREVIEW_PAIRING_TRANSPORT_SOURCE),
24
+ type: z.literal("preview.connection.pair.ack"),
25
+ requestId: nonEmptyStringSchema,
26
+ });
27
+
28
+ const previewPairingHostResultSuccessSchema = z.object({
29
+ source: z.literal(PREVIEW_PAIRING_TRANSPORT_SOURCE),
30
+ type: z.literal("preview.connection.pair.result"),
31
+ requestId: nonEmptyStringSchema,
32
+ ok: z.literal(true),
33
+ result: previewConnectionPairResponseSchema,
34
+ });
35
+
36
+ const previewPairingHostResultErrorSchema = z.object({
37
+ source: z.literal(PREVIEW_PAIRING_TRANSPORT_SOURCE),
38
+ type: z.literal("preview.connection.pair.result"),
39
+ requestId: nonEmptyStringSchema,
40
+ ok: z.literal(false),
41
+ error: previewPairingErrorSchema,
42
+ });
43
+
44
+ export const previewPairingHostResultSchema = z.discriminatedUnion("ok", [
45
+ previewPairingHostResultSuccessSchema,
46
+ previewPairingHostResultErrorSchema,
47
+ ]);
48
+
49
+ export type PreviewPairingHostRequest = z.output<
50
+ typeof previewPairingHostRequestSchema
51
+ >;
52
+ export type PreviewPairingHostAck = z.output<
53
+ typeof previewPairingHostAckSchema
54
+ >;
55
+ export type PreviewPairingHostResult = z.output<
56
+ typeof previewPairingHostResultSchema
57
+ >;