@ctchealth/plato-sdk 0.0.7 → 0.0.9
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/README.md +96 -50
- package/eslint.config.cjs +121 -0
- package/jest.config.ts +10 -0
- package/package.json +5 -5
- package/project.json +24 -0
- package/src/lib/plato-intefaces.ts +232 -0
- package/src/lib/plato-sdk.ts +265 -0
- package/tsconfig.json +22 -0
- package/tsconfig.lib.json +11 -0
- package/tsconfig.spec.json +10 -0
- package/src/index.js +0 -5
- package/src/index.js.map +0 -1
- package/src/lib/plato-intefaces.d.ts +0 -186
- package/src/lib/plato-intefaces.js +0 -103
- package/src/lib/plato-intefaces.js.map +0 -1
- package/src/lib/plato-sdk.d.ts +0 -82
- package/src/lib/plato-sdk.js +0 -183
- package/src/lib/plato-sdk.js.map +0 -1
- /package/src/{index.d.ts → index.ts} +0 -0
package/src/lib/plato-sdk.js
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PlatoApiClient = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
-
const web_1 = tslib_1.__importDefault(require("@vapi-ai/web"));
|
|
7
|
-
class PlatoApiClient {
|
|
8
|
-
config;
|
|
9
|
-
http;
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
11
|
-
eventListeners = {};
|
|
12
|
-
callControllerInstance;
|
|
13
|
-
eventsAttached = false;
|
|
14
|
-
eventNames = [
|
|
15
|
-
'call-start',
|
|
16
|
-
'call-end',
|
|
17
|
-
'speech-start',
|
|
18
|
-
'speech-end',
|
|
19
|
-
'error',
|
|
20
|
-
'message',
|
|
21
|
-
'volume-level',
|
|
22
|
-
];
|
|
23
|
-
constructor(config) {
|
|
24
|
-
this.config = config;
|
|
25
|
-
if (!config.baseUrl) {
|
|
26
|
-
throw new Error('baseUrl is required');
|
|
27
|
-
}
|
|
28
|
-
if (!config.token) {
|
|
29
|
-
throw new Error('token is required');
|
|
30
|
-
}
|
|
31
|
-
if (!config.user) {
|
|
32
|
-
throw new Error('user is required');
|
|
33
|
-
}
|
|
34
|
-
if (config.baseUrl.endsWith('/')) {
|
|
35
|
-
config.baseUrl = config.baseUrl.slice(0, -1);
|
|
36
|
-
}
|
|
37
|
-
this.http = axios_1.default.create({
|
|
38
|
-
baseURL: config.baseUrl,
|
|
39
|
-
headers: {
|
|
40
|
-
'x-api-key': config.token,
|
|
41
|
-
'x-api-key-user': config.user,
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Register a listener for a call event with strict typing.
|
|
47
|
-
* @param event Event name
|
|
48
|
-
* @param listener Listener function
|
|
49
|
-
*/
|
|
50
|
-
on(event, listener) {
|
|
51
|
-
if (!this.eventListeners[event]) {
|
|
52
|
-
this.eventListeners[event] = [];
|
|
53
|
-
}
|
|
54
|
-
this.eventListeners[event].push(listener);
|
|
55
|
-
if (this.callControllerInstance && !this.eventsAttached) {
|
|
56
|
-
this.attachEvents();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Remove a listener for a call event with strict typing.
|
|
61
|
-
* @param event Event name
|
|
62
|
-
* @param listener Listener function
|
|
63
|
-
*/
|
|
64
|
-
off(event, listener) {
|
|
65
|
-
if (!this.eventListeners[event])
|
|
66
|
-
return;
|
|
67
|
-
this.eventListeners[event] = this.eventListeners[event].filter(l => l !== listener);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Internal: Attach event listeners and propagate to registered listeners.
|
|
71
|
-
*/
|
|
72
|
-
attachEvents() {
|
|
73
|
-
if (this.eventsAttached || !this.callControllerInstance)
|
|
74
|
-
return;
|
|
75
|
-
this.eventsAttached = true;
|
|
76
|
-
const vapi = this.callControllerInstance;
|
|
77
|
-
this.eventNames.forEach(event => {
|
|
78
|
-
vapi.on(event, (payload) => {
|
|
79
|
-
(this.eventListeners[event] || []).forEach(listener => listener(payload));
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
async createSimulation(createSimulationParams) {
|
|
84
|
-
try {
|
|
85
|
-
const res = await this.http.post('/api/v1/simulation', {
|
|
86
|
-
...createSimulationParams,
|
|
87
|
-
});
|
|
88
|
-
return {
|
|
89
|
-
simulationId: res.data.simulationId,
|
|
90
|
-
phase: res.data.phase,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
if (axios_1.default.isAxiosError(e)) {
|
|
95
|
-
console.error('Error creating simulation:', e.response?.data.message);
|
|
96
|
-
}
|
|
97
|
-
throw e;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
async checkSimulationStatus(simulationId) {
|
|
101
|
-
const res = await this.http.get(`/api/v1/simulation/status/${simulationId}`);
|
|
102
|
-
return res.data;
|
|
103
|
-
}
|
|
104
|
-
async getCallDetails(callId) {
|
|
105
|
-
try {
|
|
106
|
-
const res = await this.http.get(`/api/v1/simulation/call/${callId}`);
|
|
107
|
-
return res.data;
|
|
108
|
-
}
|
|
109
|
-
catch (e) {
|
|
110
|
-
if (axios_1.default.isAxiosError(e)) {
|
|
111
|
-
console.error('Error getting call details:', e.response?.data.message);
|
|
112
|
-
}
|
|
113
|
-
throw e;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Remove all listeners for all call events.
|
|
118
|
-
*/
|
|
119
|
-
removeAllEventListeners() {
|
|
120
|
-
if (!this.callControllerInstance)
|
|
121
|
-
return;
|
|
122
|
-
this.eventNames.forEach(event => {
|
|
123
|
-
(this.eventListeners[event] || []).forEach(listener => {
|
|
124
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
125
|
-
// @ts-expect-error
|
|
126
|
-
this.callControllerInstance?.off(event, listener);
|
|
127
|
-
});
|
|
128
|
-
this.eventListeners[event] = [];
|
|
129
|
-
});
|
|
130
|
-
this.eventsAttached = false;
|
|
131
|
-
}
|
|
132
|
-
async startCall(simulationId) {
|
|
133
|
-
this.callControllerInstance = new web_1.default('f07d17ec-d4e6-487d-a0b9-0539c01aecbb', 'https://db41aykk1gw9e.cloudfront.net');
|
|
134
|
-
if (!this.eventsAttached) {
|
|
135
|
-
this.attachEvents();
|
|
136
|
-
}
|
|
137
|
-
const { data } = await this.http.get(`/api/v1/simulation/${simulationId}`);
|
|
138
|
-
const assistantId = data;
|
|
139
|
-
const call = await this.callControllerInstance.start(assistantId);
|
|
140
|
-
if (!call || !call.assistantId) {
|
|
141
|
-
throw new Error('Cannot start a call, please try again later');
|
|
142
|
-
}
|
|
143
|
-
try {
|
|
144
|
-
const apiCall = await this.createCall({
|
|
145
|
-
callId: call.id,
|
|
146
|
-
assistantId: call.assistantId,
|
|
147
|
-
});
|
|
148
|
-
// Return stopCall, callId, and event subscription methods with strict typing
|
|
149
|
-
return {
|
|
150
|
-
stopCall: () => {
|
|
151
|
-
this.callControllerInstance?.stop();
|
|
152
|
-
this.removeAllEventListeners();
|
|
153
|
-
},
|
|
154
|
-
callId: apiCall._id,
|
|
155
|
-
/**
|
|
156
|
-
* Subscribe to call events for this call with strict typing.
|
|
157
|
-
* @param event Event name
|
|
158
|
-
* @param listener Listener function
|
|
159
|
-
*/
|
|
160
|
-
on: (event, listener) => this.on(event, listener),
|
|
161
|
-
/**
|
|
162
|
-
* Unsubscribe from call events for this call with strict typing.
|
|
163
|
-
* @param event Event name
|
|
164
|
-
* @param listener Listener function
|
|
165
|
-
*/
|
|
166
|
-
off: (event, listener) => this.off(event, listener),
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
catch (e) {
|
|
170
|
-
this.callControllerInstance?.stop();
|
|
171
|
-
this.removeAllEventListeners();
|
|
172
|
-
throw e;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
async createCall(payload) {
|
|
176
|
-
const response = await this.http.post('/api/v1/simulation/call', {
|
|
177
|
-
...payload,
|
|
178
|
-
});
|
|
179
|
-
return response.data;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
exports.PlatoApiClient = PlatoApiClient;
|
|
183
|
-
//# sourceMappingURL=plato-sdk.js.map
|
package/src/lib/plato-sdk.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plato-sdk.js","sourceRoot":"","sources":["../../../../../libs/plato-sdk/src/lib/plato-sdk.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|