@spokpay/chat 0.1.1 → 0.2.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/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { SpokPayChat } from "./client.js";
2
2
  export { SpokPayChatApiError } from "./types.js";
3
- export type { SpokPayChatOptions, Conversation, CreateConversationOptions, GetConversationOptions, Message, SendMessageOptions, MessageAttachment, ListMessagesOptions, CloseConversationOptions, GetUploadUrlOptions, ChatWebhookPayload, WebhookMessageData, WebhookConversationData, VerifyWebhookOptions, } from "./types.js";
3
+ export type { SpokPayChatOptions, Conversation, CreateConversationOptions, GetConversationOptions, Message, SendMessageOptions, MessageAttachment, ListMessagesOptions, CloseConversationOptions, GetUploadUrlOptions, ChatWebhookPayload, WebhookMessageData, WebhookConversationData, WebhookItemDeliveredData, WebhookItemRefundedData, VerifyWebhookOptions, } from "./types.js";
package/dist/types.d.ts CHANGED
@@ -236,10 +236,12 @@ export interface ChatWebhookPayload {
236
236
  * - `"message.updated"` — A message was edited.
237
237
  * - `"message.deleted"` — A message was deleted.
238
238
  * - `"conversation.closed"` — The conversation was closed.
239
+ * - `"item.delivered"` — An order item was delivered by staff.
240
+ * - `"item.refunded"` — An order item was refunded by staff.
239
241
  */
240
- type: "message.created" | "message.updated" | "message.deleted" | "conversation.closed";
242
+ type: "message.created" | "message.updated" | "message.deleted" | "conversation.closed" | "item.delivered" | "item.refunded";
241
243
  /** Event data. Shape depends on the event type. */
242
- data: WebhookMessageData | WebhookConversationData;
244
+ data: WebhookMessageData | WebhookConversationData | WebhookItemDeliveredData | WebhookItemRefundedData;
243
245
  /** Unix timestamp (ms) when the event was created. */
244
246
  createdAt: number;
245
247
  }
@@ -312,6 +314,85 @@ export interface WebhookConversationData {
312
314
  /** Unix timestamp (ms) when the conversation was closed. */
313
315
  closedAt?: number;
314
316
  }
317
+ /**
318
+ * Data included in `item.delivered` webhook events.
319
+ *
320
+ * Fired when a staff member marks an order item as delivered from the SpokPay dashboard.
321
+ *
322
+ * @example
323
+ * ```ts
324
+ * const event: ChatWebhookPayload = JSON.parse(body);
325
+ * if (event.type === "item.delivered") {
326
+ * const data = event.data as WebhookItemDeliveredData;
327
+ * console.log(`${data.item.name} delivered by ${data.deliveredBy}`);
328
+ * }
329
+ * ```
330
+ */
331
+ export interface WebhookItemDeliveredData {
332
+ /** SpokPay conversation ID. */
333
+ conversationId: string;
334
+ /** Your external ID for the conversation. */
335
+ externalId?: string;
336
+ /** The delivered item. */
337
+ item: {
338
+ /** Your external ID for this product (from charge items). */
339
+ externalId?: string;
340
+ /** Product name. */
341
+ name: string;
342
+ /** Quantity delivered. */
343
+ quantity: number;
344
+ /** Delivery proof image, if provided. */
345
+ deliveryProof?: {
346
+ /** Direct URL to the proof image. */
347
+ url: string;
348
+ /** Filename. */
349
+ filename: string;
350
+ /** MIME content type. */
351
+ contentType: string;
352
+ };
353
+ };
354
+ /** Display name of the staff member who delivered. */
355
+ deliveredBy: string;
356
+ /** Unix timestamp (ms) when the item was delivered. */
357
+ deliveredAt: number;
358
+ }
359
+ /**
360
+ * Data included in `item.refunded` webhook events.
361
+ *
362
+ * Fired when a staff member refunds an order item from the SpokPay dashboard.
363
+ *
364
+ * @example
365
+ * ```ts
366
+ * const event: ChatWebhookPayload = JSON.parse(body);
367
+ * if (event.type === "item.refunded") {
368
+ * const data = event.data as WebhookItemRefundedData;
369
+ * console.log(`${data.item.name} refunded: ${data.item.refundReason}`);
370
+ * }
371
+ * ```
372
+ */
373
+ export interface WebhookItemRefundedData {
374
+ /** SpokPay conversation ID. */
375
+ conversationId: string;
376
+ /** Your external ID for the conversation. */
377
+ externalId?: string;
378
+ /** The refunded item. */
379
+ item: {
380
+ /** Your external ID for this product (from charge items). */
381
+ externalId?: string;
382
+ /** Product name. */
383
+ name: string;
384
+ /** Quantity refunded. */
385
+ quantity: number;
386
+ /** Refund amount. */
387
+ refundAmount?: number;
388
+ /** Reason for the refund. */
389
+ refundReason?: string;
390
+ };
391
+ /** Display name of the staff member who processed the refund. */
392
+ refundedBy: string;
393
+ /** Unix timestamp (ms) when the item was refunded. */
394
+ refundedAt: number;
395
+ }
315
396
  /**
316
397
  * Options for verifying a webhook signature.
317
398
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spokpay/chat",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "SpokPay Chat SDK — add live chat conversations to your app",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",