@quickscores/chat 0.3.1 → 0.4.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.
@@ -59,15 +59,20 @@ export interface ReplyToPayload {
59
59
  body: string | null;
60
60
  sender_name: string | null;
61
61
  }
62
+ /**
63
+ * Message shape returned by GET /chat-messages, POST /chat-send-message, and
64
+ * Realtime broadcast event `new_message`. Use MessageWithEnrichment from "./message" for Zod parsing.
65
+ */
66
+ export type ApiMessage = Message & {
67
+ sender_name: string | null;
68
+ sender_user_role: "player" | "parent" | "coach" | null;
69
+ reply_to: ReplyToPayload | null;
70
+ };
62
71
  /**
63
72
  * Response: send message (chat-send-message). Message includes sender_name, sender_user_role, reply_to.
64
73
  */
65
74
  export interface MessageResponse {
66
- message: Message & {
67
- sender_name?: string | null;
68
- sender_user_role?: "player" | "parent" | "coach" | null;
69
- reply_to?: ReplyToPayload | null;
70
- };
75
+ message: ApiMessage;
71
76
  }
72
77
  /**
73
78
  * Query params for GET /chat-messages
@@ -82,11 +87,7 @@ export interface GetMessagesParams {
82
87
  * Each message includes sender_name, sender_user_role, reply_to.
83
88
  */
84
89
  export interface MessagesResponse {
85
- messages: Array<Message & {
86
- sender_name?: string | null;
87
- sender_user_role?: "player" | "parent" | "coach" | null;
88
- reply_to?: ReplyToPayload | null;
89
- }>;
90
+ messages: ApiMessage[];
90
91
  }
91
92
  /**
92
93
  * Response: mark read (chat-mark-read)
@@ -94,4 +95,11 @@ export interface MessagesResponse {
94
95
  export interface MarkReadResponse {
95
96
  ok: true;
96
97
  }
98
+ /**
99
+ * Realtime broadcast event `new_message`. Use for typing the callback:
100
+ * `channel.on('broadcast', { event: 'new_message' }, (event) => { const message: ApiMessage = event.payload; })`
101
+ */
102
+ export interface RealtimeNewMessageEvent {
103
+ payload: ApiMessage;
104
+ }
97
105
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,2FAA2F;IAC3F,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,GAAG;QACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;QACxD,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,KAAK,CACb,OAAO,GAAG;QACR,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;QACxD,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;KAClC,CACF,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,IAAI,CAAC;CACV"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,2FAA2F;IAC3F,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;IACvD,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,IAAI,CAAC;CACV;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,UAAU,CAAC;CACrB"}
@@ -4,5 +4,5 @@
4
4
  */
5
5
  export { threadKindSchema, threadSchema, threadListRowSchema, type Thread, type ThreadKind, type ThreadListRow, } from "./thread";
6
6
  export { messageSchema, replyToSchema, messageWithEnrichmentSchema, type Message, type ReplyTo, type MessageWithEnrichment, } from "./message";
7
- export type { ErrorResponse, CreateThreadBody, LeagueRoomBody, TeamRoomBody, SendMessageBody, MarkReadBody, GetMessagesParams, ReplyToPayload, ThreadResponse, MessageResponse, MessagesResponse, MarkReadResponse, } from "./api";
7
+ export type { ErrorResponse, CreateThreadBody, LeagueRoomBody, TeamRoomBody, SendMessageBody, MarkReadBody, GetMessagesParams, ApiMessage, ReplyToPayload, ThreadResponse, MessageResponse, MessagesResponse, MarkReadResponse, RealtimeNewMessageEvent, } from "./api";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,aAAa,EACb,aAAa,EACb,2BAA2B,EAC3B,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,qBAAqB,GAC3B,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,aAAa,EACb,aAAa,EACb,2BAA2B,EAC3B,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,qBAAqB,GAC3B,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,OAAO,CAAC"}
@@ -23,8 +23,9 @@ export declare const messageSchema: z.ZodObject<{
23
23
  }, z.core.$strip>;
24
24
  export type Message = z.infer<typeof messageSchema>;
25
25
  /**
26
- * Message as returned by API (GET /chat-messages, POST /chat-send-message, Realtime).
27
- * Includes sender_name, sender_user_role, and optional reply_to.
26
+ * Message as returned by API (GET /chat-messages, POST /chat-send-message) and
27
+ * Realtime broadcast event `new_message`. Same shape everywhere.
28
+ * Includes sender_name, sender_user_role, and reply_to (no reply_to_message_id in response).
28
29
  */
29
30
  export declare const messageWithEnrichmentSchema: z.ZodObject<{
30
31
  id: z.ZodString;
@@ -35,7 +36,6 @@ export declare const messageWithEnrichmentSchema: z.ZodObject<{
35
36
  payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
36
37
  client_nonce: z.ZodNullable<z.ZodString>;
37
38
  created_at: z.ZodString;
38
- reply_to_message_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
39
39
  sender_name: z.ZodNullable<z.ZodString>;
40
40
  sender_user_role: z.ZodNullable<z.ZodEnum<{
41
41
  player: "player";
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,aAAa;;;;iBAIxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;iBASxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;iBAKtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,aAAa;;;;iBAIxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;iBASxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;iBAItC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -24,11 +24,11 @@ exports.messageSchema = zod_1.z.object({
24
24
  created_at: zod_1.z.string(),
25
25
  });
26
26
  /**
27
- * Message as returned by API (GET /chat-messages, POST /chat-send-message, Realtime).
28
- * Includes sender_name, sender_user_role, and optional reply_to.
27
+ * Message as returned by API (GET /chat-messages, POST /chat-send-message) and
28
+ * Realtime broadcast event `new_message`. Same shape everywhere.
29
+ * Includes sender_name, sender_user_role, and reply_to (no reply_to_message_id in response).
29
30
  */
30
31
  exports.messageWithEnrichmentSchema = exports.messageSchema.extend({
31
- reply_to_message_id: zod_1.z.string().uuid().nullable().optional(),
32
32
  sender_name: zod_1.z.string().nullable(),
33
33
  sender_user_role: zod_1.z.enum(["player", "parent", "coach"]).nullable(),
34
34
  reply_to: exports.replyToSchema.nullable(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quickscores/chat",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "private": false,
5
5
  "description": "Shared chat types and Zod schemas for QuickScores (RN, web)",
6
6
  "main": "./dist/types/index.js",