interview-widget 0.0.9 → 0.1.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/README.md +39 -49
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -127,11 +127,6 @@ export default function App() {
|
|
|
127
127
|
| `onInterviewEnd` | `() => void` | `undefined` | Called when the interview completes or the user exits |
|
|
128
128
|
| `className` | `string` | `""` | Additional CSS classes applied to the outer widget container |
|
|
129
129
|
|
|
130
|
-
Notes:
|
|
131
|
-
|
|
132
|
-
- Internally uses an InterviewController that orchestrates the full flow using the configured API/STT/TTS/Timer.
|
|
133
|
-
- The interview id is currently derived internally; integrate with your backend by configuring the API base and auth.
|
|
134
|
-
|
|
135
130
|
### <InterviewWidgetProvider />
|
|
136
131
|
|
|
137
132
|
Wrap your app (or the widget) to provide configuration. See full config reference below.
|
|
@@ -148,71 +143,66 @@ Pass this object to `InterviewWidgetProvider` via the `config` prop. Tables list
|
|
|
148
143
|
|
|
149
144
|
### Top-level
|
|
150
145
|
|
|
151
|
-
| Prop | Type
|
|
152
|
-
| --------- |
|
|
153
|
-
| api | object | see below | Backend/API configuration |
|
|
154
|
-
| ui | object | see below | UI customization tokens |
|
|
155
|
-
| interview | object | see below | Interview behavior settings (timers, STT, TTS) |
|
|
146
|
+
| Prop | Type | Default | Description |
|
|
147
|
+
| --------- | -------- | --------- | ---------------------------------------------- |
|
|
148
|
+
| api | `object` | see below | Backend/API configuration |
|
|
149
|
+
| ui | `object` | see below | UI customization tokens |
|
|
150
|
+
| interview | `object` | see below | Interview behavior settings (timers, STT, TTS) |
|
|
156
151
|
|
|
157
152
|
### api
|
|
158
153
|
|
|
159
|
-
| Prop | Type
|
|
160
|
-
| ----------- |
|
|
161
|
-
| baseUrl | string | "/api" | Base URL for backend endpoints |
|
|
162
|
-
| authToken | string | undefined | Optional bearer token appended as Authorization header |
|
|
163
|
-
| retryConfig | object | see below | Retry policy for fetch calls |
|
|
154
|
+
| Prop | Type | Default | Description |
|
|
155
|
+
| ----------- | -------- | --------- | ------------------------------------------------------ |
|
|
156
|
+
| baseUrl | `string` | "/api" | Base URL for backend endpoints |
|
|
157
|
+
| authToken | `string` | undefined | Optional bearer token appended as Authorization header |
|
|
158
|
+
| retryConfig | `object` | see below | Retry policy for fetch calls |
|
|
164
159
|
|
|
165
160
|
retryConfig
|
|
166
161
|
|
|
167
|
-
| Prop | Type
|
|
168
|
-
| --------- |
|
|
169
|
-
| attempts | number | 3 | Number of retry attempts |
|
|
170
|
-
| backoff | "fixed" \| "exponential" | "exponential" | Backoff strategy |
|
|
171
|
-
| baseDelay | number (ms) | 1000 | Base delay between retries in milliseconds |
|
|
162
|
+
| Prop | Type | Default | Description |
|
|
163
|
+
| --------- | -------------------------- | ------------- | ------------------------------------------ |
|
|
164
|
+
| attempts | `number` | 3 | Number of retry attempts |
|
|
165
|
+
| backoff | `"fixed" \| "exponential"` | "exponential" | Backoff strategy |
|
|
166
|
+
| baseDelay | `number (ms)` | 1000 | Base delay between retries in milliseconds |
|
|
172
167
|
|
|
173
168
|
### ui
|
|
174
169
|
|
|
175
|
-
| Prop | Type
|
|
176
|
-
| ------------ |
|
|
177
|
-
| baseColor | string (hex) | "#3B82F6" | Primary brand color used by the widget |
|
|
178
|
-
| borderRadius | string (CSS) | "8px" | Global corner radius for components |
|
|
170
|
+
| Prop | Type | Default | Description |
|
|
171
|
+
| ------------ | -------------- | --------- | -------------------------------------- |
|
|
172
|
+
| baseColor | `string (hex)` | "#3B82F6" | Primary brand color used by the widget |
|
|
173
|
+
| borderRadius | `string (CSS)` | "8px" | Global corner radius for components |
|
|
179
174
|
|
|
180
175
|
### interview
|
|
181
176
|
|
|
182
|
-
| Prop | Type
|
|
183
|
-
| ------ |
|
|
184
|
-
| timers | object | see below | Per-phase and global timing configuration |
|
|
185
|
-
| stt | object | see below | Speech-to-Text provider settings |
|
|
186
|
-
| tts | object | see below | Text-to-Speech provider settings |
|
|
177
|
+
| Prop | Type | Default | Description |
|
|
178
|
+
| ------ | -------- | --------- | ----------------------------------------- |
|
|
179
|
+
| timers | `object` | see below | Per-phase and global timing configuration |
|
|
180
|
+
| stt | `object` | see below | Speech-to-Text provider settings |
|
|
181
|
+
| tts | `object` | see below | Text-to-Speech provider settings |
|
|
187
182
|
|
|
188
183
|
timers
|
|
189
184
|
|
|
190
|
-
| Prop | Type
|
|
191
|
-
| -------------------------- |
|
|
192
|
-
| thinkingDuration | number (s) | 30 | Timebox for the Thinking phase |
|
|
193
|
-
| answeringDuration | number (s) | 120 | Timebox for the Answering phase |
|
|
194
|
-
| editingDuration | number (s) | 30 | Timebox for the Editing phase |
|
|
195
|
-
| totalInterviewDuration | number (s) | 600 | Overall interview time cap |
|
|
196
|
-
| minimumTimeForNextQuestion | number (s) | 120 | Minimum time required to allow starting the next question |
|
|
185
|
+
| Prop | Type | Default | Description |
|
|
186
|
+
| -------------------------- | ------------ | ------- | --------------------------------------------------------- |
|
|
187
|
+
| thinkingDuration | `number (s)` | 30 | Timebox for the Thinking phase |
|
|
188
|
+
| answeringDuration | `number (s)` | 120 | Timebox for the Answering phase |
|
|
189
|
+
| editingDuration | `number (s)` | 30 | Timebox for the Editing phase |
|
|
190
|
+
| totalInterviewDuration | `number (s)` | 600 | Overall interview time cap |
|
|
191
|
+
| minimumTimeForNextQuestion | `number (s)` | 120 | Minimum time required to allow starting the next question |
|
|
197
192
|
|
|
198
193
|
stt
|
|
199
194
|
|
|
200
|
-
| Prop | Type
|
|
201
|
-
| -------- |
|
|
202
|
-
| provider | "groq" \| "deepgram" | "groq" | STT vendor to use |
|
|
203
|
-
| model | "whisper-large-v3-turbo" \| string | "whisper-large-v3-turbo" | STT model identifier |
|
|
204
|
-
| language |
|
|
195
|
+
| Prop | Type | Default | Description |
|
|
196
|
+
| -------- | ------------------------------------ | ------------------------ | -------------------------------------- |
|
|
197
|
+
| provider | `"groq" \| "deepgram"` | "groq" | STT vendor to use |
|
|
198
|
+
| model | `"whisper-large-v3-turbo" \| string` | "whisper-large-v3-turbo" | STT model identifier |
|
|
199
|
+
| language | `string` | "en" | Language code passed to the STT engine |
|
|
205
200
|
|
|
206
201
|
tts
|
|
207
202
|
|
|
208
|
-
| Prop | Type
|
|
209
|
-
| -------- |
|
|
210
|
-
| provider | "piper" | "piper" | TTS vendor to use |
|
|
211
|
-
|
|
212
|
-
Notes on defaults:
|
|
213
|
-
|
|
214
|
-
- Base defaults come from `src/utils/constants.ts` (`defaultConfig`).
|
|
215
|
-
- `totalInterviewDuration` and `minimumTimeForNextQuestion` default to 600s and 120s respectively via the TimerService if not explicitly provided.
|
|
203
|
+
| Prop | Type | Default | Description |
|
|
204
|
+
| -------- | --------- | ------- | ----------------- |
|
|
205
|
+
| provider | `"piper"` | "piper" | TTS vendor to use |
|
|
216
206
|
|
|
217
207
|
## How it works
|
|
218
208
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "interview-widget",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "0.1.0",
|
|
5
5
|
"description": "Advanced React interview widget with STT, TTS, camera access, and ML-powered analysis",
|
|
6
6
|
"main": "dist/widget.umd.js",
|
|
7
7
|
"module": "dist/widget.es.js",
|
|
@@ -54,11 +54,12 @@
|
|
|
54
54
|
},
|
|
55
55
|
"keywords": [
|
|
56
56
|
"react",
|
|
57
|
-
"
|
|
57
|
+
"interview",
|
|
58
58
|
"widget",
|
|
59
59
|
"cdn",
|
|
60
|
-
"embed"
|
|
60
|
+
"embed",
|
|
61
|
+
"interview-widget"
|
|
61
62
|
],
|
|
62
|
-
"author": "
|
|
63
|
+
"author": "Jaber Hossain Pranto",
|
|
63
64
|
"license": "MIT"
|
|
64
65
|
}
|