@per_moeller/asterisk-ari 1.0.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.
Files changed (111) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +291 -0
  3. package/dist/client.d.ts +123 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +297 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/connection.d.ts +70 -0
  8. package/dist/connection.d.ts.map +1 -0
  9. package/dist/connection.js +157 -0
  10. package/dist/connection.js.map +1 -0
  11. package/dist/events/emitter.d.ts +82 -0
  12. package/dist/events/emitter.d.ts.map +1 -0
  13. package/dist/events/emitter.js +132 -0
  14. package/dist/events/emitter.js.map +1 -0
  15. package/dist/events/types.d.ts +283 -0
  16. package/dist/events/types.d.ts.map +1 -0
  17. package/dist/events/types.js +5 -0
  18. package/dist/events/types.js.map +1 -0
  19. package/dist/index.d.ts +27 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +34 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/models/bridge.d.ts +102 -0
  24. package/dist/models/bridge.d.ts.map +1 -0
  25. package/dist/models/bridge.js +186 -0
  26. package/dist/models/bridge.js.map +1 -0
  27. package/dist/models/channel.d.ts +166 -0
  28. package/dist/models/channel.d.ts.map +1 -0
  29. package/dist/models/channel.js +278 -0
  30. package/dist/models/channel.js.map +1 -0
  31. package/dist/models/index.d.ts +8 -0
  32. package/dist/models/index.d.ts.map +1 -0
  33. package/dist/models/index.js +8 -0
  34. package/dist/models/index.js.map +1 -0
  35. package/dist/models/playback.d.ts +82 -0
  36. package/dist/models/playback.d.ts.map +1 -0
  37. package/dist/models/playback.js +146 -0
  38. package/dist/models/playback.js.map +1 -0
  39. package/dist/models/recording.d.ts +104 -0
  40. package/dist/models/recording.d.ts.map +1 -0
  41. package/dist/models/recording.js +191 -0
  42. package/dist/models/recording.js.map +1 -0
  43. package/dist/pool.d.ts +57 -0
  44. package/dist/pool.d.ts.map +1 -0
  45. package/dist/pool.js +111 -0
  46. package/dist/pool.js.map +1 -0
  47. package/dist/queue.d.ts +85 -0
  48. package/dist/queue.d.ts.map +1 -0
  49. package/dist/queue.js +208 -0
  50. package/dist/queue.js.map +1 -0
  51. package/dist/resources/applications.d.ts +37 -0
  52. package/dist/resources/applications.d.ts.map +1 -0
  53. package/dist/resources/applications.js +45 -0
  54. package/dist/resources/applications.js.map +1 -0
  55. package/dist/resources/asterisk.d.ts +71 -0
  56. package/dist/resources/asterisk.d.ts.map +1 -0
  57. package/dist/resources/asterisk.js +94 -0
  58. package/dist/resources/asterisk.js.map +1 -0
  59. package/dist/resources/base.d.ts +18 -0
  60. package/dist/resources/base.d.ts.map +1 -0
  61. package/dist/resources/base.js +21 -0
  62. package/dist/resources/base.js.map +1 -0
  63. package/dist/resources/bridges.d.ts +66 -0
  64. package/dist/resources/bridges.d.ts.map +1 -0
  65. package/dist/resources/bridges.js +109 -0
  66. package/dist/resources/bridges.js.map +1 -0
  67. package/dist/resources/channels.d.ts +130 -0
  68. package/dist/resources/channels.d.ts.map +1 -0
  69. package/dist/resources/channels.js +228 -0
  70. package/dist/resources/channels.js.map +1 -0
  71. package/dist/resources/devicestates.d.ts +30 -0
  72. package/dist/resources/devicestates.d.ts.map +1 -0
  73. package/dist/resources/devicestates.js +37 -0
  74. package/dist/resources/devicestates.js.map +1 -0
  75. package/dist/resources/endpoints.d.ts +38 -0
  76. package/dist/resources/endpoints.d.ts.map +1 -0
  77. package/dist/resources/endpoints.js +61 -0
  78. package/dist/resources/endpoints.js.map +1 -0
  79. package/dist/resources/mailboxes.d.ts +30 -0
  80. package/dist/resources/mailboxes.d.ts.map +1 -0
  81. package/dist/resources/mailboxes.js +38 -0
  82. package/dist/resources/mailboxes.js.map +1 -0
  83. package/dist/resources/playbacks.d.ts +27 -0
  84. package/dist/resources/playbacks.d.ts.map +1 -0
  85. package/dist/resources/playbacks.js +31 -0
  86. package/dist/resources/playbacks.js.map +1 -0
  87. package/dist/resources/recordings.d.ts +76 -0
  88. package/dist/resources/recordings.d.ts.map +1 -0
  89. package/dist/resources/recordings.js +105 -0
  90. package/dist/resources/recordings.js.map +1 -0
  91. package/dist/resources/sounds.d.ts +22 -0
  92. package/dist/resources/sounds.d.ts.map +1 -0
  93. package/dist/resources/sounds.js +26 -0
  94. package/dist/resources/sounds.js.map +1 -0
  95. package/dist/types/api.d.ts +331 -0
  96. package/dist/types/api.d.ts.map +1 -0
  97. package/dist/types/api.js +5 -0
  98. package/dist/types/api.js.map +1 -0
  99. package/dist/types/options.d.ts +77 -0
  100. package/dist/types/options.d.ts.map +1 -0
  101. package/dist/types/options.js +23 -0
  102. package/dist/types/options.js.map +1 -0
  103. package/dist/version.d.ts +86 -0
  104. package/dist/version.d.ts.map +1 -0
  105. package/dist/version.js +122 -0
  106. package/dist/version.js.map +1 -0
  107. package/dist/websocket.d.ts +70 -0
  108. package/dist/websocket.d.ts.map +1 -0
  109. package/dist/websocket.js +195 -0
  110. package/dist/websocket.js.map +1 -0
  111. package/package.json +59 -0
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Playback model and instance class
3
+ */
4
+ import type { AriClient } from '../client.js';
5
+ import type { Playback, PlaybackState } from '../types/api.js';
6
+ import type { PlaybackOperation } from '../resources/playbacks.js';
7
+ import type { AriEventMap, PlaybackEventType, PlaybackStartedEvent, PlaybackContinuingEvent, PlaybackFinishedEvent } from '../events/types.js';
8
+ type PlaybackEventListener<E> = (event: E, playback: PlaybackInstance) => void | Promise<void>;
9
+ interface PlaybackEventListeners {
10
+ PlaybackStarted: PlaybackEventListener<PlaybackStartedEvent>;
11
+ PlaybackContinuing: PlaybackEventListener<PlaybackContinuingEvent>;
12
+ PlaybackFinished: PlaybackEventListener<PlaybackFinishedEvent>;
13
+ }
14
+ /**
15
+ * Playback instance with bound operations and event handling
16
+ */
17
+ export declare class PlaybackInstance implements Playback {
18
+ id: string;
19
+ media_uri: string;
20
+ next_media_uri?: string;
21
+ target_uri: string;
22
+ language: string;
23
+ state: PlaybackState;
24
+ private readonly client;
25
+ private readonly listeners;
26
+ constructor(client: AriClient, id?: string, data?: Partial<Playback>);
27
+ /**
28
+ * Update playback data from an event or API response
29
+ */
30
+ updateData(data: Partial<Playback>): void;
31
+ /**
32
+ * Add an event listener
33
+ */
34
+ on<K extends keyof PlaybackEventListeners>(event: K, listener: PlaybackEventListeners[K]): this;
35
+ /**
36
+ * Add a one-time event listener
37
+ */
38
+ once<K extends keyof PlaybackEventListeners>(event: K, listener: PlaybackEventListeners[K]): this;
39
+ /**
40
+ * Remove an event listener
41
+ */
42
+ off<K extends keyof PlaybackEventListeners>(event: K, listener: PlaybackEventListeners[K]): this;
43
+ /**
44
+ * Emit an event to listeners
45
+ * @internal
46
+ */
47
+ _emit<K extends PlaybackEventType>(event: K, data: AriEventMap[K]): void;
48
+ /**
49
+ * Remove all event listeners and unregister from client
50
+ */
51
+ removeAllListeners(): this;
52
+ /**
53
+ * Stop this playback
54
+ */
55
+ stop(): Promise<void>;
56
+ /**
57
+ * Control this playback
58
+ */
59
+ control(operation: PlaybackOperation): Promise<void>;
60
+ /**
61
+ * Pause this playback
62
+ */
63
+ pause(): Promise<void>;
64
+ /**
65
+ * Unpause this playback
66
+ */
67
+ unpause(): Promise<void>;
68
+ /**
69
+ * Restart this playback
70
+ */
71
+ restart(): Promise<void>;
72
+ /**
73
+ * Skip forward in this playback
74
+ */
75
+ forward(): Promise<void>;
76
+ /**
77
+ * Skip backward in this playback
78
+ */
79
+ reverse(): Promise<void>;
80
+ }
81
+ export {};
82
+ //# sourceMappingURL=playback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../src/models/playback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,KAAK,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/F,UAAU,sBAAsB;IAC9B,eAAe,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IAC7D,kBAAkB,EAAE,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;IACnE,gBAAgB,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;CAChE;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,QAAQ;IAE/C,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAM;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAM;IACxB,QAAQ,EAAE,MAAM,CAAQ;IACxB,KAAK,EAAE,aAAa,CAAY;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6D;gBAE3E,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC;IAYpE;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI;IASzC;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,sBAAsB,EACvC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAClC,IAAI;IAUP;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,sBAAsB,EACzC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAClC,IAAI;IASP;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,sBAAsB,EACxC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAClC,IAAI;IAQP;;;OAGG;IACH,KAAK,CAAC,CAAC,SAAS,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI;IAaxE;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAU1B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Playback model and instance class
3
+ */
4
+ /**
5
+ * Playback instance with bound operations and event handling
6
+ */
7
+ export class PlaybackInstance {
8
+ // Playback properties
9
+ id;
10
+ media_uri = '';
11
+ next_media_uri;
12
+ target_uri = '';
13
+ language = 'en';
14
+ state = 'queued';
15
+ client;
16
+ listeners = new Map();
17
+ constructor(client, id, data) {
18
+ this.client = client;
19
+ this.id = id || crypto.randomUUID();
20
+ if (data) {
21
+ this.updateData(data);
22
+ }
23
+ // Register this instance for events
24
+ this.client._registerPlaybackInstance(this.id, this);
25
+ }
26
+ /**
27
+ * Update playback data from an event or API response
28
+ */
29
+ updateData(data) {
30
+ if (data.id !== undefined)
31
+ this.id = data.id;
32
+ if (data.media_uri !== undefined)
33
+ this.media_uri = data.media_uri;
34
+ if (data.next_media_uri !== undefined)
35
+ this.next_media_uri = data.next_media_uri;
36
+ if (data.target_uri !== undefined)
37
+ this.target_uri = data.target_uri;
38
+ if (data.language !== undefined)
39
+ this.language = data.language;
40
+ if (data.state !== undefined)
41
+ this.state = data.state;
42
+ }
43
+ /**
44
+ * Add an event listener
45
+ */
46
+ on(event, listener) {
47
+ let eventListeners = this.listeners.get(event);
48
+ if (!eventListeners) {
49
+ eventListeners = new Set();
50
+ this.listeners.set(event, eventListeners);
51
+ }
52
+ eventListeners.add(listener);
53
+ return this;
54
+ }
55
+ /**
56
+ * Add a one-time event listener
57
+ */
58
+ once(event, listener) {
59
+ const wrappedListener = ((...args) => {
60
+ this.off(event, wrappedListener);
61
+ listener(...args);
62
+ });
63
+ return this.on(event, wrappedListener);
64
+ }
65
+ /**
66
+ * Remove an event listener
67
+ */
68
+ off(event, listener) {
69
+ const eventListeners = this.listeners.get(event);
70
+ if (eventListeners) {
71
+ eventListeners.delete(listener);
72
+ }
73
+ return this;
74
+ }
75
+ /**
76
+ * Emit an event to listeners
77
+ * @internal
78
+ */
79
+ _emit(event, data) {
80
+ const eventListeners = this.listeners.get(event);
81
+ if (eventListeners) {
82
+ for (const listener of eventListeners) {
83
+ try {
84
+ listener(data, this);
85
+ }
86
+ catch (error) {
87
+ console.error(`Error in playback event listener for ${event}:`, error);
88
+ }
89
+ }
90
+ }
91
+ }
92
+ /**
93
+ * Remove all event listeners and unregister from client
94
+ */
95
+ removeAllListeners() {
96
+ this.listeners.clear();
97
+ this.client._unregisterPlaybackInstance(this.id);
98
+ return this;
99
+ }
100
+ // ============================================================================
101
+ // Bound Playback Operations
102
+ // ============================================================================
103
+ /**
104
+ * Stop this playback
105
+ */
106
+ async stop() {
107
+ return this.client.playbacks.stop(this.id);
108
+ }
109
+ /**
110
+ * Control this playback
111
+ */
112
+ async control(operation) {
113
+ return this.client.playbacks.control(this.id, operation);
114
+ }
115
+ /**
116
+ * Pause this playback
117
+ */
118
+ async pause() {
119
+ return this.control('pause');
120
+ }
121
+ /**
122
+ * Unpause this playback
123
+ */
124
+ async unpause() {
125
+ return this.control('unpause');
126
+ }
127
+ /**
128
+ * Restart this playback
129
+ */
130
+ async restart() {
131
+ return this.control('restart');
132
+ }
133
+ /**
134
+ * Skip forward in this playback
135
+ */
136
+ async forward() {
137
+ return this.control('forward');
138
+ }
139
+ /**
140
+ * Skip backward in this playback
141
+ */
142
+ async reverse() {
143
+ return this.control('reverse');
144
+ }
145
+ }
146
+ //# sourceMappingURL=playback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playback.js","sourceRoot":"","sources":["../../src/models/playback.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Recording model and instance classes
3
+ */
4
+ import type { AriClient } from '../client.js';
5
+ import type { LiveRecording, RecordingState, StoredRecording } from '../types/api.js';
6
+ import type { AriEventMap, RecordingEventType, RecordingStartedEvent, RecordingFinishedEvent, RecordingFailedEvent } from '../events/types.js';
7
+ type RecordingEventListener<E> = (event: E, recording: LiveRecordingInstance) => void | Promise<void>;
8
+ interface RecordingEventListeners {
9
+ RecordingStarted: RecordingEventListener<RecordingStartedEvent>;
10
+ RecordingFinished: RecordingEventListener<RecordingFinishedEvent>;
11
+ RecordingFailed: RecordingEventListener<RecordingFailedEvent>;
12
+ }
13
+ /**
14
+ * Live recording instance with bound operations and event handling
15
+ */
16
+ export declare class LiveRecordingInstance implements LiveRecording {
17
+ name: string;
18
+ format: string;
19
+ state: RecordingState;
20
+ target_uri: string;
21
+ duration?: number;
22
+ talking_duration?: number;
23
+ silence_duration?: number;
24
+ cause?: string;
25
+ private readonly client;
26
+ private readonly listeners;
27
+ constructor(client: AriClient, name: string, data?: Partial<LiveRecording>);
28
+ /**
29
+ * Update recording data from an event or API response
30
+ */
31
+ updateData(data: Partial<LiveRecording>): void;
32
+ /**
33
+ * Add an event listener
34
+ */
35
+ on<K extends keyof RecordingEventListeners>(event: K, listener: RecordingEventListeners[K]): this;
36
+ /**
37
+ * Add a one-time event listener
38
+ */
39
+ once<K extends keyof RecordingEventListeners>(event: K, listener: RecordingEventListeners[K]): this;
40
+ /**
41
+ * Remove an event listener
42
+ */
43
+ off<K extends keyof RecordingEventListeners>(event: K, listener: RecordingEventListeners[K]): this;
44
+ /**
45
+ * Emit an event to listeners
46
+ * @internal
47
+ */
48
+ _emit<K extends RecordingEventType>(event: K, data: AriEventMap[K]): void;
49
+ /**
50
+ * Remove all event listeners and unregister from client
51
+ */
52
+ removeAllListeners(): this;
53
+ /**
54
+ * Stop and store this recording
55
+ */
56
+ stop(): Promise<void>;
57
+ /**
58
+ * Pause this recording
59
+ */
60
+ pause(): Promise<void>;
61
+ /**
62
+ * Unpause this recording
63
+ */
64
+ unpause(): Promise<void>;
65
+ /**
66
+ * Mute this recording
67
+ */
68
+ mute(): Promise<void>;
69
+ /**
70
+ * Unmute this recording
71
+ */
72
+ unmute(): Promise<void>;
73
+ /**
74
+ * Cancel and discard this recording
75
+ */
76
+ cancel(): Promise<void>;
77
+ }
78
+ /**
79
+ * Stored recording instance with bound operations
80
+ */
81
+ export declare class StoredRecordingInstance implements StoredRecording {
82
+ name: string;
83
+ format: string;
84
+ private readonly client;
85
+ constructor(client: AriClient, name: string, data?: Partial<StoredRecording>);
86
+ /**
87
+ * Update recording data
88
+ */
89
+ updateData(data: Partial<StoredRecording>): void;
90
+ /**
91
+ * Get the file for this recording
92
+ */
93
+ getFile(): Promise<ArrayBuffer>;
94
+ /**
95
+ * Copy this recording
96
+ */
97
+ copy(destinationRecordingName: string): Promise<StoredRecordingInstance>;
98
+ /**
99
+ * Delete this recording
100
+ */
101
+ delete(): Promise<void>;
102
+ }
103
+ export {};
104
+ //# sourceMappingURL=recording.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording.d.ts","sourceRoot":"","sources":["../../src/models/recording.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Recording model and instance classes
3
+ */
4
+ /**
5
+ * Live recording instance with bound operations and event handling
6
+ */
7
+ export class LiveRecordingInstance {
8
+ // Recording properties
9
+ name;
10
+ format = '';
11
+ state = 'queued';
12
+ target_uri = '';
13
+ duration;
14
+ talking_duration;
15
+ silence_duration;
16
+ cause;
17
+ client;
18
+ listeners = new Map();
19
+ constructor(client, name, data) {
20
+ this.client = client;
21
+ this.name = name;
22
+ if (data) {
23
+ this.updateData(data);
24
+ }
25
+ // Register this instance for events
26
+ this.client._registerRecordingInstance(this.name, this);
27
+ }
28
+ /**
29
+ * Update recording data from an event or API response
30
+ */
31
+ updateData(data) {
32
+ if (data.name !== undefined)
33
+ this.name = data.name;
34
+ if (data.format !== undefined)
35
+ this.format = data.format;
36
+ if (data.state !== undefined)
37
+ this.state = data.state;
38
+ if (data.target_uri !== undefined)
39
+ this.target_uri = data.target_uri;
40
+ if (data.duration !== undefined)
41
+ this.duration = data.duration;
42
+ if (data.talking_duration !== undefined)
43
+ this.talking_duration = data.talking_duration;
44
+ if (data.silence_duration !== undefined)
45
+ this.silence_duration = data.silence_duration;
46
+ if (data.cause !== undefined)
47
+ this.cause = data.cause;
48
+ }
49
+ /**
50
+ * Add an event listener
51
+ */
52
+ on(event, listener) {
53
+ let eventListeners = this.listeners.get(event);
54
+ if (!eventListeners) {
55
+ eventListeners = new Set();
56
+ this.listeners.set(event, eventListeners);
57
+ }
58
+ eventListeners.add(listener);
59
+ return this;
60
+ }
61
+ /**
62
+ * Add a one-time event listener
63
+ */
64
+ once(event, listener) {
65
+ const wrappedListener = ((...args) => {
66
+ this.off(event, wrappedListener);
67
+ listener(...args);
68
+ });
69
+ return this.on(event, wrappedListener);
70
+ }
71
+ /**
72
+ * Remove an event listener
73
+ */
74
+ off(event, listener) {
75
+ const eventListeners = this.listeners.get(event);
76
+ if (eventListeners) {
77
+ eventListeners.delete(listener);
78
+ }
79
+ return this;
80
+ }
81
+ /**
82
+ * Emit an event to listeners
83
+ * @internal
84
+ */
85
+ _emit(event, data) {
86
+ const eventListeners = this.listeners.get(event);
87
+ if (eventListeners) {
88
+ for (const listener of eventListeners) {
89
+ try {
90
+ listener(data, this);
91
+ }
92
+ catch (error) {
93
+ console.error(`Error in recording event listener for ${event}:`, error);
94
+ }
95
+ }
96
+ }
97
+ }
98
+ /**
99
+ * Remove all event listeners and unregister from client
100
+ */
101
+ removeAllListeners() {
102
+ this.listeners.clear();
103
+ this.client._unregisterRecordingInstance(this.name);
104
+ return this;
105
+ }
106
+ // ============================================================================
107
+ // Bound Recording Operations
108
+ // ============================================================================
109
+ /**
110
+ * Stop and store this recording
111
+ */
112
+ async stop() {
113
+ return this.client.recordings.live.stop(this.name);
114
+ }
115
+ /**
116
+ * Pause this recording
117
+ */
118
+ async pause() {
119
+ return this.client.recordings.live.pause(this.name);
120
+ }
121
+ /**
122
+ * Unpause this recording
123
+ */
124
+ async unpause() {
125
+ return this.client.recordings.live.unpause(this.name);
126
+ }
127
+ /**
128
+ * Mute this recording
129
+ */
130
+ async mute() {
131
+ return this.client.recordings.live.mute(this.name);
132
+ }
133
+ /**
134
+ * Unmute this recording
135
+ */
136
+ async unmute() {
137
+ return this.client.recordings.live.unmute(this.name);
138
+ }
139
+ /**
140
+ * Cancel and discard this recording
141
+ */
142
+ async cancel() {
143
+ return this.client.recordings.live.cancel(this.name);
144
+ }
145
+ }
146
+ /**
147
+ * Stored recording instance with bound operations
148
+ */
149
+ export class StoredRecordingInstance {
150
+ name;
151
+ format = '';
152
+ client;
153
+ constructor(client, name, data) {
154
+ this.client = client;
155
+ this.name = name;
156
+ if (data) {
157
+ this.updateData(data);
158
+ }
159
+ }
160
+ /**
161
+ * Update recording data
162
+ */
163
+ updateData(data) {
164
+ if (data.name !== undefined)
165
+ this.name = data.name;
166
+ if (data.format !== undefined)
167
+ this.format = data.format;
168
+ }
169
+ /**
170
+ * Get the file for this recording
171
+ */
172
+ async getFile() {
173
+ return this.client.recordings.stored.getFile(this.name);
174
+ }
175
+ /**
176
+ * Copy this recording
177
+ */
178
+ async copy(destinationRecordingName) {
179
+ const result = await this.client.recordings.stored.copy(this.name, {
180
+ destinationRecordingName,
181
+ });
182
+ return new StoredRecordingInstance(this.client, result.name, result);
183
+ }
184
+ /**
185
+ * Delete this recording
186
+ */
187
+ async delete() {
188
+ return this.client.recordings.stored.delete(this.name);
189
+ }
190
+ }
191
+ //# sourceMappingURL=recording.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording.js","sourceRoot":"","sources":["../../src/models/recording.ts"],"names":[],"mappings":"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"}
package/dist/pool.d.ts ADDED
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Connection pool for high-throughput scenarios
3
+ */
4
+ import { AriClient } from './client.js';
5
+ import type { PoolOptions } from './types/options.js';
6
+ /**
7
+ * Connection pool for distributing load across multiple ARI connections
8
+ */
9
+ export declare class ConnectionPool {
10
+ private connections;
11
+ private currentIndex;
12
+ private readonly options;
13
+ private readonly poolSize;
14
+ private initialized;
15
+ constructor(options: PoolOptions);
16
+ /**
17
+ * Initialize the connection pool
18
+ */
19
+ initialize(): Promise<void>;
20
+ /**
21
+ * Get a connection from the pool (round-robin)
22
+ */
23
+ getConnection(): AriClient;
24
+ /**
25
+ * Get a connection that is currently connected
26
+ */
27
+ getConnectedConnection(): AriClient | undefined;
28
+ /**
29
+ * Get all connections in the pool
30
+ */
31
+ getConnections(): readonly AriClient[];
32
+ /**
33
+ * Get the number of connections in the pool
34
+ */
35
+ get size(): number;
36
+ /**
37
+ * Get the number of connected clients
38
+ */
39
+ get connectedCount(): number;
40
+ /**
41
+ * Stop all connections in the pool
42
+ */
43
+ stop(): Promise<void>;
44
+ /**
45
+ * Check if the pool is initialized
46
+ */
47
+ isInitialized(): boolean;
48
+ /**
49
+ * Execute a function with a pooled connection
50
+ */
51
+ withConnection<T>(fn: (client: AriClient) => Promise<T>): Promise<T>;
52
+ }
53
+ /**
54
+ * Create and initialize a connection pool
55
+ */
56
+ export declare function createPool(options: PoolOptions): Promise<ConnectionPool>;
57
+ //# sourceMappingURL=pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAW,SAAS,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE,WAAW;IAKhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;IACH,aAAa,IAAI,SAAS;IAU1B;;OAEG;IACH,sBAAsB,IAAI,SAAS,GAAG,SAAS;IAmB/C;;OAEG;IACH,cAAc,IAAI,SAAS,SAAS,EAAE;IAItC;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACG,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAI3E;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,CAI9E"}