opensips-js 0.1.46 → 0.1.48

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opensips-js",
3
- "version": "0.1.46",
3
+ "version": "0.1.48",
4
4
  "description": "The JS package for opensips",
5
5
  "default": "src/index.ts",
6
6
  "jsdelivr": "dist/opensips-js.iife.js",
@@ -1,6 +1,11 @@
1
1
  import { UAEventMap } from 'jssip/lib/UA'
2
2
 
3
- import { IMessage, MSRPSessionExtended } from '@/types/msrp'
3
+ import {
4
+ IMessage,
5
+ MSRPSessionExtended,
6
+ MSRPConversationState,
7
+ MSRPMessageStatus
8
+ } from '@/types/msrp'
4
9
  import { ICall, RoomChangeEmitType, ICallStatus, RTCSessionExtended } from '@/types/rtc'
5
10
  import MSRPMessage from '@/lib/msrp/message'
6
11
  import { ITimeData } from '@/types/timer'
@@ -65,6 +70,45 @@ export type memberHangupListener = (event: object) => void
65
70
  export type changeAudioStateListener = (state: boolean) => void
66
71
  export type changeVideoStateListener = (state: boolean) => void
67
72
 
73
+ /* MSRP event listeners */
74
+ export type changeMsrpSessionListener = (session: IMessage | null) => void
75
+ export type msrpSyncCompletedListener = (payload: {
76
+ conversations: { [key: string]: MSRPConversationState }
77
+ messagesByConversation: { [key: string]: any[] }
78
+ }) => void
79
+ export type msrpConversationCreatedListener = (payload: {
80
+ conversationKey: string
81
+ conversation: MSRPConversationState
82
+ }) => void
83
+ export type msrpConversationRemovedListener = (payload: { conversationKey: string }) => void
84
+ export type msrpConversationUpdatedListener = (payload: {
85
+ conversationKey: string
86
+ patch: Partial<MSRPConversationState>
87
+ }) => void
88
+ export type msrpMessageAddedListener = (payload: {
89
+ conversationKey: string
90
+ message: any
91
+ }) => void
92
+ export type msrpReceiptChangedListener = (payload: {
93
+ conversationKey: string
94
+ eventId: string
95
+ status: MSRPMessageStatus
96
+ updatedAt: number
97
+ }) => void
98
+ export type msrpReactionChangedListener = (payload: {
99
+ conversationKey: string
100
+ eventId: string
101
+ emoji: string
102
+ action: 'add' | 'remove'
103
+ sender: string
104
+ updatedAt: number
105
+ }) => void
106
+ export type msrpTypingListener = (payload: {
107
+ conversationKey: string
108
+ sender: string
109
+ isTyping: boolean
110
+ }) => void
111
+
68
112
  export interface OpenSIPSEventMap extends UAEventMap {
69
113
  ready: readyListener
70
114
  connection: connectionListener
@@ -97,6 +141,16 @@ export interface OpenSIPSEventMap extends UAEventMap {
97
141
  connectionStateChange: connectionStateChangeListener
98
142
  newMSRPMessage: MSRPMessageListener
99
143
  newMSRPSession: MSRPSessionListener
144
+ // MSRP events listeners
145
+ changeMsrpSession: changeMsrpSessionListener
146
+ msrpSyncCompleted: msrpSyncCompletedListener
147
+ msrpConversationCreated: msrpConversationCreatedListener
148
+ msrpConversationRemoved: msrpConversationRemovedListener
149
+ msrpConversationUpdated: msrpConversationUpdatedListener
150
+ msrpMessageAdded: msrpMessageAddedListener
151
+ msrpReceiptChanged: msrpReceiptChangedListener
152
+ msrpReactionChanged: msrpReactionChangedListener
153
+ msrpTyping: msrpTypingListener
100
154
  // JANUS
101
155
  conferenceStart: conferenceStartListener
102
156
  conferenceEnd: conferenceEndListener
@@ -53,3 +53,39 @@ export interface TriggerMSRPListenerOptions {
53
53
  session: MSRPSessionExtended
54
54
  event?: ListenerEventType
55
55
  }
56
+
57
+ /* ---------- MSRP conversation shape types (backend v3 - June 2026) ----------
58
+ * These are the public data structures produced by MSRPModule at runtime and
59
+ * consumed by external subscribers (Vue wrappers, tests, etc.). Kept in this
60
+ * shipped `src/types/` file so they resolve cleanly for consumers without
61
+ * needing internal module paths.
62
+ */
63
+
64
+ export type MSRPMemberRole = 'in_charge' | 'manager' | 'assigned'
65
+ export type MSRPMembership = 'join' | 'leave' | 'invite' | 'ban'
66
+ export type MSRPMessageStatus = 'pending' | 'sent' | 'delivered' | 'read' | 'failed'
67
+
68
+ export interface MSRPConversationState {
69
+ conversationKey: string
70
+ creator: string | null
71
+ members: Set<string>
72
+ memberRoles: Map<string, MSRPMemberRole>
73
+ currentUserRole: MSRPMemberRole
74
+ currentUserStatus: MSRPMembership | null
75
+ state_events: { [key: string]: { [stateKey: string]: any } }
76
+ created_at: number
77
+ updated_at: number
78
+ status?: string
79
+ }
80
+
81
+ export interface MSRPUploadResult {
82
+ upload_url: string
83
+ expires_in?: number
84
+ mime_type: string
85
+ request_id: string
86
+ filename?: string
87
+ preview_url?: string
88
+ icon_url?: string
89
+ transcription?: string
90
+ media_type?: string
91
+ }