@getuserfeedback/protocol 3.0.6 → 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.
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.6",
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/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
+ >;